duckengine
Version:
A 2D Game Engine for the web.
75 lines (74 loc) • 2.58 kB
TypeScript
import { Duck } from '../..';
import Game from '../game';
/**
* @class DisplayList
* @classdesc Creates a DisplayList that manages Renderable objects
* @description The DisplayList Class. Keeps track of all Renderable objects
* @since 2.0.0
*/
export default class DisplayList {
game: Game;
list: Duck.Types.Renderable[];
constructor(game: Game);
/**
* @memberof DisplayList
* @description Adds a renderableObject to the list
* @param {Duck.Types.Renderable} renderableObject A renderableObject
*
* Note: this pools the game's renderer pipeline for instant updates
*
* @since 2.0.0
*/
add(renderableObject: Duck.Types.Renderable): void;
/**
* @memberof DisplayList
* @description Removes a renderableObject from the list
* @param {Duck.Types.Renderable} renderableObject A renderableObject
* @since 2.0.0
*/
remove(renderableObject: Duck.Types.Renderable): void;
/**
* @memberof DisplayList
* @description Sorts all renderableObject by zIndex
* @returns {Duck.Types.Renderable[]}
* @since 2.0.0
*/
depthSort(): Duck.Types.Renderable[];
/**
* @memberof DisplayList
* @description Filters all renderableObjects by its visible boolean property
* @param {boolean} [filter=true] By what to filter. EX: true, filters all visible objects, optional -> default: true
* @returns {Duck.Types.Renderable[]}
* @since 2.0.0
*/
visibilityFilter(filter?: boolean): Duck.Types.Renderable[];
/**
* @memberof DisplayList
* @template t
* @description Loops through each renderableObject and runs a callback with it passed
* @param {(renderableObject: Duck.Types.Renderable, index: number) => t} cb Callback
* @since 2.0.0
*/
each<t = void>(cb: (renderableObject: Duck.Types.Renderable, index: number) => t): void;
/**
* @memberof DisplayList
* @description Removes an item from the list based on passed index
* @param {number} index
* @param {number} [amount]
* @since 2.0.0
*/
splice(index: number, amount?: number): Duck.Types.Renderable[];
/**
* @memberof DisplayList
* @description Gets the length of the list
* @since 2.0.0
*/
get length(): number;
/**
* @memberof DisplayList
* @description Overwrites the list items with passed parameter
* @param {Duck.Types.Renderable[]} listItems Renderable objects to overwrite with
* @since 2.0.0
*/
set listItems(listItems: Duck.Types.Renderable[]);
}