phaser4-rex-plugins
Version:
240 lines (176 loc) • 6.64 kB
TypeScript
import ComponentBase from '../../plugins/utils/componentbase/ComponentBase';
import Board from '../../plugins/board/board/Board';
import Match from '../../plugins/board/match/Match';
import MoveTo from '../../plugins/board/moveto/MoveTo';
import { TileXYType, TileXYZType } from '../../plugins/board/types/Position';
export default Bejeweled;
declare namespace Bejeweled {
interface IBoardConfig {
x?: number, y?: number,
cellSize?: number, cellWidth?: number, cellHeight?: number,
width?: number, height?: number,
}
type ChessSymbol = number | string;
type GenerateSymbolCallbackType = (
board: Board,
tileX: number, tileY: number,
excluded: undefined | ChessSymbol[]
) => ChessSymbol;
type CreateChessCallbackType = (
board: Board
) => Phaser.GameObjects.GameObject;
type SwapActionType = (
chess1: Phaser.GameObjects.GameObject,
chess2: Phaser.GameObjects.GameObject,
board: Board,
bejeweled: Bejeweled,
) => void;
type EliminatingActionType = (
chessArray: Phaser.GameObjects.GameObject[],
board: Board,
bejeweled: Bejeweled,
) => void;
type MovingActionType = (
movingDirection: any,
board: Board,
bejeweled: Bejeweled,
) => void;
interface IConfig {
rexBoard?: string,
board: IBoardConfig,
match?: Match.IConfig,
chess: {
symbols: ChessSymbol[] | GenerateSymbolCallbackType,
create: CreateChessCallbackType,
scope?: object,
moveTo?: MoveTo.IConfig,
tileZ?: number | string,
},
swapAction?: SwapActionType,
undoSwapAction?: SwapActionType,
eliminatingAction?: EliminatingActionType,
fallingAction?: MovingActionType,
input?: boolean,
mask?: boolean,
movingDirection?: number | string,
debug?: boolean,
}
namespace Events {
type Select1CallbackType = (board: Board, bejeweled: Bejeweled) => void;
type Select2CallbackType = (board: Board, bejeweled: Bejeweled) => void;
type SwapCallbackType = (
selectedChess1: Phaser.GameObjects.GameObject,
selectedChess2: Phaser.GameObjects.GameObject,
board: Board, bejeweled: Bejeweled
) => void;
type MatchStartCallbackType = (board: Board, bejeweled: Bejeweled) => void;
type MatchCallbackType = (
lines: Phaser.Structs.Set<Phaser.GameObjects.GameObject>[],
board: Board, bejeweled: Bejeweled
) => void;
type EliminateCallbackType = (
chessArray: Phaser.GameObjects.GameObject[],
board: Board, bejeweled: Bejeweled
) => void;
type FallCallbackType = (board: Board, bejeweled: Bejeweled) => void;
type FillCallbackType = (board: Board, bejeweled: Bejeweled) => void;
type MatchEndCallbackType = (board: Board, bejeweled: Bejeweled) => void;
type UndoSwapCallbackType = (
selectedChess1: Phaser.GameObjects.GameObject,
selectedChess2: Phaser.GameObjects.GameObject,
board: Board, bejeweled: Bejeweled
) => void;
type SetDataCallback = (
bejeweled: Bejeweled,
key: string, value: any
) => void;
type ChangeetAnyDataCallback = (
bejeweled: Bejeweled,
key: string, value: any, previousValue: any
) => void;
type ChangeetDataCallback = (
bejeweled: Bejeweled,
value: any, previousValue: any
) => void;
}
}
declare class Bejeweled extends ComponentBase {
constructor(
scene: Phaser.Scene,
config?: Bejeweled.IConfig
);
start(): this;
setInputEnable(enable?: boolean): this;
setMovingDirection(direction: any): this;
getMovingDirection(): any;
movingDirection: any;
worldXYToChess(
worldX: number,
worldY: number
): Phaser.GameObjects.GameObject;
chessToTileXY(chess: Phaser.GameObjects.GameObject): TileXYZType;
tileXYToChess(
tileX: number,
tileY: number
): Phaser.GameObjects.GameObject;
getNeighborChessAtAngle(
chess: Phaser.GameObjects.GameObject | TileXYType,
angle: number
): Phaser.GameObjects.GameObject;
getNeighborChessAtDirection(
chess: Phaser.GameObjects.GameObject | TileXYType,
direction: number
): Phaser.GameObjects.GameObject;
getChessArray(
out?: Phaser.GameObjects.GameObject[]
): Phaser.GameObjects.GameObject[];
getChessArrayAtTileX(
tileX: number,
out?: Phaser.GameObjects.GameObject[]
): Phaser.GameObjects.GameObject[];
getChessArrayAtTileY(
tileY: number,
out?: Phaser.GameObjects.GameObject[]
): Phaser.GameObjects.GameObject[];
getChessArrayAtTileXYInRange(
tileX: number, tileY: number, rangeX: number, rangeY: number,
out?: Phaser.GameObjects.GameObject[]
): Phaser.GameObjects.GameObject[];
getChessArrayWithSymbol(
symbol: any,
out?: Phaser.GameObjects.GameObject[]
): Phaser.GameObjects.GameObject[];
isAwaitingInput(): boolean;
dumpSymbols(): any[][];
loadSymbols(symbols?: any[][]): this;
selectChess1(
chess: Phaser.GameObjects.GameObject
): this;
getSelectedChess1(): Phaser.GameObjects.GameObject;
selectChess2(
chess: Phaser.GameObjects.GameObject
): this;
getSelectedChess2(): Phaser.GameObjects.GameObject;
setEliminatingChess(
chessArray: Phaser.GameObjects.GameObject | Phaser.GameObjects.GameObject[]
): this;
getChessMoveTo(
chess: Phaser.GameObjects.GameObject
): MoveTo | undefined;
getChessTileZ(): number | string;
getBoard(): Board;
getMatch(): Match;
// Custom eliminateChess, falling action
waitEvent(
eventEmitter: Phaser.Events.EventEmitter,
eventName?: string
): this;
isWaitingEvent(): boolean;
// Data manager
setDataEnabled(): this;
setData(key: string, value: any): this;
incData(key: string, value: number): this;
toggleData(key: string): this;
getData(key: string): any;
data: Phaser.Data.DataManager;
}