import { type RigidBodyProps } from '@react-three/rapier'; import { type ReactNode } from 'react'; import * as THREE from 'three'; export { useFollowCam } from './hooks/useFollowCam'; export { useGame } from './stores/useGame'; export interface DesiredMovement { /** * The final desired movement direction (or velocity/rotation) * - Example: new THREE.Vector3(0, 0, 1) => move forward * - Can include y-value (ex. vertical movement, etc.) */ desiredMoveDir?: THREE.Vector3; /** * Whether to jump or not */ desiredJump?: boolean; /** * Whether to run (sprint) or not */ desiredRun?: boolean; } declare const Ecctrl: ({ children, floatHeight, characterInitDir, disableControl, disableFollowCam, disableFollowCamPos, disableFollowCamTarget, camInitDis, camMaxDis, camMinDis, camUpLimit, camLowLimit, camInitDir, camTargetPos, camMoveSpeed, camZoomSpeed, camCollision, camCollisionOffset, camCollisionSpeedMult, fixedCamRotMult, camListenerTarget, maxVelLimit, turnVelMultiplier, turnSpeed, sprintMult, jumpVel, jumpForceToGroundMult, slopJumpMult, sprintJumpMult, airDragMultiplier, dragDampingC, accDeltaTime, rejectVelMult, moveImpulsePointY, camFollowMult, camLerpMult, fallingGravityScale, fallingMaxVel, wakeUpDelay, rayOriginOffest, rayHitForgivenessRatio, rayLength, rayDir, floatingDis, springK, dampingC, slopeMaxAngle, slopeRayOriginOffest, slopeRayLength, slopeRayDir, slopeUpExtraForce, slopeDownExtraForce, autoBalance, autoBalanceSpringK, autoBalanceDampingC, autoBalanceSpringOnY, autoBalanceDampingOnY, mode, bodySensorSize, bodySensorPosition, movementOverride, }: EcctrlProps) => null; export default Ecctrl; export type camListenerTargetType = 'document' | 'domElement'; export interface EcctrlProps extends RigidBodyProps { children?: ReactNode; floatHeight?: number; characterInitDir?: number; disableControl?: boolean; disableFollowCam?: boolean; disableFollowCamPos?: { x: number; y: number; z: number; } | undefined; disableFollowCamTarget?: { x: number; y: number; z: number; } | undefined; camInitDis?: number; camMaxDis?: number; camMinDis?: number; camUpLimit?: number; camLowLimit?: number; camInitDir?: { x: number; y: number; }; camTargetPos?: { x: number; y: number; z: number; }; camMoveSpeed?: number; camZoomSpeed?: number; camCollision?: boolean; camCollisionOffset?: number; camCollisionSpeedMult?: number; fixedCamRotMult?: number; camListenerTarget?: camListenerTargetType; maxVelLimit?: number; turnVelMultiplier?: number; turnSpeed?: number; sprintMult?: number; jumpVel?: number; jumpForceToGroundMult?: number; slopJumpMult?: number; sprintJumpMult?: number; airDragMultiplier?: number; dragDampingC?: number; accDeltaTime?: number; rejectVelMult?: number; moveImpulsePointY?: number; camFollowMult?: number; camLerpMult?: number; fallingGravityScale?: number; fallingMaxVel?: number; wakeUpDelay?: number; rayOriginOffest?: { x: number; y: number; z: number; }; rayHitForgivenessRatio?: number; rayLength?: number; rayDir?: { x: number; y: number; z: number; }; floatingDis?: number; springK?: number; dampingC?: number; slopeMaxAngle?: number; slopeRayOriginOffest?: number; slopeRayLength?: number; slopeRayDir?: { x: number; y: number; z: number; }; slopeUpExtraForce?: number; slopeDownExtraForce?: number; autoBalance?: boolean; autoBalanceSpringK?: number; autoBalanceDampingC?: number; autoBalanceSpringOnY?: number; autoBalanceDampingOnY?: number; mode?: string | undefined; bodySensorSize?: Array; bodySensorPosition?: { x: number; y: number; z: number; }; /** * Callback that provides the final movement result (direction, jump, etc.) from external source */ movementOverride?: () => DesiredMovement; } export interface userDataType { canJump?: boolean; slopeAngle?: number | undefined; characterRotated?: boolean; isOnMovingObject?: boolean; excludeEcctrlRay?: boolean; }