aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--entityx/System.cc2
-rw-r--r--entityx/System.h7
-rw-r--r--entityx/deps/Dependencies.h4
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>