export default class Entity {
constructor() {
this.components = new Map();
}
/**
*
* @param {Component} component
*/
addComponent(component) {
if (!component.name) throw new Error("Cannot add component with empty name '" + component.name + "'");
if (this.components.has(component.name)) throw new Error("Entity already has component '" + component.name + "'");
this.components.set(component.name, component);
if (this.ecs) {
this.ecs.addedComponentToEntity(this, component);
}
}
hasComponent(component_name) {
return this.components.has(component_name);
}
getComponent(component_name) {
return this.components.get(component_name);
}
removeComponent(component_name) {
return this.components.get(component_name);
}
}