UNPKG

@matematrolii/sketchbook

Version:

3D matematrolii playground built on three.js and cannon.js

105 lines (104 loc) 4.31 kB
import * as THREE from "three"; import * as CANNON from "cannon"; import { KeyBinding } from "../core/KeyBinding"; import { VectorSpringSimulator } from "../physics/spring_simulation/VectorSpringSimulator"; import { RelativeSpringSimulator } from "../physics/spring_simulation/RelativeSpringSimulator"; import { ICharacterAI } from "../interfaces/ICharacterAI"; import { World } from "../world/World"; import { ICharacterState } from "../interfaces/ICharacterState"; import { IWorldEntity } from "../interfaces/IWorldEntity"; import { CapsuleCollider } from "../physics/colliders/CapsuleCollider"; import { GroundImpactData } from "./GroundImpactData"; import { EntityType } from "../enums/EntityType"; import { ModelType } from "../enums/WorldType"; export declare class Character extends THREE.Object3D implements IWorldEntity { isHit: boolean; updateOrder: number; entityType: EntityType; height: number; tiltContainer: THREE.Group; modelContainer: THREE.Group; materials: THREE.Material[]; mixer: THREE.AnimationMixer; animations: any[]; acceleration: THREE.Vector3; velocity: THREE.Vector3; arcadeVelocityInfluence: THREE.Vector3; velocityTarget: THREE.Vector3; arcadeVelocityIsAdditive: boolean; defaultVelocitySimulatorDamping: number; defaultVelocitySimulatorMass: number; velocitySimulator: VectorSpringSimulator; moveSpeed: number; angularVelocity: number; orientation: THREE.Vector3; orientationTarget: THREE.Vector3; defaultRotationSimulatorDamping: number; defaultRotationSimulatorMass: number; rotationSimulator: RelativeSpringSimulator; viewVector: THREE.Vector3; actions: { [action: string]: KeyBinding; }; characterCapsule: CapsuleCollider; rayResult: CANNON.RaycastResult; rayHasHit: boolean; rayCastLength: number; raySafeOffset: number; wantsToJump: boolean; initJumpSpeed: number; groundImpactData: GroundImpactData; world: World; charState: ICharacterState; behaviour: ICharacterAI; private physicsEnabled; shootDirection: THREE.Vector3; shootVelo: number; raycaster: THREE.Raycaster; type: ModelType; private gltf; private bulletTimePassed; constructor(gltf: any, texture: string, type: ModelType, name: string); setAnimations(animations: []): void; setArcadeVelocityInfluence(x: number, y?: number, z?: number): void; setViewVector(vector: THREE.Vector3): void; /** * Set state to the player. Pass state class (function) name. * @param {function} State */ setState(state: ICharacterState): void; setPosition(x: number, y: number, z: number): void; resetVelocity(): void; setArcadeVelocityTarget(velZ: number, velX?: number, velY?: number): void; setOrientation(vector: THREE.Vector3, instantly?: boolean): void; resetOrientation(): void; setBehaviour(behaviour: ICharacterAI): void; setPhysicsEnabled(value: boolean): void; readCharacterData(gltf: any, textureUrl: string): void; handleKeyboardEvent(event: KeyboardEvent, code: string, pressed: boolean): void; handleMouseButton(event: MouseEvent, code: string, pressed: boolean): void; handleMouseMove(event: MouseEvent, deltaX: number, deltaY: number): void; handleMouseWheel(event: WheelEvent, value: number): void; triggerAction(actionName: string, value: boolean): void; takeControl(): void; resetControls(): void; update(timeStep: number): void; inputReceiverInit(): void; inputReceiverUpdate(timeStep: number): void; setAnimation(clipName: string, fadeIn: number): number; springMovement(timeStep: number): void; springRotation(timeStep: number): void; getLocalMovementDirection(): THREE.Vector3; getCameraRelativeMovementVector(): THREE.Vector3; getCameraRelativeVector(): THREE.Vector3; setCameraRelativeOrientationTarget(): void; rotateModel(): void; jump(initJumpSpeed?: number): void; findItemToPick(): void; physicsPreStep(body: CANNON.Body, character: Character): void; feetRaycast(): void; physicsPostStep(body: CANNON.Body, character: Character): void; collideListener(colider: any): void; addToWorld(world: World): void; removeFromWorld(world: World): void; }