UNPKG

three-game-engine

Version:

Simple light-weight game engine using three.js, three-mesh-ui and rapier

80 lines (79 loc) 3.54 kB
import * as THREE from 'three'; import RAPIER from '@dimforge/rapier3d-compat'; import Scene from './Scene'; import { GameObjectOptions } from './types'; import Component from './Component'; declare class GameObject { id: string; type: string | null; name: string; tags: string[]; threeJSGroup: THREE.Group; parent: Scene | GameObject; loaded: boolean; loadPromise: Promise<void>; options: GameObjectOptions; components: Component[]; gameObjects: GameObject[]; constructor(parent: Scene | GameObject, options?: GameObjectOptions); getScene(): Scene; onGameObjectTypeChange: () => void; reset(json?: any): void; setName(name: string): void; load(): Promise<void>; _load(): Promise<void>; isLoaded(): boolean; hasTag(tag: string): boolean; getComponent(componentClass: any): Component; addGameObject(gameObject: GameObject): void; removeGameObject(gameObject: GameObject): void; getRootGameObjects(): GameObject[]; forEachGameObject(fn: (gameObject: GameObject) => {}): void; getGameObject(fn: (gameObject: GameObject) => {}): GameObject | null; getGameObjects(fn: (gameObject: GameObject) => {}): GameObject[]; getGameObjectWithName(name: string): GameObject | null; getGameObjectsWithTag(tag: string): GameObject[]; destroy(): void; afterLoaded(): void; beforeRender({ deltaTimeInSec }: { deltaTimeInSec: any; }): void; beforeUnloaded(): void; setPosition(x: number, y: number, z: number): void; rotateOnAxis(axis: THREE.Vector3, angle: number): void; rotateOnWorldAxis(axis: THREE.Vector3, angle: number): void; rotateX(degrees: number): void; rotateY(degrees: number): void; rotateZ(degrees: number): void; setRotationFromAxisAngle(axis: THREE.Vector3, angle: number): void; setRotationFromEuler(euler: THREE.Euler): void; setRotationFromMatrix(m: THREE.Matrix4): void; setRotationFromQuaternion(q: THREE.Quaternion): void; setRotation(x: number, y: number, z: number, order?: string): void; setScale(x: number, y: number, z: number): void; translateOnAxis(axis: THREE.Vector3, distance: number): void; translateX(distance: number): void; translateY(distance: number): void; translateZ(distance: number): void; traverse(callback: (obj: THREE.Object3D) => {}): void; traverseVisible(callback: (obj: THREE.Object3D) => {}): void; traverseAncestors(callback: (obj: THREE.Object3D) => {}): void; getRapierRigidBody(): RAPIER.RigidBody; syncWithRigidBody(): void; resetForces(wakeUp: boolean): void; resetTorques(wakeUp: boolean): void; addForce(vector: RAPIER.Vector, wakeUp: boolean): void; addForceAtPoint(force: RAPIER.Vector, point: RAPIER.Vector, wakeUp: boolean): void; addTorque(vector: RAPIER.Vector, wakeUp: boolean): void; applyImpulse(impulse: RAPIER.Vector, wakeUp: boolean): void; applyImpulseAtPoint(impulse: RAPIER.Vector, point: RAPIER.Vector, wakeUp: boolean): void; lockTranslations(locked: boolean, wakeUp: boolean): void; lockRotations(locked: boolean, wakeUp: boolean): void; setEnabledRotations(enableX: boolean, enableY: boolean, enableZ: boolean, wakeUp: boolean): void; setLinearDamping(factor: number): void; setAngularDamping(factor: number): void; setDominanceGroup(group: number): void; enableCcd(enabled: boolean): void; playSound(name: string, delayInSec?: number, detune?: number | null): void; } export default GameObject;