UNPKG

@react-three/p2

Version:

2D physics based hooks for react-three-fiber

56 lines (55 loc) 1.79 kB
import RaycastController from './RaycastController'; import type { RaycastControllerOptns } from './RaycastController'; import { Ray, RaycastResult } from 'p2-es'; import type { Duplet } from './'; import type KinematicCharacterController from './KinematicCharacterController'; interface PlatformControllerOptns extends RaycastControllerOptns { localWaypoints: Duplet[]; controllers: { [key: string]: KinematicCharacterController; }; passengerMask: number; speed?: number; skinWidth?: number; dstBetweenRays?: number; } export default class PlatformController extends RaycastController { passengerMask: number; localWaypoints: Duplet[]; globalWaypoints: Duplet[]; speed: number; cyclic: boolean; waitTime: number; easeAmount: number; fromWaypointIndex: number; percentBetweenWaypoints: number; nextMoveTime: number; passengerMovement: PassengerMovement[]; passengerDictionary: { [key: string]: KinematicCharacterController; }; time: number; ray: Ray; raycastResult: RaycastResult; raysData: [from: Duplet, to: Duplet, hitDistance?: number][]; constructor(options: PlatformControllerOptns); update(deltaTime: number): void; ease(x: number): number; calculatePlatformMovement(deltaTime: number): Duplet; movePassengers(beforeMovePlatform: boolean): void; calculatePassengerMovement(velocity: Duplet): void; } declare type PassengerMovementOptns = { velocity: Duplet; standingOnPlatform: boolean; moveBeforePlatform: boolean; uuid: string; }; declare class PassengerMovement { velocity: Duplet; standingOnPlatform: boolean; moveBeforePlatform: boolean; uuid: string; constructor(options: PassengerMovementOptns); } export {};