UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

96 lines (95 loc) 5.92 kB
/** * Creates a PointerLockControls * * @remarks * This allows you to create a First-Person navigation, using the WASD keys. * */ import { Camera } from 'three'; import { TypedCameraControlsEventNode } from './_BaseCameraControls'; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; import { PointerLockControls } from '../../../modules/core/controls/PointerLockControls'; import { CameraControlsNodeType } from '../../poly/NodeContext'; import { CorePlayer } from '../../../core/player/Player'; import { CollisionController } from './collision/CollisionController'; type PointerLockControlsMap = Map<string, PointerLockControls>; declare class FirstPersonEventParamsConfig extends NodeParamsConfig { main: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>; /** @param collider object */ colliderObject: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.NODE_PATH>; /** @param click to lock controls */ lock: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BUTTON>; /** @param click to unlock controls */ unlock: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BUTTON>; /** @param collision Capsule Radius */ capsuleRadius: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param collision Capsule Height */ capsuleHeight: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; physics: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>; /** @param physics Steps */ physicsSteps: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>; /** @param gravity */ gravity: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>; /** @param translate speed */ translateSpeed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param rotate speed */ rotateSpeed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param jump Allowed */ jumpAllowed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>; /** @param jump Force */ jumpStrength: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param run Allowed */ runAllowed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>; /** @param run speed mult */ runSpeedMult: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param recompute colliding geo */ updateCollider: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BUTTON>; init: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>; /** @param start Position */ startPosition: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>; /** @param start Position */ startRotation: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>; /** @param reset */ reset: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BUTTON>; /** @param min rotation angle */ minPolarAngle: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; /** @param max rotation angle */ maxPolarAngle: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>; html: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FOLDER>; /** @param specify a custom HTML element */ customLockCursorElement: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>; /** @param jump HTML element selector */ lockCursorElementSelector: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>; } export declare class FirstPersonControlsEventNode extends TypedCameraControlsEventNode<FirstPersonEventParamsConfig> { paramsConfig: FirstPersonEventParamsConfig; static type(): CameraControlsNodeType; endEventName(): string; static readonly INPUT_UPDATE_COLLIDER = "updateCollider"; static readonly INPUT_RESET = "reset"; private _collisionController; collisionController(): CollisionController; initializeNode(): void; protected _controls_by_element_id: PointerLockControlsMap; private _player; createControlsInstance(camera: Camera, element: HTMLElement): Promise<PointerLockControls>; private _initPlayer; private _playerOptions; player(): CorePlayer | undefined; private _updatePlayerParams; private _resetPlayer; private _updateCollider; protected _bind_listeners_to_controls_instance(controls: PointerLockControls): void; updateRequired(): boolean; setupControls(controls: PointerLockControls): void; disposeControlsForHtmlElementId(htmlElementId: string): void; unlockControls(): void; private lockControls; private _firstControls; static PARAM_CALLBACK_lockControls(node: FirstPersonControlsEventNode): void; static PARAM_CALLBACK_unlockControls(node: FirstPersonControlsEventNode): void; static PARAM_CALLBACK_updateCollider(node: FirstPersonControlsEventNode): void; static PARAM_CALLBACK_updatePlayerParams(node: FirstPersonControlsEventNode): void; static PARAM_CALLBACK_resetPlayer(node: FirstPersonControlsEventNode): void; } export {};