]> code.bitgloo.com Git - clyne/entityx.git/commitdiff
Also pass EntityManager to System::configure().
authorAlec Thomas <alec@swapoff.org>
Tue, 23 Jun 2015 14:34:49 +0000 (16:34 +0200)
committerAlec Thomas <alec@swapoff.org>
Tue, 23 Jun 2015 14:34:49 +0000 (16:34 +0200)
Old configure() left for compatibility.

Fixes #104.

entityx/System.cc
entityx/System.h
entityx/deps/Dependencies.h

index 009ac9cc7766a0eb14cd194d62be13547acf9f45..8e4b5a9b2940cd8da912257f1d8167a80c8a2590 100644 (file)
@@ -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;
 }
index 7c90ef57fc26030b2c8cece39e92c4c199024a02..b39f2ca12da34d491ab8c43a09515aa4f40bad5f 100644 (file)
@@ -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) {}
 
   /**
index b1fb93c7721f544b43b1c68f1aacc91ae5ba8ef9..88c9f79ca78ecc698267b0e0128b59c9b9b7c674 100644 (file)
@@ -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>