diff options
-rw-r--r-- | entityx/System.cc | 2 | ||||
-rw-r--r-- | entityx/System.h | 7 | ||||
-rw-r--r-- | entityx/deps/Dependencies.h | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/entityx/System.cc b/entityx/System.cc index 009ac9c..8e4b5a9 100644 --- a/entityx/System.cc +++ b/entityx/System.cc @@ -26,7 +26,7 @@ void SystemManager::update_all(TimeDelta dt) { void SystemManager::configure() { for (auto &pair : systems_) { - pair.second->configure(event_manager_); + pair.second->configure(entity_manager_, event_manager_); } initialized_ = true; } diff --git a/entityx/System.h b/entityx/System.h index 7c90ef5..b39f2ca 100644 --- a/entityx/System.h +++ b/entityx/System.h @@ -41,6 +41,13 @@ class BaseSystem : entityx::help::NonCopyable { * * Typically used to set up event handlers. */ + virtual void configure(EntityManager &entities, EventManager &events) { + configure(events); + } + + /** + * Legacy configure(). Called by default implementation of configure(EntityManager&, EventManager&). + */ virtual void configure(EventManager &events) {} /** diff --git a/entityx/deps/Dependencies.h b/entityx/deps/Dependencies.h index b1fb93c..88c9f79 100644 --- a/entityx/deps/Dependencies.h +++ b/entityx/deps/Dependencies.h @@ -31,11 +31,11 @@ public: assign<Deps...>(event.entity); } - virtual void configure(EventManager &events) override { + void configure(EventManager &events) override { events.subscribe<ComponentAddedEvent<C>>(*this); } - virtual void update(EntityManager &entities, EventManager &events, TimeDelta dt) override {} + void update(EntityManager &entities, EventManager &events, TimeDelta dt) override {} private: template <typename D> |