#include <msp/game/stage.h>
#include <msp/game/transform.h>
#include <msp/gl/sequencebuilder.h>
+#include <msp/gl/sequencetemplate.h>
#include "meshrenderer.h"
using namespace std;
view(v),
event_observer(s.get_event_bus())
{
+ declare_dependency<Game::Transform>(READ_FRESH);
+ declare_dependency<Game::Camera>(READ_FRESH);
+ declare_dependency<MeshRenderer>(WRITE);
+
event_observer.observe<Game::Events::EntityCreated>([this](auto &e){ entity_created(e); });
event_observer.observe<Game::Events::EntityDestroyed>([this](auto &e){ entity_destroyed(e); });
event_observer.observe<Game::Events::CameraChanged>([this](auto &e){ camera_changed(e); });
- stage.iterate_objects<Game::Entity>([this](auto &e){ entity_created({ Game::Handle<Game::Entity>::from_object(&e) }); });
- if(Game::Handle<Game::Camera> ac = stage.get_active_camera())
- camera_changed({ ac });
+ stage.synthesize_initial_events(event_observer);
view.set_camera(&gl_camera);
}