@react-three/p2
Version:
2D physics based hooks for react-three-fiber
58 lines (57 loc) • 1.83 kB
TypeScript
import { Ray, RaycastResult } from 'p2-es';
import type { Duplet } from './';
import type KinematicCharacterController from './KinematicCharacterController';
import type { RaycastControllerOptns } from './RaycastController';
import RaycastController from './RaycastController';
interface PlatformControllerOptns extends RaycastControllerOptns {
controllers: {
[uuid: string]: {
controller: KinematicCharacterController;
};
};
dstBetweenRays?: number;
localWaypoints: Duplet[];
passengerMask: number;
skinWidth?: number;
speed?: number;
}
export default class PlatformController extends RaycastController {
cyclic: boolean;
easeAmount: number;
fromWaypointIndex: number;
globalWaypoints: Duplet[];
localWaypoints: Duplet[];
nextMoveTime: number;
passengerDictionary: {
[key: string]: KinematicCharacterController;
};
passengerMask: number;
passengerMovement: PassengerMovement[];
percentBetweenWaypoints: number;
ray: Ray;
raycastResult: RaycastResult;
raysData: [from: Duplet, to: Duplet, hitDistance?: number][];
speed: number;
time: number;
waitTime: number;
constructor(options: PlatformControllerOptns);
calculatePassengerMovement(velocity: Duplet): void;
calculatePlatformMovement(deltaTime: number): Duplet;
ease(x: number): number;
movePassengers(beforeMovePlatform: boolean): void;
update(deltaTime: number): void;
}
declare type PassengerMovementOptns = {
moveBeforePlatform: boolean;
standingOnPlatform: boolean;
uuid: string;
velocity: Duplet;
};
declare class PassengerMovement {
moveBeforePlatform: boolean;
standingOnPlatform: boolean;
uuid: string;
velocity: Duplet;
constructor(options: PassengerMovementOptns);
}
export {};