the-world-engine
Version:
three.js based, unity like game engine for browser
90 lines (89 loc) • 3.41 kB
TypeScript
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;
}