UNPKG

@react-three/p2

Version:

2D physics based hooks for react-three-fiber

58 lines (57 loc) 1.83 kB
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 {};