(Entity) Added components bits

Moved [Add/Remove]Component implementation to .cpp


Former-commit-id: e61e8c57911c2e106e6c0959b692a006b8f58c40
This commit is contained in:
Lynix
2015-03-17 12:34:03 +01:00
parent 99e0912163
commit 0ba034f7e9
3 changed files with 44 additions and 31 deletions

View File

@@ -15,25 +15,6 @@ namespace Ndk
{
}
inline BaseComponent& Entity::AddComponent(std::unique_ptr<BaseComponent>&& component)
{
NazaraAssert(component, "Component must be valid");
nzUInt32 componentId = component->GetId();
// Nous supprimons l'ancien component, s'il existe
RemoveComponent(componentId);
// Nous nous assurons que le vecteur de component est suffisamment grand pour contenir le nouveau component
if (m_components.size() <= componentId)
m_components.resize(componentId + 1);
// Affectation et retour du component
m_components[componentId] = std::move(component);
return *m_components[componentId].get();
}
template<typename ComponentType, typename... Args>
ComponentType& Entity::AddComponent(Args&&... args)
{
@@ -65,6 +46,11 @@ namespace Ndk
return static_cast<ComponentType&>(GetComponent(componentId));
}
inline const NzBitset<>& Entity::GetComponentBits() const
{
return m_componentBits;
}
inline Entity::Id Entity::GetId() const
{
return m_id;
@@ -89,18 +75,6 @@ namespace Ndk
return HasComponent(componentId);
}
inline void Entity::RemoveAllComponents()
{
m_components.clear();
}
inline void Entity::RemoveComponent(nzUInt32 componentId)
{
///DOC: N'a aucun effet si le component n'est pas présent
if (HasComponent(componentId))
m_components[componentId].reset();
}
template<typename ComponentType>
void Entity::RemoveComponent()
{