@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
54 lines (53 loc) • 1.59 kB
TypeScript
import { Object3D } from 'three';
import { Vector3 } from 'three';
import { Line3 } from 'three';
import { MeshWithBVH } from '../../core/geometry/bvh/three-mesh-bvh';
import { CapsuleOptions } from './CapsuleGeometry';
export interface CorePlayerOptions {
object: Object3D;
collider: MeshWithBVH;
}
type ResetRequiredCallback = () => boolean;
export declare class CorePlayer {
private _pressed;
private _onGround;
private _velocity;
readonly capsuleInfo: {
radius: number;
segment: Line3;
};
object: Object3D;
collider: MeshWithBVH;
startPosition: Vector3;
startRotation: Vector3;
jumpAllowed: boolean;
jumpStrength: number;
runAllowed: boolean;
runSpeedMult: number;
private _running;
speed: number;
physicsSteps: number;
gravity: Vector3;
private _azimuthalAngle;
private _resetYMax;
private _resetRequiredCallback;
constructor(options: CorePlayerOptions);
setOptions(options: CorePlayerOptions): void;
private _setObject;
setCollider(collider: MeshWithBVH): void;
setCapsule(capsuleOptions: CapsuleOptions): void;
reset(): void;
stop(): void;
setResetRequiredCallback(callback: ResetRequiredCallback): void;
setAzimuthalAngle(angle: number): void;
update(delta: number): void;
private _updateStep;
setForward(state: boolean): void;
setBackward(state: boolean): void;
setLeft(state: boolean): void;
setRight(state: boolean): void;
jump(): void;
setRun(state: boolean): void;
running(): boolean;
}
export {};