Rooms, items and some player stuff

This commit is contained in:
2021-11-04 20:58:37 +01:00
parent 36bb9264b3
commit a745ff299e
277 changed files with 14665 additions and 5 deletions

View File

@@ -0,0 +1,27 @@
export class Query {
constructor(include, exclude) {
this.include = include;
this.exclude = exclude;
this.isDirty = true;
this.results = new Array();
this.includeComponentIds = include.map((component) => component.id);
this.excludeComponentIds = exclude.map((component) => component.id);
}
execute(world) {
if (!this.isDirty && this.results) {
return this.results;
}
let filtered;
const entities = world.entities.filter(entity => {
let ids = entity.components.map(component => component.id);
let includes = ids.map(id => this.includeComponentIds.includes(id)).includes(true);
let excludes = ids.map(id => this.excludeComponentIds.includes(id)).includes(true);
return includes && !excludes;
});
if (entities.length > 0) {
this.isDirty = false;
this.results = entities;
}
return entities;
}
}