UNPKG

the-world-engine

Version:

three.js based, unity like game engine for browser

90 lines (89 loc) 3.41 kB
import type { Component } from "./Component"; import type { ComponentConstructor } from "./ComponentConstructor"; import { GameObject } from "./GameObject"; import type { InitializeComponent } from "./InitializeComponent"; import type { PrefabRef } from "./PrefabRef"; /** * builder for GameObject */ export declare class GameObjectBuilder { private readonly _gameObject; private readonly _children; private readonly _componentInitializeFuncList; private _isBuilt; /** * set active in hierarchy * @param active * @returns */ active(active: boolean): GameObjectBuilder; /** * get gameObject as call by reference * @param gameObjectRef * @returns */ getGameObject(gameObjectRef: PrefabRef<GameObject>): GameObjectBuilder; /** * get component of componentCtor: ComponentConstructor<T> as call by reference * @param componentCtor * @param componentRef * @returns */ getComponent<T extends Component>(componentCtor: ComponentConstructor<T>, componentRef: PrefabRef<T>): GameObjectBuilder; /** * get all components as call by reference * @param componentsRef * @returns */ getComponents(componentsRef: PrefabRef<Component[]>): GameObjectBuilder; /** * get all components of componentCtor: ComponentConstructor<T> as call by reference * @param componentsRef * @param componentCtor * @returns */ getComponents<T extends Component>(componentsRef: PrefabRef<T[]>, componentCtor: ComponentConstructor<T>): GameObjectBuilder; /** * get component of componentCtor: ComponentConstructor<T> in GameObject or any of its children as call by reference * @param componentCtor * @param componentRef * @returns */ getComponentInChildren<T extends Component>(componentCtor: ComponentConstructor<T>, componentRef: PrefabRef<T>): GameObjectBuilder; /** * get all components in GameObject or any of its children as call by reference * @param componentsRef * @returns */ getComponentsInChildren(componentsRef: PrefabRef<Component[]>): GameObjectBuilder; /** * get all components of componentCtor: ComponentConstructor<T> in GameObject or any of its children as call by reference * @param componentsRef * @param componentCtor * @returns */ getComponentsInChildren<T extends Component>(componentsRef: PrefabRef<T[]>, componentCtor: ComponentConstructor<T>): GameObjectBuilder; /** * add component of componentCtor: ComponentConstructor<T> to GameObject * @param componentCtor * @returns */ withComponent<T extends Component>(componentCtor: ComponentConstructor<T>): GameObjectBuilder; /** * add component of componentCtor: ComponentConstructor<T> to GameObject with initialize function * @param componentCtor * @param componentInitializeFunc * @returns */ withComponent<T extends Component>(componentCtor: ComponentConstructor<T>, componentInitializeFunc?: (component: InitializeComponent<T>) => void): GameObjectBuilder; /** * with child GameObject * @param child * @returns */ withChild(child: GameObjectBuilder): GameObjectBuilder; private checkComponentRequirements; private registerTransform; private chackComponentRequirementsRecursive; private componentInitialize; }