7 using namespace bl::engine;
9 constexpr StateMask::V
WorldVisible = StateMask::Running | StateMask::Paused;
11 Systems::Systems(Engine& engine)
13 , _clock(engine.systems().registerSystem<
Clock>(FrameStage::Update0, StateMask::Running, *this))
14 , _ai(engine.systems().registerSystem<
AI>(FrameStage::Update1, StateMask::Running, *this))
15 , _controllable(*this)
17 , _player(engine.systems().registerSystem<
Player>(FrameStage::Update0, StateMask::All, *this))
18 , _world(engine.systems().registerSystem<
World>(FrameStage::Update0,
WorldVisible, *this))
21 engine.systems().registerSystem<
Movement>(FrameStage::Update0, StateMask::Running, *this))
23 , _hud(engine.systems().registerSystem<
HUD>(FrameStage::Update0, StateMask::All, *this))
26 engine.systems().registerSystem<
Trainers>(FrameStage::Update0, StateMask::Running, *this))
27 , _wildPeoplemon(*this)
28 , _flight(engine.systems().registerSystem<
Flight>(FrameStage::Update0, StateMask::Running, *this))
29 , _render(engine.systems().registerSystem<
Render>(FrameStage::Update2,
WorldVisible, *this)) {
32 _wildPeoplemon.init();
35 const bl::engine::Engine& Systems::engine()
const {
return _engine; }
37 bl::engine::Engine& Systems::engine() {
return _engine; }
39 Clock& Systems::clock() {
return _clock; }
41 const Clock& Systems::clock()
const {
return _clock; }
43 World& Systems::world() {
return _world; }
45 const World& Systems::world()
const {
return _world; }
47 Position& Systems::position() {
return _position; }
49 const Position& Systems::position()
const {
return _position; }
51 Movement& Systems::movement() {
return _movement; }
53 const Movement& Systems::movement()
const {
return _movement; }
55 Entity& Systems::entity() {
return _entity; }
57 const Entity& Systems::entity()
const {
return _entity; }
59 Player& Systems::player() {
return _player; }
61 const Player& Systems::player()
const {
return _player; }
65 AI& Systems::ai() {
return _ai; }
69 HUD& Systems::hud() {
return _hud; }
71 Scripts& Systems::scripts() {
return _scripts; }
73 const Scripts& Systems::scripts()
const {
return _scripts; }
75 Trainers& Systems::trainers() {
return _trainers; }
77 const Trainers& Systems::trainers()
const {
return _trainers; }
81 const WildPeoplemon& Systems::wildPeoplemon()
const {
return _wildPeoplemon; }
83 Flight& Systems::flight() {
return _flight; }
85 const Flight& Systems::flight()
const {
return _flight; }
87 Render& Systems::render() {
return _render; }
Core classes and functionality for both the editor and game.
constexpr StateMask::V WorldVisible
Manages NPC's and trainers and their behaviors.
Simple time keeping systems. Tracks in game time and date based on real elapsed play time.
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...
Special system to manage player flight between their current location and a town.
The primary HUD system for the player. Manages displaying messages and asking questions....
The main interaction system. Manages interaction between entities. Handles item logic and NPC convers...
Primary System for managing entity movement and interpolation.
Primary system for managing the player and their data.
The primary entity positioning system. Handles determining which entities get updated as well as trac...
Basic system that synchronizes animation states based on movement state events.
System that stores and handles saving/loading of save entries for scripts.
This system manages trainers. It handles their vision and makes them walk up to the player.
Manages the appearances of wild peoplemon when walking through catch tiles.
System for managing the current map and previous maps.