aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlec Thomas <alec@swapoff.org>2015-06-23 16:34:49 +0200
committerAlec Thomas <alec@swapoff.org>2015-06-23 16:34:49 +0200
commitd4a42e1793e09423c886a4411f61db88fe1151ff (patch)
tree2a7d4eb880d28b5cb31309c441f0b0ea9a4d43a1
parentaeac8a52bf226c664fad4f30542658c1b36231e0 (diff)
Also pass EntityManager to System::configure().
Old configure() left for compatibility. Fixes #104.
-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>