@tdurtschi/bug
Version:
Bug is a simulation that models a weevil walking around in an HTML canvas.
52 lines (51 loc) • 1.58 kB
TypeScript
import EntityUpdater from "./entity-updater";
import { IGameUI } from "./canvas-ui/canvas-ui";
import EntityManager, { IEntityManager } from "./entity-manager";
import Entity from "./entities/entity";
import { BugState } from "./entities/bug/bug";
import { PlantState } from "./entities/plant/plant";
export interface GameEngineOptions {
gameUI: IGameUI;
entityManager: EntityManager;
height: number;
width: number;
initialState?: string;
}
export interface Game {
togglePause: () => void;
isPaused: boolean;
addPlant: (initialState?: Partial<PlantState>) => void;
addBug: (initialState?: Partial<BugState> | {
size?: number;
}) => void;
getEntities: () => Entity[];
start: () => void;
width: number;
height: number;
exportCurrentState: () => string;
setSpeed: (speed: number) => void;
}
export declare class GameEngine implements Game {
isPaused: boolean;
height: number;
width: number;
entityManager: IEntityManager;
gameUI: IGameUI;
entityUpdater: EntityUpdater;
frame: number;
private plantFactory;
private bugFactory;
private updateHandle;
constructor(args: GameEngineOptions);
start(): void;
addBug(initialState?: Partial<BugState & Entity> & {
size?: number;
}): void;
addPlant(initialState?: Partial<PlantState & Entity>): void;
getEntities(): Entity[];
togglePause(): void;
update: () => void;
setSpeed(speed: number): void;
createInitialGameState(initialState?: string): void;
exportCurrentState(): string;
}