void EmberEntity::accept(IEntityVisitor& visitor) { visitor.visit(*this); for (unsigned int i = 0; i < numContained(); ++i) { EmberEntity* entity = getEmberContained(i); if (entity) { entity->accept(visitor); } } }
void EmberEntity::reattachChildren() { for (unsigned int i = 0; i < numContained(); ++i) { EmberEntity* entity = getEmberContained(i); if (entity) { entity->updateAttachment(); entity->reattachChildren(); } } }
void EmberEntity::reattachChildren() { for (unsigned int i = 0; i < numContained(); ++i) { EmberEntity* entity = getEmberContained(i); if (entity) { entity->onLocationChanged(entity->getEmberLocation()); entity->reattachChildren(); } } }
void EmberEntity::accept(std::function<bool(const EmberEntity&)>& visitor) const { if (visitor(*this)) { for (unsigned int i = 0; i < numContained(); ++i) { EmberEntity* entity = getEmberContained(i); if (entity) { entity->accept(visitor); } } } }
EmberEntity* EmberEntity::getAttachedEntity(const std::string& namedPoint) { //HACK: this is just a temporary solution if (hasAttr(namedPoint)) { const Atlas::Message::Element& idElement = valueOfAttr(namedPoint); std::string id; if (Eris::Entity::extractEntityId(idElement, id)) { for (unsigned int i = 0; i < numContained(); ++i) { EmberEntity* entity = getEmberContained(i); if (entity && entity->getId() == id) { return entity; } } } } return 0; }