#include "events.h"
#include "eventsource.h"
#include "handle.h"
+#include "reflection.h"
namespace Msp::Game {
Events::ComponentCreated, Events::ComponentDestroyed, Events::CameraChanged>;
private:
+ Reflection::Reflector &reflector;
DataFile::Collection &resources;
PoolPool pools;
EventBus event_bus;
Handle<Camera> active_camera;
public:
- Stage(DataFile::Collection &);
+ Stage(Reflection::Reflector &, DataFile::Collection &);
~Stage();
+ Reflection::Reflector &get_reflector() const { return reflector; }
DataFile::Collection &get_resources() const { return resources; }
PoolPool &get_pools() { return pools; }
EventBus &get_event_bus() { return event_bus; }
void set_active_camera(Handle<Camera>);
Handle<Camera> get_active_camera() const { return active_camera; }
+ void synthesize_initial_events(EventObserver &);
+private:
+ void synthesize_initial_events(Handle<Entity>, EventObserver &);
+
+public:
void tick(Time::TimeDelta);
};