perf: object
This commit is contained in:
parent
8d23144206
commit
1abbf9db3f
|
@ -1,29 +1,29 @@
|
|||
class Entity {
|
||||
$$Components = new Map();
|
||||
$$Components = {};
|
||||
constructor(id) {
|
||||
this.id = id;
|
||||
}
|
||||
addComponent(Component, values = {}) {
|
||||
this.$$Components.set(Component.constructor.componentName, Component);
|
||||
this.$$Components[Component.constructor.componentName] = Component;
|
||||
this[Component.constructor.componentName] = Component.create(this.id, values);
|
||||
}
|
||||
destroy() {
|
||||
for (const [, Component] of this.$$Components) {
|
||||
this.removeComponent(Component);
|
||||
for (const componentName in this.$$Components) {
|
||||
this.removeComponent(this.$$Components[componentName]);
|
||||
}
|
||||
}
|
||||
has(componentName) {
|
||||
return this.$$Components.has(componentName);
|
||||
return componentName in this.$$Components;
|
||||
}
|
||||
removeComponent(Component) {
|
||||
this.$$Components.delete(Component.constructor.componentName);
|
||||
delete this.$$Components[Component.constructor.componentName];
|
||||
this[Component.constructor.componentName] = null;
|
||||
Component.destroy(this.id);
|
||||
}
|
||||
toJSON() {
|
||||
const json = {};
|
||||
for (const [componentName, Component] of this.$$Components) {
|
||||
json[componentName] = Component.get(this.id).toJSON();
|
||||
for (const componentName in this.$$Components) {
|
||||
json[componentName] = this.$$Components[componentName].get(this.id).toJSON();
|
||||
}
|
||||
return json;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user