@lands.io/mod-sdk / GameMap
Interface: GameMap¶
Game map interface - provides tile queries and spatial operations. Mods use this to query terrain, ownership, and distances.
Hierarchy¶
GameMap
↳ Game
Table of contents¶
Methods¶
- bfs
- euclideanDist
- forEachTile
- hasOwner
- height
- isLand
- isOcean
- isShore
- isWater
- manhattanDist
- neighbors
- numLandTiles
- ownerID
- ref
- terrainType
- width
- x
- y
Methods¶
bfs¶
▸ bfs(tile, filter): Set\<number>
Breadth-first search from a tile
Parameters¶
| Name | Type |
|---|---|
tile |
number |
filter |
(gm: GameMap, tile: number) => boolean |
Returns¶
Set\<number>
euclideanDist¶
▸ euclideanDist(c1, c2): number
Parameters¶
| Name | Type |
|---|---|
c1 |
number |
c2 |
number |
Returns¶
number
forEachTile¶
▸ forEachTile(fn): void
Iterate over all tiles
Parameters¶
| Name | Type |
|---|---|
fn |
(tile: number) => void |
Returns¶
void
hasOwner¶
▸ hasOwner(ref): boolean
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
boolean
height¶
▸ height(): number
Returns¶
number
isLand¶
▸ isLand(ref): boolean
Terrain queries
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
boolean
isOcean¶
▸ isOcean(ref): boolean
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
boolean
isShore¶
▸ isShore(ref): boolean
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
boolean
isWater¶
▸ isWater(ref): boolean
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
boolean
manhattanDist¶
▸ manhattanDist(c1, c2): number
Parameters¶
| Name | Type |
|---|---|
c1 |
number |
c2 |
number |
Returns¶
number
neighbors¶
▸ neighbors(ref): number[]
Spatial queries
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
number[]
numLandTiles¶
▸ numLandTiles(): number
Returns¶
number
ownerID¶
▸ ownerID(ref): number
Ownership queries
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
number
ref¶
▸ ref(x, y): number
Convert x,y coordinates to a tile reference
Parameters¶
| Name | Type |
|---|---|
x |
number |
y |
number |
Returns¶
number
terrainType¶
▸ terrainType(ref): TerrainType
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
width¶
▸ width(): number
Map dimensions
Returns¶
number
x¶
▸ x(ref): number
Get x coordinate from tile reference
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
number
y¶
▸ y(ref): number
Get y coordinate from tile reference
Parameters¶
| Name | Type |
|---|---|
ref |
number |
Returns¶
number
Source Code¶
View full implementation
/**
* Game map interface - provides tile queries and spatial operations.
* Mods use this to query terrain, ownership, and distances.
*/
export interface GameMap {
/** Convert x,y coordinates to a tile reference */
ref(x: number, y: number): TileRef;
/** Get x coordinate from tile reference */
x(ref: TileRef): number;
/** Get y coordinate from tile reference */
y(ref: TileRef): number;
/** Map dimensions */
width(): number;
height(): number;
numLandTiles(): number;
/** Terrain queries */
isLand(ref: TileRef): boolean;
isWater(ref: TileRef): boolean;
isOcean(ref: TileRef): boolean;
isShore(ref: TileRef): boolean;
terrainType(ref: TileRef): TerrainType;
/** Ownership queries */
ownerID(ref: TileRef): number;
hasOwner(ref: TileRef): boolean;
/** Spatial queries */
neighbors(ref: TileRef): TileRef[];
manhattanDist(c1: TileRef, c2: TileRef): number;
euclideanDist(c1: TileRef, c2: TileRef): number;
/** Breadth-first search from a tile */
bfs(
tile: TileRef,
filter: (gm: GameMap, tile: TileRef) => boolean
): Set<TileRef>;
/** Iterate over all tiles */
forEachTile(fn: (tile: TileRef) => void): void;
}