Peoplemon  0.1.0
Peoplemon 3 game source documentation
Systems.hpp
Go to the documentation of this file.
1 #ifndef CORE_GAME_GAME_HPP
2 #define CORE_GAME_GAME_HPP
3 
4 #include <Core/Systems/AI.hpp>
5 #include <Core/Systems/Clock.hpp>
9 #include <Core/Systems/HUD.hpp>
12 #include <Core/Systems/Player.hpp>
14 #include <Core/Systems/Render.hpp>
15 #include <Core/Systems/Scripts.hpp>
18 #include <Core/Systems/World.hpp>
19 
20 #include <BLIB/Engine/Engine.hpp>
21 #include <BLIB/Util/NonCopyable.hpp>
22 
23 int main(int, char**);
24 
25 namespace tests
26 {
27 class SystemsHelper;
28 }
29 
37 namespace core
38 {
40 namespace system
41 {
47 class Systems : private bl::util::NonCopyable {
48 public:
52  const bl::engine::Engine& engine() const;
53 
57  bl::engine::Engine& engine();
58 
62  Clock& clock();
63 
67  const Clock& clock() const;
68 
72  World& world();
73 
77  const World& world() const;
78 
82  Position& position();
83 
87  const Position& position() const;
88 
92  Movement& movement();
93 
97  const Movement& movement() const;
98 
102  Entity& entity();
103 
107  const Entity& entity() const;
108 
112  Player& player();
113 
117  const Player& player() const;
118 
123 
127  AI& ai();
128 
133 
137  HUD& hud();
138 
142  Scripts& scripts();
143 
147  const Scripts& scripts() const;
148 
152  Trainers& trainers();
153 
157  const Trainers& trainers() const;
158 
163 
167  const WildPeoplemon& wildPeoplemon() const;
168 
172  Flight& flight();
173 
177  const Flight& flight() const;
178 
182  Render& render();
183 
184 private:
185  bl::engine::Engine& _engine;
186  Clock& _clock;
187  AI& _ai;
188  Controllable _controllable;
189  Entity _entity;
190  Player& _player;
191  World& _world;
192  Position& _position;
193  Movement& _movement;
194  Interaction _interaction;
195  HUD& _hud;
196  Scripts _scripts;
197  Trainers& _trainers;
198  WildPeoplemon _wildPeoplemon;
199  Flight& _flight;
200  Render& _render;
201 
207  Systems(bl::engine::Engine& engine);
208 
209  friend int ::main(int, char**);
210  friend class ::tests::SystemsHelper;
211 };
212 
213 } // namespace system
214 } // namespace core
215 
216 #endif
int main(int, char **)
Definition: main.cpp:20
Core classes and functionality for both the editor and game.
Manages NPC's and trainers and their behaviors.
Definition: AI.hpp:25
Simple time keeping systems. Tracks in game time and date based on real elapsed play time.
Definition: Clock.hpp:25
Simple systems for performing batch locks and unlocks on all controllable entities.
Basic helper system for creating entities and their required components. Also manages player data and...
Definition: Entity.hpp:27
Special system to manage player flight between their current location and a town.
Definition: Flight.hpp:21
The primary HUD system for the player. Manages displaying messages and asking questions....
Definition: HUD.hpp:31
The main interaction system. Manages interaction between entities. Handles item logic and NPC convers...
Definition: Interaction.hpp:27
Primary System for managing entity movement and interpolation.
Definition: Movement.hpp:21
Primary system for managing the player and their data.
Definition: Player.hpp:35
The primary entity positioning system. Handles determining which entities get updated as well as trac...
Definition: Position.hpp:30
Basic system that synchronizes animation states based on movement state events.
Definition: Render.hpp:22
System that stores and handles saving/loading of save entries for scripts.
Definition: Scripts.hpp:22
Owns all primary systems and a reference to the engine.
Definition: Systems.hpp:47
const bl::engine::Engine & engine() const
Const accessor for the Engine.
Definition: Systems.cpp:35
AI & ai()
Returns the AI system.
Definition: Systems.cpp:65
Entity & entity()
Returns the entity system.
Definition: Systems.cpp:55
Movement & movement()
Returns a reference to the movement system.
Definition: Systems.cpp:51
Render & render()
Returns the render system.
Definition: Systems.cpp:87
Player & player()
Returns the player system.
Definition: Systems.cpp:59
Flight & flight()
Returns the flight system.
Definition: Systems.cpp:83
Position & position()
Returns a reference to the position system.
Definition: Systems.cpp:47
Scripts & scripts()
Returns the scripting system.
Definition: Systems.cpp:71
Trainers & trainers()
Returns the trainer system.
Definition: Systems.cpp:75
Controllable & controllable()
Returns the controllable entity system.
Definition: Systems.cpp:63
Clock & clock()
Accessor for the in game clock.
Definition: Systems.cpp:39
HUD & hud()
Returns the HUD.
Definition: Systems.cpp:69
WildPeoplemon & wildPeoplemon()
Returns the wild peoplemon system.
Definition: Systems.cpp:79
World & world()
Modifiable accessor for the world system.
Definition: Systems.cpp:43
Interaction & interaction()
Returns the interaction system.
Definition: Systems.cpp:67
This system manages trainers. It handles their vision and makes them walk up to the player.
Definition: Trainers.hpp:32
Manages the appearances of wild peoplemon when walking through catch tiles.
System for managing the current map and previous maps.
Definition: World.hpp:23