mirror of
				https://github.com/DarkflameUniverse/DarkflameServer.git
				synced 2025-10-31 04:32:06 +00:00 
			
		
		
		
	remove children
We need to make sure we are actually deleting children from the vector of children when they are deleted as entities.
This commit is contained in:
		| @@ -125,6 +125,9 @@ Entity::~Entity() { | ||||
|  | ||||
| 		m_Components.erase(pair.first); | ||||
| 	} | ||||
| 	if (m_ParentEntity) { | ||||
| 		m_ParentEntity->RemoveChild(this); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void Entity::Initialize() | ||||
| @@ -1656,6 +1659,17 @@ void Entity::AddChild(Entity* child) { | ||||
| 	m_ChildEntities.push_back(child); | ||||
| } | ||||
|  | ||||
| void Entity::RemoveChild(Entity* child) { | ||||
| 	if (!child) return; | ||||
| 	for (auto entity = m_ChildEntities.begin(); entity != m_ChildEntities.end(); entity++) { | ||||
| 		if (*entity && (*entity)->GetObjectID() == child->GetObjectID()) { | ||||
| 			m_IsParentChildDirty = true; | ||||
| 			m_ChildEntities.erase(entity); | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void Entity::AddTimer(std::string name, float time) { | ||||
| 	EntityTimer* timer = new EntityTimer(name, time); | ||||
| 	m_Timers.push_back(timer); | ||||
|   | ||||
| @@ -143,6 +143,7 @@ public: | ||||
| 	void SetProximityRadius(dpEntity* entity, std::string name); | ||||
|  | ||||
| 	void AddChild(Entity* child); | ||||
| 	void RemoveChild(Entity* child); | ||||
| 	void AddTimer(std::string name, float time); | ||||
| 	void AddCallbackTimer(float time, std::function<void()> callback); | ||||
| 	bool HasTimer(const std::string& name); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 EmosewaMC
					EmosewaMC