Update framework
This commit is contained in:
29
framework/game/scenes/ecs-scene.d.ts
vendored
Normal file
29
framework/game/scenes/ecs-scene.d.ts
vendored
Normal 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;
|
||||
}
|
49
framework/game/scenes/ecs-scene.js
Normal file
49
framework/game/scenes/ecs-scene.js
Normal 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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user