UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

172 lines • 6.16 kB
export class EngineHarness { /** * Quick initialization of the engine in a sensible default configuration * @param {(config:EngineConfiguration,engine:Engine)=>*} [configuration] * @return {Promise<Engine>} */ static bootstrap({ configuration }?: (config: EngineConfiguration, engine: Engine) => any): Promise<Engine>; /** * * @param {Engine} engine */ static addFpsCounter(engine: Engine): void; /** * @param {Object} param * @param {Engine} param.engine * @param {EntityComponentDataset} [param.ecd] * @param {Vector3} [param.target] * @param {number} [param.distance] * @param {number} [param.pitch] * @param {number} [param.yaw] * @param {boolean} [param.autoClip] * @param {number} [param.distanceMin] * @param {number} [param.distanceMax] * @param {number} [param.fieldOfView] in degrees * @returns {Entity} */ static buildCamera({ engine, ecd, target, distance, pitch, yaw, autoClip, distanceMin, distanceMax, fieldOfView }: { engine: Engine; ecd?: EntityComponentDataset; target?: Vector3; distance?: number; pitch?: number; yaw?: number; autoClip?: boolean; distanceMin?: number; distanceMax?: number; fieldOfView?: number; }): Entity; /** * @param {Object} params * @param {Engine} params.engine * @param {{x:number,y:number,z:number}} [params.focus] * @param [params.heightMap] * @param [params.heightRange] * @param {number} [params.pitch] * @param {number} [params.yaw] * @param {number} [params.distance] * @param {{x:number, y:number}} [params.terrainSize] * @param {number} [params.terrainResolution] * @param {boolean} [params.enableWater] * @param {boolean} [params.enableTerrain] * @param {boolean} [params.enableLights=true] * @param {boolean} [params.enableShadows=true] if lights are enabled, enable shadows for sun * @param {number} [params.cameraFieldOfView] * @param {number} [params.cameraFarDistance] * @param {boolean} [params.cameraController=true] * @param {boolean} [params.cameraAutoClip] * @param {number} [params.shadowmapResolution] * @param {boolean} [params.showFps] */ static buildBasics({ engine, focus, heightMap, heightRange, pitch, yaw, distance, terrainSize, terrainResolution, enableWater, enableTerrain, enableLights, enableShadows, cameraFieldOfView, cameraFarDistance, cameraController, cameraAutoClip, shadowmapResolution, showFps }: { engine: Engine; focus?: { x: number; y: number; z: number; }; heightMap?: any; heightRange?: any; pitch?: number; yaw?: number; distance?: number; terrainSize?: { x: number; y: number; }; terrainResolution?: number; enableWater?: boolean; enableTerrain?: boolean; enableLights?: boolean; enableShadows?: boolean; cameraFieldOfView?: number; cameraFarDistance?: number; cameraController?: boolean; cameraAutoClip?: boolean; shadowmapResolution?: number; showFps?: boolean; }): Promise<void>; /** * @param {Object} param * @param {Engine} param.engine * @param {EntityComponentDataset} [param.ecd] * @param {number} [param.shadowmapResolution] * @param {boolean} [param.castShadow] * @param {Color} [param.sun] * @param {number} [param.sunIntensity] * @param {Vector3} [param.sunDirection] * @param {Color} [param.ambient] * @param {number} [param.ambientIntensity] */ static buildLights({ engine, ecd, shadowmapResolution, castShadow, sun, sunIntensity, sunDirection, ambient, ambientIntensity }: { engine: Engine; ecd?: EntityComponentDataset; shadowmapResolution?: number; castShadow?: boolean; sun?: Color; sunIntensity?: number; sunDirection?: Vector3; ambient?: Color; ambientIntensity?: number; }): Promise<void>; /** * @param {Object} param * @param {number} [param.cameraEntity] * @param {Engine} param.engine * @param {number} [param.sensitivity] * @param {EntityComponentDataset} [param.ecd] * @returns {Promise<Entity>} */ static buildOrbitalCameraController({ cameraEntity, engine, ecd, sensitivity }: { cameraEntity?: number; engine: Engine; sensitivity?: number; ecd?: EntityComponentDataset; }): Promise<Entity>; /** * * @param {Engine} engine * @param {Vector2} [size] * @param {String} [diffuse0] * @param heightMap * @param {number} [resolution] * @param {number} [waterLevel] * @param {boolean} [enableWater] * @returns {Terrain} */ static buildTerrain({ engine, size, diffuse0, resolution, waterLevel, enableWater, }: Engine): Terrain; /** * * @type {Engine} */ engine: Engine; /** * @readonly * @type {Promise|null} */ readonly p: Promise<any> | null; /** * @param {Object} [params] * @param {(config:EngineConfiguration,engine:Engine)=>*} [params.configuration] * @param {boolean} [params.enable_localization] Whether or not to load localization data * @returns {Promise<Engine>} */ initialize({ configuration, enable_localization, }?: { configuration?: (config: EngineConfiguration, engine: Engine) => any; enable_localization?: boolean; }): Promise<Engine>; } export namespace EngineHarness { /** * * @returns {EngineHarness} */ function getSingleton(): EngineHarness; } import Engine from "./Engine.js"; import { EngineConfiguration } from "./EngineConfiguration.js"; import Vector3 from "../core/geom/Vector3.js"; import Entity from "./ecs/Entity.js"; import { Color } from "../core/color/Color.js"; import Terrain from "./ecs/terrain/ecs/Terrain.js"; //# sourceMappingURL=EngineHarness.d.ts.map