Cytopia  0.3
A city building simulation game
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SignalMediator.hxx
Go to the documentation of this file.
1 #ifndef SIGNALMEDIATOR_HXX_
2 #define SIGNALMEDIATOR_HXX_
3 
4 #include <Singleton.hxx>
5 #include <Signal.hxx>
6 #include <MapNode.hxx>
7 #include "../game/PowerGrid.hxx"
8 
14 class SignalMediator : public Singleton<SignalMediator>
15 {
16 public:
19 
20  // GameSignals
21  Signal::Signal<void(bool)> signalNewGame;
25 
26  // Signals Map
29 
30  // Signals Gameplay Managers
31  Signal::Signal<void(const std::vector<PowerGrid> &)> signalUpdatePower;
32 
33  // Callback functions Game
34  void registerCbNewGame(std::function<void(bool)> const &cb) { signalNewGame.connect(cb); }
35  void registerCbQuitGame(std::function<void()> const &cb) { signalQuitGame.connect(cb); }
36  void registerCbLoadGame(std::function<void(const std::string &)> const &cb) { signalLoadGame.connect(cb); }
37  void registerCbSaveGame(std::function<void(const std::string &)> const &cb) { signalSaveGame.connect(cb); }
38 
39  // Callback functions Map
40  void registerCbSetTileID(std::function<void(const MapNode &)> const &cb) { signalSetTileID.connect(cb); }
41  void registerCbDemolish(std::function<void(MapNode *)> const &cb) { signalDemolish.connect(cb); }
42 
43  // Callback functions Gameplay Managers to interact with each other
44  void registerCbUpdatePower(std::function<void(const std::vector<PowerGrid> &)> const &cb) { signalUpdatePower.connect(cb); }
45 };
46 
47 #endif
SignalMediator::SignalMediator
SignalMediator()
Definition: SignalMediator.hxx:17
SignalMediator::signalSaveGame
Signal::Signal< void(const std::string &)> signalSaveGame
Definition: SignalMediator.hxx:24
SignalMediator
Create signals and register callbacks here.
Definition: SignalMediator.hxx:14
SignalMediator::registerCbSaveGame
void registerCbSaveGame(std::function< void(const std::string &)> const &cb)
Definition: SignalMediator.hxx:37
Signal::Signal
Signal is a template type providing an interface for arbitrary callback lists. A signal type needs to...
Definition: Signal.hxx:157
SignalMediator::signalSetTileID
Signal::Signal< void(const MapNode &)> signalSetTileID
Definition: SignalMediator.hxx:27
SignalMediator::registerCbDemolish
void registerCbDemolish(std::function< void(MapNode *)> const &cb)
Definition: SignalMediator.hxx:41
Singleton.hxx
MapNode
Class that holds map nodes.
Definition: MapNode.hxx:30
MapNode.hxx
SignalMediator::signalUpdatePower
Signal::Signal< void(const std::vector< PowerGrid > &)> signalUpdatePower
Definition: SignalMediator.hxx:31
Singleton
Abstract Singleton implementation.
Definition: Singleton.hxx:8
Signal.hxx
SignalMediator::~SignalMediator
~SignalMediator()
Definition: SignalMediator.hxx:18
SignalMediator::registerCbLoadGame
void registerCbLoadGame(std::function< void(const std::string &)> const &cb)
Definition: SignalMediator.hxx:36
SignalMediator::registerCbNewGame
void registerCbNewGame(std::function< void(bool)> const &cb)
Definition: SignalMediator.hxx:34
SignalMediator::registerCbUpdatePower
void registerCbUpdatePower(std::function< void(const std::vector< PowerGrid > &)> const &cb)
Definition: SignalMediator.hxx:44
SignalMediator::signalDemolish
Signal::Signal< void(MapNode *)> signalDemolish
Definition: SignalMediator.hxx:28
SignalMediator::signalLoadGame
Signal::Signal< void(const std::string &)> signalLoadGame
Definition: SignalMediator.hxx:23
SignalMediator::registerCbQuitGame
void registerCbQuitGame(std::function< void()> const &cb)
Definition: SignalMediator.hxx:35
SignalMediator::signalNewGame
Signal::Signal< void(bool)> signalNewGame
Definition: SignalMediator.hxx:18
SignalMediator::registerCbSetTileID
void registerCbSetTileID(std::function< void(const MapNode &)> const &cb)
Definition: SignalMediator.hxx:40
string
std::string string
Definition: AudioConfig.hxx:14
SignalMediator::signalQuitGame
Signal::Signal< void()> signalQuitGame
Definition: SignalMediator.hxx:22