void GUISystem::Init() { m_oAddGuiComponentEvent.Subscribe(this,&GUISystem::AddGUIComponent,ObjectId("Registered/GUIViewComponent")); m_oDeleteGuiComponentEvent.Subscribe(this,&GUISystem::DeleteGUIComponent,ObjectId("Unregistered/GUIViewComponent")); CreateGUIWindow(); SDL_ShowCursor(SDL_DISABLE); MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_INFO, SYSTEMS_CONTEXT, "GUISystem initialized!"); }
void SystemManager::RemoveAllComponents() { ComponentTable::iterator cIt = m_vComponentTable.begin(); while(cIt != m_vComponentTable.end()) { EntityComponentTable& entityComponentMap= cIt->second; EntityComponentTable::iterator entityIt = entityComponentMap.begin(); while(entityIt != entityComponentMap.end()) { MGDVector<Component*>& oComponent = (*entityIt).second; for(uint32 uiIndex = 0; uiIndex < oComponent.size(); ++uiIndex) { if(!oComponent[uiIndex]->IsRemovable()) { char pEventName[128]; sprintf_s(pEventName, "Unregistered/%s", oComponent[uiIndex]->GetID().GetDebugName().c_str()); m_oEventPublisher.SetPath(ObjectId(pEventName)); m_oEventPublisher.Raise(oComponent[uiIndex]->GetTextName().c_str()); oComponent[uiIndex]->Remove(); } } ++entityIt; } ++cIt; } }
void SystemManager::RemoveComponent(Component* i_pComponent) { MGD_ASSERT(i_pComponent); if(i_pComponent) { ComponentTable::iterator cIt= m_vComponentTable.find(i_pComponent->GetID()); if(cIt != m_vComponentTable.end()) { EntityComponentTable& entityComponentMap= cIt->second; EntityComponentTable::iterator entityIt = entityComponentMap.find(i_pComponent->GetOwnerID()); if(entityIt != entityComponentMap.end()) { MGDVector<Component*>& oComponent = (*entityIt).second; for(uint32 uiIndex = 0; uiIndex < oComponent.size(); ++uiIndex) { if(!oComponent[uiIndex]->IsRemovable()) { if(oComponent[uiIndex]->GetName() == i_pComponent->GetName()) { char pEventName[128]; sprintf_s(pEventName, "Unregistered/%s", i_pComponent->GetID().GetDebugName().c_str()); m_oEventPublisher.SetPath(ObjectId(pEventName)); m_oEventPublisher.Raise(i_pComponent->GetTextName().c_str()); i_pComponent->Remove(); } } } } } } }
void Component::CreateName() { char szTextName[15]; sprintf_s(szTextName, "Component_%d", DEFAULT_COMPONENT_COUNT); ++DEFAULT_COMPONENT_COUNT; m_szTextName = szTextName; m_oName = ObjectId(szTextName); }
void RemoveFrameTagCommand::onLoadParams(const Params& params) { m_tagName = params.get("name"); std::string id = params.get("id"); if (!id.empty()) m_tagId = ObjectId(base::convert_to<ObjectId>(id)); else m_tagId = NullId; }
void RemoveSliceCommand::onLoadParams(const Params& params) { m_sliceName = params.get("name"); std::string id = params.get("id"); if (!id.empty()) m_sliceId = ObjectId(base::convert_to<doc::ObjectId>(id)); else m_sliceId = NullId; }
void DestroyAllBlackboards() { IObjectFactorySystem* pFactory = PerModuleInterface::g_pSystemTable->pObjectFactorySystem; IObject* pObj = 0; delete m_pBlackboardGlobal; m_pBlackboardGlobal = 0; for (int i=0; i<EGT_COUNT; ++i) { pObj = pFactory->GetObject(m_BlackboardTeam[i]); delete pObj; m_BlackboardTeam[i] = ObjectId(); } for (int i=0; i<EGO_COUNT; ++i) { pObj = pFactory->GetObject(m_BlackboardGroup[i]); delete pObj; m_BlackboardGroup[i] = ObjectId(); } TIndividualMap::iterator it = m_BlackboardIndividual.begin(); TIndividualMap::iterator itEnd = m_BlackboardIndividual.end(); while (it != itEnd) { pObj = pFactory->GetObject(it->second); delete pObj; ++it; } m_BlackboardIndividual.clear(); it = m_BlackboardIndividualCommon.begin(); itEnd = m_BlackboardIndividualCommon.end(); while (it != itEnd) { pObj = pFactory->GetObject(it->second); delete pObj; ++it; } m_BlackboardIndividualCommon.clear(); }
DirectoryEntry::DirectoryEntry(Type type, Inode inode, Permissions permissions, UserId user_id, GroupId group_id) : DirectoryEntry(ObjectId(yt::UUID().str()), type, inode, permissions, user_id, group_id) {}
void ActorFactory::UnloadFile(const char* i_szFilename) { if(!i_szFilename) { MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "File name incorrect: %s", i_szFilename); return; } tinyxml2::XMLDocument oDocument; tinyxml2::XMLError oErr = oDocument.LoadFile(i_szFilename); if(oErr != tinyxml2::XML_NO_ERROR) { MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "File name incorrect: %s", i_szFilename); return; } const tinyxml2::XMLElement* pRoot = oDocument.RootElement(); if(pRoot) { for (const tinyxml2::XMLElement* pActor = pRoot->FirstChildElement("Actor"); pActor; pActor = pActor->NextSiblingElement("Actor")) { const char* pActorName = pActor->Attribute("Name"); MGD_ASSERT(pActorName); if(pActorName) { SystemManager::GetSingleton().RemoveComponentsByOwnerId(ObjectId(pActorName)); } } for (const tinyxml2::XMLElement* pTemplateActor = pRoot->FirstChildElement("TemplateActor"); pTemplateActor; pTemplateActor = pTemplateActor->NextSiblingElement("TemplateActor")) { const char* pTemplateActorName = pTemplateActor->Attribute("Name"); MGD_ASSERT(pTemplateActorName); if(pTemplateActorName) { SystemManager::GetSingleton().RemoveTemplate(ObjectId(pTemplateActorName)); } } SystemManager::GetSingleton().RemoveTemplateComponents(); } }
void ActorFactory::InitComponents(MGDVector<Component*>& i_vNewComponents) { MGDVector<Component*>::iterator it = i_vNewComponents.begin(); for(; it != i_vNewComponents.end(); ++it) { (*it)->Init(); char pEventName[128]; sprintf_s(pEventName, "Registered/%s", (*it)->GetID().GetDebugName().c_str()); ActorFactory::GetSingleton().m_oEventPublisher.SetPath(ObjectId(pEventName)); ActorFactory::GetSingleton().m_oEventPublisher.Raise((*it)->GetTextName().c_str()); } }
void ActorFactory::CreateActorFromTemplate(const char* i_pTemplateActorName, const char* i_pActorName) { if (i_pTemplateActorName && strlen(i_pTemplateActorName) > 0 && i_pActorName && strlen(i_pActorName) > 0) { MGDVector<Component*> pTemplateComponents; SystemManager::GetSingleton().GetComponentsFromTemplate(ObjectId(i_pTemplateActorName), pTemplateComponents); MGDVector<Component*> pNewComponents; for (uint32 uiIndex = 0; uiIndex < pTemplateComponents.size(); ++uiIndex) { Component* pComponent = GetSingleton().m_Factory.Create(pTemplateComponents[uiIndex]->GetID(), i_pActorName, true); if (pComponent) { pComponent->CreateFromTemplate(pTemplateComponents[uiIndex], ObjectId(i_pActorName)); SystemManager::GetSingleton().AddComponent(pComponent, ObjectId(i_pActorName)); pNewComponents.push_back(pComponent); } } InitComponents(pNewComponents); } }
void DwString::PrintDebugInfo(std::ostream& aStrm) const { aStrm << "----------------- Debug info for DwString class ----------------\n"; aStrm << "Id: " << ClassName() << ", " << ObjectId() << "\n"; aStrm << "Rep: " << (void*) mRep << "\n"; aStrm << "Buffer: " << (void*) mRep->mBuffer << "\n"; aStrm << "Buffer size: " << mRep->mSize << "\n"; aStrm << "Start: " << mStart << "\n"; aStrm << "Length: " << mLength << "\n"; aStrm << "Contents: "; for (size_t i=0; i < mLength && i < 64; ++i) { aStrm << mRep->mBuffer[mStart+i]; } aStrm << std::endl; }
void ActorFactory::CreateTemplateActor(const tinyxml2::XMLElement* i_pTemplateActor) { if (i_pTemplateActor) { char szTemplateActorName[32]; sprintf_s(szTemplateActorName,i_pTemplateActor->Attribute("Name")); for (const tinyxml2::XMLElement* pNode = i_pTemplateActor->FirstChildElement(); pNode; pNode = pNode->NextSiblingElement()) { Component* pComponent = CreateComponent(pNode, szTemplateActorName); MGD_ASSERT(pComponent); if (pComponent) { SystemManager::GetSingleton().AddTemplate(ObjectId(szTemplateActorName), pComponent); } } } }
Component* ActorFactory::CreateComponent(const tinyxml2::XMLElement* i_pNode, const char* i_pActorName) { if(i_pNode) { const char* pComponentID = i_pNode->Value(); Component* pComponent = GetSingleton().m_Factory.Create(ObjectId(pComponentID), i_pActorName); if (pComponent) { if (pComponent->SetupFromXml(i_pNode)) { return pComponent; } } delete(pComponent); MGD_LOG::LOGManager::GetSingleton().WriteLog(MGD_LOG::MGD_ERROR, ACTOR_FACTORY_CONTEXT, "Component failed to initialize: %s", pComponentID); } return NULL; }
void ActorFactory::CreateActor(const tinyxml2::XMLElement* i_pActor, MGDVector<Component*>& o_vNewComponents) { if(i_pActor) { const char* pActorName = i_pActor->Attribute("Name"); for (const tinyxml2::XMLElement* pNode = i_pActor->FirstChildElement(); pNode; pNode = pNode->NextSiblingElement()) { Component* pComponent = CreateComponent(pNode, pActorName); #if defined(_DEBUG) ++NumComponents; #endif MGD_ASSERT(pComponent); if (pComponent) { SystemManager::GetSingleton().AddComponent(pComponent, ObjectId(pActorName)); o_vNewComponents.push_back(pComponent); } } } }
bool Component::SetupFromXml( const tinyxml2::XMLElement* pNode ) { if(pNode) { const char* pTextName = pNode->Attribute("Name"); if (pTextName && strlen(pTextName) > 0) { m_szTextName = pTextName; m_oName = ObjectId(pTextName); return true; } else { CreateName(); } return true; } return false; }
ObjectId Value::getObjectId() const { this->throwIfIncompatibleValue(Type::Map); return ObjectId(this->data->map["id"].asInteger()); }
Entity(Engine& engine, const AudioGroup& group, GroupId groupId, ObjectId oid = ObjectId()) : m_engine(engine), m_audioGroup(group), m_groupId(groupId), m_objectId(oid) {}
void DwMessageComponent::_PrintDebugInfo(std::ostream& aStrm) const { aStrm << "ObjectId: " << ObjectId() << '\n'; aStrm << "ClassId: "; switch (ClassId()) { case kCidError: aStrm << "kCidError"; break; case kCidUnknown: aStrm << "kCidUnknown"; break; case kCidAddress: aStrm << "kCidAddress"; break; case kCidAddressList: aStrm << "kCidAddressList"; break; case kCidBody: aStrm << "kCidBody"; break; case kCidBodyPart: aStrm << "kCidBodyPart"; break; case kCidDispositionType: aStrm << "kCidDispositionType"; break; case kCidMechanism: aStrm << "kCidMechanism"; break; case kCidMediaType: aStrm << "kCidMediaType"; break; case kCidParameter: aStrm << "kCidParameter"; break; case kCidDateTime: aStrm << "kCidDateTime"; break; case kCidEntity: aStrm << "kCidEntity"; break; case kCidField: aStrm << "kCidField"; break; case kCidFieldBody: aStrm << "kCidFieldBody"; break; case kCidGroup: aStrm << "kCidGroup"; break; case kCidHeaders: aStrm << "kCidHeaders"; break; case kCidMailbox: aStrm << "kCidMailbox"; break; case kCidMailboxList: aStrm << "kCidMailboxList"; break; case kCidMessage: aStrm << "kCidMessage"; break; case kCidMessageComponent: aStrm << "kCidMessageComponent"; break; case kCidMsgId: aStrm << "kCidMsgId"; break; case kCidText: aStrm << "kCidText"; break; } aStrm << '\n'; aStrm << "ClassName: " << ClassName() << '\n'; aStrm << "String: " << mString << '\n'; aStrm << "IsModified: " << (IsModified() ? "True" : "False") << '\n'; aStrm << "Parent ObjectId: "; if (mParent) { aStrm << mParent->ObjectId() << '\n'; } else { aStrm << "(none)\n"; } }
static constexpr ObjectId InvalidObjectId() { return ObjectId(numeric_limits<typename ObjectId::RepType>::max()); }
void TransformationComponent::Init() { char szEventName[128]; sprintf_s(szEventName,"%s/POSITION_CHANGED",GetOwnerID().GetDebugName().c_str()); m_oEvent.SetPath(ObjectId(szEventName)); }
void ActorFactory::RemoveActor(const char* i_szActor) { SystemManager::GetSingleton().RemoveComponentsByOwnerId(ObjectId(i_szActor)); }