create game runner

This commit is contained in:
Evan
2025-01-02 13:25:36 -08:00
parent 8a4644637a
commit 8443095d89
10 changed files with 100 additions and 32 deletions
@@ -69,16 +69,14 @@ export function joinLobby(lobbyConfig: LobbyConfig, onjoin: () => void): () => v
}
export async function createClientGame(lobbyConfig: LobbyConfig, gameConfig: GameConfig, eventBus: EventBus, transport: Transport): Promise<GameRunner> {
export async function createClientGame(lobbyConfig: LobbyConfig, gameConfig: GameConfig, eventBus: EventBus, transport: Transport): Promise<ClientGameRunner> {
const config = getConfig(gameConfig)
const terrainMap = await loadTerrainMap(gameConfig.gameMap);
let game = createGame(terrainMap.map, terrainMap.miniMap, eventBus, config)
const worker = new WorkerClient(game, gameConfig.gameMap)
consolex.log('going to init path finder')
await worker.initialize()
consolex.log('inited path finder')
const canvas = createCanvas()
let gameRenderer = createRenderer(canvas, game, eventBus, lobbyConfig.clientID)
@@ -86,18 +84,18 @@ export async function createClientGame(lobbyConfig: LobbyConfig, gameConfig: Gam
consolex.log(`creating private game got difficulty: ${gameConfig.difficulty}`)
return new GameRunner(
return new ClientGameRunner(
lobbyConfig.clientID,
eventBus,
game,
gameRenderer,
new InputHandler(canvas, eventBus),
new Executor(game, lobbyConfig.gameID, worker),
new Executor(game, lobbyConfig.gameID),
transport,
)
}
export class GameRunner {
export class ClientGameRunner {
private myPlayer: Player
private turns: Turn[] = []
private isActive = false
+1 -1
View File
@@ -3,7 +3,7 @@ import { consolex } from "../core/Consolex";
import { GameEvent } from "../core/EventBus";
import { ClientID, ClientMessage, ClientMessageSchema, GameConfig, GameID, GameRecordSchema, Intent, PlayerRecord, ServerMessage, ServerStartGameMessageSchema, ServerTurnMessageSchema, Turn } from "../core/Schemas";
import { CreateGameRecord, generateID } from "../core/Util";
import { LobbyConfig } from "./GameRunner";
import { LobbyConfig } from "./ClientGameRunner";
import { getPersistentIDFromCookie } from "./Main";
+1 -1
View File
@@ -1,4 +1,4 @@
import { GameRunner, joinLobby } from "./GameRunner";
import { ClientGameRunner, joinLobby } from "./ClientGameRunner";
import backgroundImage from '../../resources/images/TerrainMapFrontPage.png';
import favicon from '../../resources/images/Favicon.svg';
+1 -1
View File
@@ -3,7 +3,7 @@ import { SendLogEvent } from "../core/Consolex"
import { EventBus, GameEvent } from "../core/EventBus"
import { AllianceRequest, AllPlayers, Cell, GameType, Player, PlayerID, PlayerType, Tile, UnitType } from "../core/game/Game"
import { ClientID, ClientIntentMessageSchema, ClientJoinMessageSchema, GameID, Intent, ServerMessage, ServerMessageSchema, ClientPingMessageSchema, GameConfig, ClientLogMessageSchema } from "../core/Schemas"
import { LobbyConfig } from "./GameRunner"
import { LobbyConfig } from "./ClientGameRunner"
import { LocalServer } from "./LocalServer"
import { UsernameInput } from "./UsernameInput";
import { HostLobbyModal as HostPrivateLobbyModal } from "./HostLobbyModal";