phaser3-rex-plugins
Version:
98 lines (86 loc) • 2.2 kB
TypeScript
import BaseNode from './BaseNode';
import Tick from '../tick/Tick';
export default Composite;
declare namespace Composite {
/**
* Configuration options for creating a Composite node.
*/
interface IConfig extends BaseNode.IConfig {
/**
* Child node ids or instances.
*/
children?: Array<string | BaseNode>;
/**
* Service node ids or instances.
*/
services?: Array<string | BaseNode>;
}
}
/**
* Base class for composite nodes.
*/
declare class Composite extends BaseNode {
/**
* Create a Composite node.
*
* @param config - Configuration options.
* @param nodePool - Node pool for resolving ids.
*/
constructor(
config?: Composite.IConfig,
nodePool?: BaseNode.NodePoolType
);
/**
* Child node instances.
*/
children: BaseNode[];
/**
* Service node instances.
*/
services?: BaseNode[];
/**
* Destroy the node.
*/
destroy(): void;
/**
* Insert a child node at an index.
*
* @param node - Node id or instance.
* @param nodePool - Node pool for resolving ids.
* @param index - Insert index.
* @returns This Composite instance.
*/
insertChild(
node: string | BaseNode,
nodePool?: BaseNode.NodePoolType,
index?: number
): this;
/**
* Add a child node.
*
* @param node - Node id or instance.
* @param nodePool - Node pool for resolving ids.
* @returns This Composite instance.
*/
addChild(
node: string | BaseNode,
nodePool?: BaseNode.NodePoolType
): this;
/**
* Add a service node.
*
* @param node - Node id or instance.
* @param nodePool - Node pool for resolving ids.
* @returns This Composite instance.
*/
addService(
node: string | BaseNode,
nodePool?: BaseNode.NodePoolType
): this;
/**
* Abort child nodes.
*
* @param tick - Tick instance.
*/
abortChildren(tick: Tick): void;
}