From d4a42e1793e09423c886a4411f61db88fe1151ff Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Tue, 23 Jun 2015 16:34:49 +0200 Subject: Also pass EntityManager to System::configure(). Old configure() left for compatibility. Fixes #104. --- entityx/System.cc | 2 +- entityx/System.h | 7 +++++++ 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(event.entity); } - virtual void configure(EventManager &events) override { + void configure(EventManager &events) override { events.subscribe>(*this); } - virtual void update(EntityManager &entities, EventManager &events, TimeDelta dt) override {} + void update(EntityManager &entities, EventManager &events, TimeDelta dt) override {} private: template -- cgit v1.2.3