feat: findEntity

This commit is contained in:
cha0s 2019-03-27 17:36:57 -05:00
parent e42726f1ff
commit a4d10904af
4 changed files with 25 additions and 6 deletions

View File

@ -71,12 +71,13 @@ export class EntityList extends decorate(class {}) {
}
}
entity(uuid) {
return this.entities_PRIVATE[uuid];
}
mappedUuid(uuid) {
return this.uuidMap_PRIVATE[uuid];
findEntity(uuid) {
if (this.uuidMap_PRIVATE[uuid]) {
return this.entities_PRIVATE[this.uuidMap_PRIVATE[uuid]];
}
if (this.entities_PRIVATE[uuid]) {
return this.entities_PRIVATE[uuid];
}
}
get quadTree() {

View File

@ -48,6 +48,10 @@ export class Layer extends decorate(class {}) {
this.entityList.off('entityRemoved', this.onEntityRemovedFromLayer);
}
findEntity(uuid) {
return this.entityList.findEntity(uuid);
}
fromJSON(json) {
if (json.entities) {
json.entities.forEach((entityJSON) => {

View File

@ -58,6 +58,16 @@ export class Layers extends decorate(class {}) {
}
}
findEntity(uuid) {
for (const index in this.layers) {
const layer = this.layers[index];
const foundEntity = layer.findEntity(uuid);
if (foundEntity) {
return foundEntity;
}
}
}
fromJSON(json) {
if (json) {
for (const index in json) {

View File

@ -44,6 +44,10 @@ export class Room extends decorate(class {}) {
this.off('worldChanged', this.onWorldChanged);
}
findEntity(uuid) {
return this.layers.findEntity(uuid);
}
fromJSON(json) {
if (json.layers) {
this.layers.fromJSON(json.layers);