ScriptSystem::ScriptSystem(dtEntity::EntityManager& em) : dtEntity::EntitySystem(em) , mDebugPortOpened(false) { V8::Initialize(); Register(ScriptsId, &mScripts); Register(DebugPortId, &mDebugPort); Register(DebugEnabledId, &mDebugEnabled); mDebugPort.Set(9222); //V8::AddGCPrologueCallback(GCStartCallback); //V8::AddGCEpilogueCallback(GCEndCallback); mSceneLoadedFunctor = dtEntity::MessageFunctor(this, &ScriptSystem::OnSceneLoaded); GetEntityManager().RegisterForMessages(dtEntity::SceneLoadedMessage::TYPE, mSceneLoadedFunctor, "ScriptSystem::OnSceneLoaded"); mTickFunctor = dtEntity::MessageFunctor(this, &ScriptSystem::Tick); em.RegisterForMessages(dtEntity::TickMessage::TYPE, mTickFunctor, "ScriptSystem::Tick"); mLoadScriptFunctor = dtEntity::MessageFunctor(this, &ScriptSystem::OnLoadScript); em.RegisterForMessages(ExecuteScriptMessage::TYPE, mLoadScriptFunctor, "ScriptSystem::OnLoadScript"); HandleScope scope; mEntityIdString = Persistent<String>::New(String::New("__entityid__")); mPropertyNamesString = Persistent<String>::New(String::New("__propertynames__")); }
WheelSystem(dtEntity::EntityManager& em) : DefaultEntitySystem<WheelComponent>(em) { mTickFunctor = dtEntity::MessageFunctor(this, &WheelSystem::Tick); em.RegisterForMessages(dtEntity::TickMessage::TYPE, mTickFunctor); }