Skip to content

@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

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

TerrainType


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;
}