@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
46 lines • 1.82 kB
TypeScript
import { TgdLogic } from "../context";
import type { TgdPainterFunction } from "../types/painter";
import { type TgdDebugPainterHierarchy, TgdPainter } from "./painter";
export type TgdPainterGroupOptions = {
onEnter?(time: number, delta: number): void;
onExit?(time: number, delta: number): void;
name?: string;
children?: (TgdPainter | TgdPainterFunction)[];
};
/**
* Group several painters together.
*/
export declare class TgdPainterGroup extends TgdPainter {
/**
* the logic will be executed at the beginning of `paint()`.
*/
readonly logic: TgdLogic;
active: boolean;
onEnter: TgdPainterFunction | undefined;
onExit: TgdPainterFunction | undefined;
protected readonly painters: TgdPainter[];
private readonly logics;
constructor();
constructor(painters?: (TgdPainter | TgdPainterFunction)[], options?: TgdPainterGroupOptions);
constructor(options?: TgdPainterGroupOptions);
forEachChild(callback: (child: TgdPainter, index: number) => void): void;
has(painter: TgdPainter): boolean;
add(...painters: (TgdPainter | TgdPainterFunction)[]): void;
addFirst(...painters: TgdPainter[]): void;
remove(...painters: TgdPainter[]): void;
removeWithoutDeleting(...painters: TgdPainter[]): void;
/**
* Remove all the painters from this group.
*
* @param deleteRemovedPainters By default, when a painter is removed,
* its `delete()` function is called. You can prevent this by setting
* `deleteRemovedPainters === false`.
*/
removeAll(deleteRemovedPainters?: boolean): void;
delete(): void;
paint(time: number, delta: number): void;
get hierarchy(): TgdDebugPainterHierarchy;
debugHierarchy(caption?: string): void;
private recursiveDebug;
}
//# sourceMappingURL=group.d.ts.map