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> void RemoveSystem();
|
||||
|
||||
void Update();
|
||||
void Update(Time elapsedTime);
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,18 @@ namespace Nz
|
|||
auto& node = static_cast<Node<T>&>(*m_nodes[it->second]);
|
||||
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>
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ namespace Nz
|
|||
const entt::registry& GetRegistry() const;
|
||||
template<typename T> T& GetSystem() const;
|
||||
|
||||
template<typename T> void RemoveSystem();
|
||||
|
||||
void Update(Time elapsedTime) override;
|
||||
|
||||
operator entt::registry&();
|
||||
|
|
|
|||
|
|
@ -38,6 +38,12 @@ namespace Nz
|
|||
return m_systemGraph.GetSystem<T>();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void EnttWorld::RemoveSystem()
|
||||
{
|
||||
return m_systemGraph.RemoveSystem<T>();
|
||||
}
|
||||
|
||||
inline EnttWorld::operator entt::registry&()
|
||||
{
|
||||
return m_registry;
|
||||
|
|
|
|||
Loading…
Reference in New Issue