mirror of
https://github.com/zoriya/Bomberman.git
synced 2025-12-21 13:55:10 +00:00
Adding components
This commit is contained in:
55
lib/wal/sources/Entity/Entity.cpp
Normal file
55
lib/wal/sources/Entity/Entity.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// Created by Zoe Roux on 2021-05-14.
|
||||
//
|
||||
|
||||
#include "Entity/Entity.hpp"
|
||||
|
||||
#include <utility>
|
||||
|
||||
namespace WAL
|
||||
{
|
||||
unsigned Entity::nextID = 0;
|
||||
|
||||
Entity::Entity(std::string name)
|
||||
: _uid(Entity::nextID++),
|
||||
_name(std::move(name))
|
||||
{ }
|
||||
|
||||
Entity::Entity(const Entity &other)
|
||||
: _uid(Entity::nextID++),
|
||||
_name(other._name),
|
||||
_disabled(other._disabled)
|
||||
{
|
||||
for (const auto &cmp : other._components)
|
||||
this->addComponent(*cmp);
|
||||
}
|
||||
|
||||
unsigned Entity::getUid() const
|
||||
{
|
||||
return this->_uid;
|
||||
}
|
||||
|
||||
std::string Entity::getName() const
|
||||
{
|
||||
return this->_name;
|
||||
}
|
||||
|
||||
bool Entity::isDisable() const
|
||||
{
|
||||
return this->_disabled;
|
||||
}
|
||||
|
||||
void Entity::setDisable(bool disabled)
|
||||
{
|
||||
this->_disabled = disabled;
|
||||
}
|
||||
|
||||
Entity &Entity::addComponent(const Component &component)
|
||||
{
|
||||
// TODO handle duplicates
|
||||
// if (this->hasComponent<T>())
|
||||
// throw DuplicateError("A component of the type \"" + std::string(typeid(T).name()) + "\" already exists.");
|
||||
this->_components.emplace_back(component.clone(*this));
|
||||
return *this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user