Update framework

This commit is contained in:
2022-11-26 02:22:02 +01:00
parent 9a6ce1f832
commit ae057940af
508 changed files with 26011 additions and 14248 deletions

29
framework/game/scenes/ecs-scene.d.ts vendored Normal file
View File

@@ -0,0 +1,29 @@
import { Scene } from '../../scene/scene';
import { World } from '../../ecs/index';
import { Game } from '..';
import { Component } from '../../ecs/component';
import { System } from '../../ecs/system';
import { Entity } from '../../ecs/entity';
import { Query } from '../../ecs/query';
import { SceneManager } from '../../scene/manager';
export declare class ECSScene implements Scene {
instance: Game;
id: string;
world: World;
running: boolean;
data: any;
constructor(instance: Game);
update(): void;
updateDraw(): boolean;
onActivate(manager: SceneManager): void;
onDeactivate(): void;
onSwitch(): void;
createEntity(components: Array<Component<any>>): Entity;
createComponent<T>(props: T): Component<T>;
createSystem(systemExecutor: Function): void;
addSystem(system: System): void;
addEntity(entity: Entity): void;
removeEntity(entity: Entity): void;
createQuery(include: Array<Component<any>>, exclude: Array<Component<any>>): Query;
extendEntity(entity: Entity, components: Array<Component<any>>): Entity;
}

View File

@@ -0,0 +1,49 @@
import { World } from '../../ecs/index';
export class ECSScene {
constructor(instance) {
this.instance = instance;
this.running = true;
this.id = 'ECSScene';
this.world = new World();
}
update() {
if (this.running)
this.world.run();
}
updateDraw() {
return true;
}
onActivate(manager) {
this.running = true;
}
onDeactivate() {
this.running = false;
}
onSwitch() {
return;
}
createEntity(components) {
return this.world.createEntity(components);
}
createComponent(props) {
return this.world.createComponent(props);
}
createSystem(systemExecutor) {
return this.world.createSystem(systemExecutor);
}
addSystem(system) {
return this.world.addSystem(system);
}
addEntity(entity) {
return this.world.addEntity(entity);
}
removeEntity(entity) {
return this.world.removeEntity(entity);
}
createQuery(include, exclude) {
return this.world.createQuery(include, exclude);
}
extendEntity(entity, components) {
return this.world.extendEntity(entity, components);
}
}