Entity::Entity(const XmlNode & node) : m_ID(INVALID_ENTITY_ID), m_Node(new TransformationNode()), m_WantsToDie(false) { static bool componentBuilderInitResult = InitializeComponentBuilder(); node.ValidateChildElements("Components", ""); node.ValidateAttributes("name", "", false); XmlNode componentsNode = node.GetFirstChildNode(); componentsNode.ValidateChildElements("", k_ComponentBuilder->GetRegisteredBuildersCSV()); XmlNode componentNode = componentsNode.GetFirstChildNode(); SetAttachmentTarget(m_Node); while(!componentNode.IsEmpty()) { k_ComponentBuilder->BuildObject(componentNode); componentNode = componentNode.GetNextSiblingNode(); } ClearAttachmentTarget(); }
BoxPhysicsComponent::BoxPhysicsComponent(const XmlNode & node) { node.ValidateAttributes("halfExtents",""); std::string halfExtentString = GetAttribute<std::string>(node, "halfExtents", "1,1,1"); std::vector<F32> values; ParseList(halfExtentString, ',', values); m_HalfExtentVector = Vector3<F32>(values.data()); }