phaser4-rex-plugins
Version:
72 lines (53 loc) • 2.02 kB
TypeScript
// import * as Phaser from 'phaser';
import Scrollable from '../utils/scrollable/Scrollable';
import GridTableCore from '../../../plugins/gridtable'
export default GridTable;
declare namespace GridTable {
type CellType = GridTableCore.Cell;
type CreateCellContainerCallbackType = (
cell: CellType,
cellContainer: Phaser.GameObjects.GameObject | null
) => Phaser.GameObjects.GameObject | null;
interface IConfig extends Scrollable.IConfig {
space?: {
left?: number, right?: number, top?: number, bottom?: number,
table?: number | {
left?: number, right?: number, top?: number, bottom?: number,
},
sliderX?: number,
sliderY?: number,
header?: number,
footer?: number,
},
scrollMode?: GridTableCore.ScrollModeType,
table?: {
width?: number | undefined,
height?: number | undefined,
cellWidth?: number | undefined,
cellHeight?: number | undefined,
columns?: number,
mask?: GridTableCore.MaskConfig,
interactive?: boolean,
reuseCellContainer?: boolean,
enableLayer?: boolean,
},
createCellContainerCallback: CreateCellContainerCallbackType,
items?: unknown[]
}
}
declare class GridTable extends Scrollable {
constructor(
scene: Phaser.Scene,
config?: GridTable.IConfig
);
setItems(items?: unknown[]): this;
items: unknown[];
refresh(): this;
updateVisibleCell(cellIndex: number): this;
getCell(cellIndex: number): GridTableCore.Cell;
getCellContainer(cellIndex: number): Phaser.GameObjects.GameObject | null;
startRowIndex: number;
resetAllCellsSize(width: number, height: number): this;
scrollToRow(rowIndex: number): this;
scrollToNextRow(rowCount?: number): this;
}