Minor fixes/changes

This commit is contained in:
Stephen Seo 2016-03-14 18:25:38 +09:00
parent 635eed34a4
commit 0f579d7241

View file

@ -87,6 +87,11 @@ namespace EC
return index < currentSize; return index < currentSize;
} }
bool isAlive(std::size_t index) const
{
return std::get<bool>(entities.at(index));
}
const EntitiesTupleType& getEntityInfo(std::size_t index) const const EntitiesTupleType& getEntityInfo(std::size_t index) const
{ {
return entities.at(index); return entities.at(index);
@ -158,7 +163,7 @@ namespace EC
template <typename Component, typename... Args> template <typename Component, typename... Args>
void addComponent(std::size_t entityID, Args&&... args) void addComponent(std::size_t entityID, Args&&... args)
{ {
if(!hasEntity(entityID)) if(!hasEntity(entityID) || !isAlive(entityID))
{ {
return; return;
} }
@ -172,7 +177,7 @@ namespace EC
template <typename Component> template <typename Component>
void removeComponent(std::size_t entityID) void removeComponent(std::size_t entityID)
{ {
if(!hasEntity(entityID)) if(!hasEntity(entityID) || !isAlive(entityID))
{ {
return; return;
} }
@ -183,7 +188,7 @@ namespace EC
template <typename Tag> template <typename Tag>
void addTag(std::size_t entityID) void addTag(std::size_t entityID)
{ {
if(!hasEntity(entityID)) if(!hasEntity(entityID) || !isAlive(entityID))
{ {
return; return;
} }
@ -194,7 +199,7 @@ namespace EC
template <typename Tag> template <typename Tag>
void removeTag(std::size_t entityID) void removeTag(std::size_t entityID)
{ {
if(!hasEntity(entityID)) if(!hasEntity(entityID) || !isAlive(entityID))
{ {
return; return;
} }