Core/EnttWorld: Add RemoveSystem method
This commit is contained in:
parent
99471e8e65
commit
a101f7c71f
|
|
@ -30,6 +30,8 @@ namespace Nz
|
||||||
|
|
||||||
template<typename T> T& GetSystem() const;
|
template<typename T> T& GetSystem() const;
|
||||||
|
|
||||||
|
template<typename T> void RemoveSystem();
|
||||||
|
|
||||||
void Update();
|
void Update();
|
||||||
void Update(Time elapsedTime);
|
void Update(Time elapsedTime);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,18 @@ namespace Nz
|
||||||
auto& node = static_cast<Node<T>&>(*m_nodes[it->second]);
|
auto& node = static_cast<Node<T>&>(*m_nodes[it->second]);
|
||||||
return node.system;
|
return node.system;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void EnttSystemGraph::RemoveSystem()
|
||||||
|
{
|
||||||
|
auto it = m_systemToNodes.find(entt::type_hash<T>());
|
||||||
|
if (it == m_systemToNodes.end())
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_nodes.erase(m_nodes.begin() + it->second);
|
||||||
|
m_systemToNodes.erase(it);
|
||||||
|
m_systemOrderUpdated = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <Nazara/Core/DebugOff.hpp>
|
#include <Nazara/Core/DebugOff.hpp>
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,8 @@ namespace Nz
|
||||||
const entt::registry& GetRegistry() const;
|
const entt::registry& GetRegistry() const;
|
||||||
template<typename T> T& GetSystem() const;
|
template<typename T> T& GetSystem() const;
|
||||||
|
|
||||||
|
template<typename T> void RemoveSystem();
|
||||||
|
|
||||||
void Update(Time elapsedTime) override;
|
void Update(Time elapsedTime) override;
|
||||||
|
|
||||||
operator entt::registry&();
|
operator entt::registry&();
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,12 @@ namespace Nz
|
||||||
return m_systemGraph.GetSystem<T>();
|
return m_systemGraph.GetSystem<T>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void EnttWorld::RemoveSystem()
|
||||||
|
{
|
||||||
|
return m_systemGraph.RemoveSystem<T>();
|
||||||
|
}
|
||||||
|
|
||||||
inline EnttWorld::operator entt::registry&()
|
inline EnttWorld::operator entt::registry&()
|
||||||
{
|
{
|
||||||
return m_registry;
|
return m_registry;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue