@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
52 lines (51 loc) • 1.56 kB
TypeScript
import { Object3D, Vector3, Line3 } from 'three';
import { MeshWithBVH } from '../../core/geometry/bvh/three-mesh-bvh';
import { CorePlayerInput } from './PlayerCommon';
export type CorePlayerInputData = Record<CorePlayerInput, boolean>;
export interface CorePlayerOptions {
object: Object3D;
collider?: MeshWithBVH;
}
export interface CorePlayerCapsuleInput {
radius: number;
height: number;
}
export interface CorePlayerCapsuleData {
radius: number;
segment: Line3;
}
interface BasePlayerComputeInput {
collider?: MeshWithBVH;
speed: number;
runAllowed: boolean;
runSpeedMult: number;
jumpAllowed: boolean;
jumpStrength: number;
physicsSteps: number;
gravity: Vector3;
}
export interface CorePlayerComputeInputInputData extends BasePlayerComputeInput {
capsuleInput: CorePlayerCapsuleInput;
}
export interface PlayerComputeInputData extends BasePlayerComputeInput {
capsuleData: CorePlayerCapsuleData;
}
export interface PlayerComputedData {
velocityFromForces: Vector3;
onGround: boolean;
velocityFromPositionDelta: Vector3;
}
export declare class CorePlayer {
private _object;
private _inputData;
private _computeInputData;
private _computedData;
constructor(_object: Object3D);
setComputeInputData(data: CorePlayerComputeInputInputData): void;
update(delta: number): void;
private _updateStep;
setInputData(inputData: CorePlayerInputData): void;
velocityFromPositionDelta(target: Vector3): Vector3;
onGround(): boolean;
}
export {};