Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/simulation2/system/ComponentManager.cpp
Show First 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | if (!skipScriptFunctions) | ||||
ScriptFunction::Register<&CComponentManager::Script_GetComponentsWithInterface, Getter>(rq, "GetComponentsWithInterface"); | ScriptFunction::Register<&CComponentManager::Script_GetComponentsWithInterface, Getter>(rq, "GetComponentsWithInterface"); | ||||
ScriptFunction::Register<&CComponentManager::Script_PostMessage, Getter>(rq, "PostMessage"); | ScriptFunction::Register<&CComponentManager::Script_PostMessage, Getter>(rq, "PostMessage"); | ||||
ScriptFunction::Register<&CComponentManager::Script_BroadcastMessage, Getter>(rq, "BroadcastMessage"); | ScriptFunction::Register<&CComponentManager::Script_BroadcastMessage, Getter>(rq, "BroadcastMessage"); | ||||
ScriptFunction::Register<&CComponentManager::Script_AddEntity, Getter>(rq, "AddEntity"); | ScriptFunction::Register<&CComponentManager::Script_AddEntity, Getter>(rq, "AddEntity"); | ||||
ScriptFunction::Register<&CComponentManager::Script_AddLocalEntity, Getter>(rq, "AddLocalEntity"); | ScriptFunction::Register<&CComponentManager::Script_AddLocalEntity, Getter>(rq, "AddLocalEntity"); | ||||
ScriptFunction::Register<&CComponentManager::QueryInterface, Getter>(rq, "QueryInterface"); | ScriptFunction::Register<&CComponentManager::QueryInterface, Getter>(rq, "QueryInterface"); | ||||
ScriptFunction::Register<&CComponentManager::DestroyComponentsSoon, Getter>(rq, "DestroyEntity"); | ScriptFunction::Register<&CComponentManager::DestroyComponentsSoon, Getter>(rq, "DestroyEntity"); | ||||
ScriptFunction::Register<&CComponentManager::FlushDestroyedComponents, Getter>(rq, "FlushDestroyedEntities"); | ScriptFunction::Register<&CComponentManager::FlushDestroyedComponents, Getter>(rq, "FlushDestroyedEntities"); | ||||
ScriptFunction::Register<&CComponentManager::Script_GetTemplate, Getter>(rq, "GetTemplate"); | |||||
} | } | ||||
// Globalscripts may use VFS script functions | // Globalscripts may use VFS script functions | ||||
m_ScriptInterface.LoadGlobalScripts(); | m_ScriptInterface.LoadGlobalScripts(); | ||||
// Define MT_*, IID_* as script globals, and store their names | // Define MT_*, IID_* as script globals, and store their names | ||||
#define MESSAGE(name) m_ScriptInterface.SetGlobal("MT_" #name, (int)MT_##name); | #define MESSAGE(name) m_ScriptInterface.SetGlobal("MT_" #name, (int)MT_##name); | ||||
#define INTERFACE(name) \ | #define INTERFACE(name) \ | ||||
▲ Show 20 Lines • Show All 280 Lines • ▼ Show 20 Lines | void CComponentManager::Script_RegisterMessageType(const std::string& name) | ||||
m_ScriptInterface.SetGlobal(("MT_" + name).c_str(), (int)id); | m_ScriptInterface.SetGlobal(("MT_" + name).c_str(), (int)id); | ||||
} | } | ||||
void CComponentManager::Script_RegisterGlobal(const std::string& name, JS::HandleValue value) | void CComponentManager::Script_RegisterGlobal(const std::string& name, JS::HandleValue value) | ||||
{ | { | ||||
m_ScriptInterface.SetGlobal(name.c_str(), value, m_CurrentlyHotloading); | m_ScriptInterface.SetGlobal(name.c_str(), value, m_CurrentlyHotloading); | ||||
} | } | ||||
const CParamNode& CComponentManager::Script_GetTemplate(const std::string& templateName) | |||||
{ | |||||
static CParamNode nullNode(false); | |||||
ICmpTemplateManager* cmpTemplateManager = static_cast<ICmpTemplateManager*> (QueryInterface(SYSTEM_ENTITY, IID_TemplateManager)); | |||||
if (!cmpTemplateManager) | |||||
{ | |||||
LOGERROR("Template manager is not loaded"); | |||||
return nullNode; | |||||
} | |||||
const CParamNode* tmpl = cmpTemplateManager->GetTemplate(templateName); | |||||
if (!tmpl) | |||||
return nullNode; | |||||
return *tmpl; | |||||
} | |||||
std::vector<int> CComponentManager::Script_GetEntitiesWithInterface(int iid) | std::vector<int> CComponentManager::Script_GetEntitiesWithInterface(int iid) | ||||
{ | { | ||||
std::vector<int> ret; | std::vector<int> ret; | ||||
const InterfaceListUnordered& ents = GetEntitiesWithInterfaceUnordered(iid); | const InterfaceListUnordered& ents = GetEntitiesWithInterfaceUnordered(iid); | ||||
for (InterfaceListUnordered::const_iterator it = ents.begin(); it != ents.end(); ++it) | for (InterfaceListUnordered::const_iterator it = ents.begin(); it != ents.end(); ++it) | ||||
if (!ENTITY_IS_LOCAL(it->first)) | if (!ENTITY_IS_LOCAL(it->first)) | ||||
ret.push_back(it->first); | ret.push_back(it->first); | ||||
std::sort(ret.begin(), ret.end()); | std::sort(ret.begin(), ret.end()); | ||||
▲ Show 20 Lines • Show All 748 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator