dungeoneer
Version:
A procedural dungeon generator
56 lines (49 loc) • 1.07 kB
TypeScript
declare module "dungeoneer" {
type PlainTile = {
// An object containing the tiles immediately surrounding this tile.
neighbours: {
n?: Tile;
ne?: Tile;
e?: Tile;
se?: Tile;
s?: Tile;
sw?: Tile;
w?: Tile;
nw?: Tile;
};
x: number;
y: number;
// 'floor' and 'door' are passable terrain and a wall is impassable terrain.
type: "wall" | "floor" | "door";
};
interface Tile extends PlainTile {
toJS(): PlainTile;
}
type PlainRoom = {
height: number;
width: number;
x: number;
y: number;
};
interface Room extends PlainRoom {
getBoundingBox(): {
top: number;
right: number;
bottom: number;
left: number;
};
containsTile(x: number, y: number): boolean;
toJS(): PlainRoom;
intersects(other: Room): boolean;
}
type Dungeon = {
rooms: Room[];
tiles: Array<Tile[]>;
seed: string | number;
};
function build(options: {
width: number;
height: number;
seed?: string | number;
}): Dungeon;
}