From bc759791a194e2da459e5e9d5d6c6a2487c71697 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Wed, 21 Aug 2024 20:04:52 -0700 Subject: [PATCH] made terrain type and enum --- src/core/GameImpl.ts | 6 +++--- src/core/TerrainMapLoader.ts | 20 +++++--------------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/core/GameImpl.ts b/src/core/GameImpl.ts index 86706765a..a8f497fad 100644 --- a/src/core/GameImpl.ts +++ b/src/core/GameImpl.ts @@ -1,6 +1,6 @@ import {EventBus} from "./EventBus"; import {Cell, Execution, MutableGame, Game, MutablePlayer, PlayerEvent, PlayerID, PlayerInfo, Player, TerraNullius, Tile, TileEvent, Boat, MutableBoat, BoatEvent} from "./Game"; -import {TerrainMap, TerrainType, TerrainTypes} from "./TerrainMapLoader"; +import {TerrainMap, TerrainType} from "./TerrainMapLoader"; export function createGame(terrainMap: TerrainMap, eventBus: EventBus): Game { return new GameImpl(terrainMap, eventBus) @@ -20,10 +20,10 @@ class TileImpl implements Tile { private readonly _terrain: TerrainType ) { } isLand(): boolean { - return this._terrain == TerrainTypes.Land + return this._terrain == TerrainType.Land } isWater(): boolean { - return this._terrain == TerrainTypes.Water + return this._terrain == TerrainType.Water } borders(other: Player | TerraNullius): boolean { diff --git a/src/core/TerrainMapLoader.ts b/src/core/TerrainMapLoader.ts index 7ba7c1701..3543982be 100644 --- a/src/core/TerrainMapLoader.ts +++ b/src/core/TerrainMapLoader.ts @@ -23,19 +23,9 @@ export class TerrainMap { } } -// TODO: make terrain api better. -export class Terrain { - constructor( - public readonly expansionCost: number, - public readonly expansionTime: number, - ) { } -} - -export type TerrainType = typeof TerrainTypes[keyof typeof TerrainTypes]; - -export const TerrainTypes = { - Land: new Terrain(1, 1), - Water: new Terrain(0, 0) +export enum TerrainType { + Land, + Water } export async function loadTerrainMap(): Promise { @@ -44,14 +34,14 @@ export async function loadTerrainMap(): Promise { const image = await Jimp.read(imageUrl) const {width, height} = image.bitmap; - const terrain: TerrainType[][] = Array(width).fill(null).map(() => Array(height).fill(TerrainTypes.Water)); + const terrain: TerrainType[][] = Array(width).fill(null).map(() => Array(height).fill(TerrainType.Water)); image.scan(0, 0, width, height, function (x: number, y: number, idx: number) { const t: TerrainTile = new TerrainTile() const red = this.bitmap.data[idx + 0]; if (red > 100) { - terrain[x][y] = TerrainTypes.Land; + terrain[x][y] = TerrainType.Land; } })