#include "director.h"
#include <stdexcept>
#include <msp/time/utils.h>
+#include "component.h"
+#include "entity.h"
#include "stage.h"
using namespace std;
Director::Director(DataFile::Collection &r):
resources(r),
event_source(event_bus)
-{ }
+{
+#if DEBUG
+ access_guard.emplace();
+#endif
+
+ reflector.get_or_create_class<Entity>().set_polymorphic_base<Entity>();
+ reflector.get_or_create_class<Component>().set_polymorphic_base<Component>();
+}
// Hide ~unique_ptr<Stage> from the header
Director::~Director()
Stage &Director::create_stage()
{
- stages.emplace_back(std::make_unique<Stage>(std::ref(resources)));
+ stages.emplace_back(std::make_unique<Stage>(std::ref(reflector), std::ref(resources)));
event_source.emit<Events::StageCreated>(std::ref(*stages.back()));
return *stages.back();
}