25 lines
856 B
TypeScript
25 lines
856 B
TypeScript
import type { ModData, ModListing } from "$/common/mod_loader.ts";
|
|
|
|
// messages between server/main.ts (the host) and the game server worker
|
|
|
|
export type HostToGame =
|
|
| {
|
|
type: "init";
|
|
save: string | undefined;
|
|
default_seed: string;
|
|
// in load order, with the scripts' code since the worker can't read files
|
|
mods: { listing: ModListing; data: ModData; server_code?: string; worldgen_code?: string }[];
|
|
}
|
|
| { type: "connect"; conn: number }
|
|
| { type: "message"; conn: number; data: string }
|
|
| { type: "disconnect"; conn: number }
|
|
// save now and say when it's done, for shutting down
|
|
| { type: "shutdown" };
|
|
|
|
export type GameToHost =
|
|
| { type: "ready"; seed: string }
|
|
| { type: "failed"; error: string }
|
|
| { type: "send"; conn: number; data: string }
|
|
| { type: "close"; conn: number }
|
|
| { type: "save"; data: string; final: boolean };
|