mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-10 07:14:36 +00:00
refactor: rename core-public -> engine-public; fold helpers in; drop shared
Tighten the package model around the determinism invariant: everything the
engine imports must itself be deterministic.
- Rename core-public -> engine-public (package, dir, `engine-public/*` alias,
all 118 import sites). It is the deterministic public surface the engine
depends on and that client/server also use.
- Move the pure formatting helpers (renderNumber/renderTroops) from shared
into engine-public/format — the engine uses them and they're deterministic.
- Drop the now-empty shared package (and its alias). `shared` was intended for
client/server-shared, engine-forbidden code; there is none yet, so it is
removed and can be re-added when such code appears.
Final graph: engine-public (leaf) <- engine <- {client, server};
client/server also -> engine-public.
Verified: tsc clean; 1364 + 65 tests pass; prod build succeeds; engine-public
is a leaf; engine has no client/server imports. Lockfile regenerated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Generated
+15
-10
@@ -1290,14 +1290,14 @@
|
||||
"resolved": "packages/client",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@openfront/core-public": {
|
||||
"resolved": "packages/core-public",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@openfront/engine": {
|
||||
"resolved": "packages/engine",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@openfront/engine-public": {
|
||||
"resolved": "packages/engine-public",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@openfront/server": {
|
||||
"resolved": "packages/server",
|
||||
"link": true
|
||||
@@ -10129,27 +10129,32 @@
|
||||
"name": "@openfront/client",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@openfront/core-public": "*",
|
||||
"@openfront/engine": "*"
|
||||
"@openfront/engine": "*",
|
||||
"@openfront/engine-public": "*"
|
||||
}
|
||||
},
|
||||
"packages/core-public": {
|
||||
"name": "@openfront/core-public",
|
||||
"version": "0.0.0"
|
||||
"version": "0.0.0",
|
||||
"extraneous": true
|
||||
},
|
||||
"packages/engine": {
|
||||
"name": "@openfront/engine",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@openfront/core-public": "*"
|
||||
"@openfront/engine-public": "*"
|
||||
}
|
||||
},
|
||||
"packages/engine-public": {
|
||||
"name": "@openfront/engine-public",
|
||||
"version": "0.0.0"
|
||||
},
|
||||
"packages/server": {
|
||||
"name": "@openfront/server",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@openfront/core-public": "*",
|
||||
"@openfront/engine": "*"
|
||||
"@openfront/engine": "*",
|
||||
"@openfront/engine-public": "*"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"type": "module",
|
||||
"main": "src/Main.ts",
|
||||
"dependencies": {
|
||||
"@openfront/core-public": "*",
|
||||
"@openfront/engine-public": "*",
|
||||
"@openfront/engine": "*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,9 @@ import {
|
||||
PlayerGame,
|
||||
PlayerStatsTree,
|
||||
UserMeResponse,
|
||||
} from "core-public/ApiSchemas";
|
||||
} from "engine-public/ApiSchemas";
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import { Cosmetics } from "core-public/CosmeticSchemas";
|
||||
import { Cosmetics } from "engine-public/CosmeticSchemas";
|
||||
import { fetchPlayerById, getUserMe } from "./Api";
|
||||
import { discordLogin, logOut, sendMagicLink } from "./Auth";
|
||||
import "./components/baseComponents/stats/DiscordUserHeader";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import newsItemsFallback from "resources/news.json";
|
||||
import { z } from "zod";
|
||||
import type { NewsItem } from "core-public/ApiSchemas";
|
||||
import type { NewsItem } from "engine-public/ApiSchemas";
|
||||
import {
|
||||
NewsItemSchema,
|
||||
PlayerProfile,
|
||||
@@ -9,8 +9,8 @@ import {
|
||||
RankedLeaderboardResponseSchema,
|
||||
UserMeResponse,
|
||||
UserMeResponseSchema,
|
||||
} from "core-public/ApiSchemas";
|
||||
import { AnalyticsRecord, AnalyticsRecordSchema } from "core-public/Schemas";
|
||||
} from "engine-public/ApiSchemas";
|
||||
import { AnalyticsRecord, AnalyticsRecordSchema } from "engine-public/Schemas";
|
||||
import { getAuthHeader, logOut, userAuth } from "./Auth";
|
||||
|
||||
export async function fetchPlayerById(
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { decodeJwt } from "jose";
|
||||
import { UserSettings } from "engine/game/UserSettings";
|
||||
import { z } from "zod";
|
||||
import { TokenPayload, TokenPayloadSchema } from "core-public/ApiSchemas";
|
||||
import { base64urlToUuid } from "core-public/Base64";
|
||||
import { TokenPayload, TokenPayloadSchema } from "engine-public/ApiSchemas";
|
||||
import { base64urlToUuid } from "engine-public/Base64";
|
||||
import { getApiBase, getAudience } from "./Api";
|
||||
import { generateCryptoRandomUUID } from "./Utils";
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
type ClanRequestsResponse,
|
||||
ClanRequestsResponseSchema,
|
||||
JoinClanResponseSchema,
|
||||
} from "core-public/ClanApiSchemas";
|
||||
} from "engine-public/ClanApiSchemas";
|
||||
import { getApiBase, getUserMe } from "./Api";
|
||||
import { getAuthHeader } from "./Auth";
|
||||
|
||||
@@ -36,7 +36,7 @@ export type {
|
||||
ClanMemberStats,
|
||||
ClanMemberWL,
|
||||
ClanRequestsResponse,
|
||||
} from "core-public/ClanApiSchemas";
|
||||
} from "engine-public/ClanApiSchemas";
|
||||
|
||||
async function clanFetch(
|
||||
path: string,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { JWK } from "jose";
|
||||
import { z } from "zod";
|
||||
import { GameID } from "core-public/Schemas";
|
||||
import { GameID } from "engine-public/Schemas";
|
||||
import { simpleHash } from "engine/Util";
|
||||
import {
|
||||
GameEnv,
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
PlayerCosmeticRefs,
|
||||
PlayerRecord,
|
||||
ServerMessage,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import { createPartialGameRecord, findClosestBy, replacer } from "engine/Util";
|
||||
import {
|
||||
BuildableUnit,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import {
|
||||
ColorPalette,
|
||||
Cosmetics,
|
||||
@@ -10,12 +10,12 @@ import {
|
||||
Product,
|
||||
Skin,
|
||||
Subscription,
|
||||
} from "core-public/CosmeticSchemas";
|
||||
} from "engine-public/CosmeticSchemas";
|
||||
import {
|
||||
PlayerCosmeticRefs,
|
||||
PlayerCosmetics,
|
||||
PlayerPattern,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import { UserSettings } from "engine/game/UserSettings";
|
||||
import {
|
||||
changeSubscriptionTier,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators.js";
|
||||
import { FlagName } from "core-public/Schemas";
|
||||
import { FlagName } from "engine-public/Schemas";
|
||||
import {
|
||||
FLAG_KEY,
|
||||
USER_SETTINGS_CHANGED_EVENT,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import Countries from "resources/countries.json" with { type: "json" };
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import { Cosmetics, Flag } from "core-public/CosmeticSchemas";
|
||||
import { Cosmetics, Flag } from "engine-public/CosmeticSchemas";
|
||||
import { UserSettings } from "engine/game/UserSettings";
|
||||
import { getUserMe } from "./Api";
|
||||
import {
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
FriendsListResponseSchema,
|
||||
type SendFriendRequestResponse,
|
||||
SendFriendRequestResponseSchema,
|
||||
} from "core-public/ApiSchemas";
|
||||
} from "engine-public/ApiSchemas";
|
||||
import { getApiBase } from "./Api";
|
||||
import { getAuthHeader } from "./Auth";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, LitElement } from "lit";
|
||||
import { customElement, property, query, state } from "lit/decorators.js";
|
||||
import { GameEndInfo } from "core-public/Schemas";
|
||||
import { GameEndInfo } from "engine-public/Schemas";
|
||||
import { GameMapType } from "engine/game/Game";
|
||||
import { fetchGameById } from "./Api";
|
||||
import { terrainMapFileLoader } from "./TerrainMapFileLoader";
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
Quads,
|
||||
Trios,
|
||||
} from "engine/game/Game";
|
||||
import { PublicGameInfo, PublicGames } from "core-public/Schemas";
|
||||
import { PublicGameInfo, PublicGames } from "engine-public/Schemas";
|
||||
import "./components/IOSAddToHomeScreenBanner";
|
||||
import { crazyGamesSDK } from "./CrazyGamesSDK";
|
||||
import { HostLobbyModal } from "./HostLobbyModal";
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
LobbyInfoEvent,
|
||||
TeamCountConfig,
|
||||
isValidGameID,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import { generateID } from "engine/Util";
|
||||
import { getPlayToken } from "./Auth";
|
||||
import "./components/baseComponents/Modal";
|
||||
|
||||
@@ -19,7 +19,7 @@ import {
|
||||
GameRecordSchema,
|
||||
LobbyInfoEvent,
|
||||
PublicGameInfo,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import {
|
||||
Difficulty,
|
||||
GameMapSize,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ClientEnv } from "client/ClientEnv";
|
||||
import { PublicGames, PublicLobbyMessageSchema } from "core-public/Schemas";
|
||||
import { PublicGames, PublicLobbyMessageSchema } from "engine-public/Schemas";
|
||||
|
||||
interface LobbySocketOptions {
|
||||
reconnectDelay?: number;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { GameConfig, GameID, PartialGameRecord } from "core-public/Schemas";
|
||||
import { GameConfig, GameID, PartialGameRecord } from "engine-public/Schemas";
|
||||
import { replacer } from "engine/Util";
|
||||
|
||||
export interface LocalStatsData {
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
ServerStartGameMessage,
|
||||
StampedIntent,
|
||||
Turn,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import {
|
||||
createPartialGameRecord,
|
||||
decompressGameRecord,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import version from "resources/version.txt?raw";
|
||||
import { ClientEnv } from "client/ClientEnv";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import { EventBus } from "engine/EventBus";
|
||||
import {
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
GameRecord,
|
||||
GameStartInfo,
|
||||
PublicGameInfo,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import { GameEnv } from "engine/configuration/Config";
|
||||
import { GameType } from "engine/game/Game";
|
||||
import {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { html, LitElement } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import { ClientEnv } from "client/ClientEnv";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { getUserMe, hasLinkedAccount } from "./Api";
|
||||
import { getPlayToken } from "./Auth";
|
||||
import { BaseModal } from "./components/BaseModal";
|
||||
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
PATTERN_KEY,
|
||||
USER_SETTINGS_CHANGED_EVENT,
|
||||
} from "engine/game/UserSettings";
|
||||
import { PlayerPattern, PlayerSkin } from "core-public/Schemas";
|
||||
import { PlayerPattern, PlayerSkin } from "engine-public/Schemas";
|
||||
import { renderPatternPreview } from "./components/PatternPreview";
|
||||
import { getPlayerCosmetics } from "./Cosmetics";
|
||||
import { crazyGamesSDK } from "./CrazyGamesSDK";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { TemplateResult, html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import { translateText } from "client/Utils";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import {
|
||||
Difficulty,
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
GameType,
|
||||
UnitType,
|
||||
} from "engine/game/Game";
|
||||
import { TeamCountConfig } from "core-public/Schemas";
|
||||
import { TeamCountConfig } from "engine-public/Schemas";
|
||||
import { generateID } from "engine/Util";
|
||||
import { hasLinkedAccount } from "./Api";
|
||||
import "./components/baseComponents/Button";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { TemplateResult } from "lit";
|
||||
import { html } from "lit";
|
||||
import { customElement } from "lit/decorators.js";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { Cosmetics } from "core-public/CosmeticSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { Cosmetics } from "engine-public/CosmeticSchemas";
|
||||
import { UserSettings } from "engine/game/UserSettings";
|
||||
import { BaseModal } from "./components/BaseModal";
|
||||
import "./components/CosmeticButton";
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { TemplateResult } from "lit";
|
||||
import { html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { Cosmetics, Skin } from "core-public/CosmeticSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { Cosmetics, Skin } from "engine-public/CosmeticSchemas";
|
||||
import {
|
||||
PATTERN_KEY,
|
||||
USER_SETTINGS_CHANGED_EVENT,
|
||||
UserSettings,
|
||||
} from "engine/game/UserSettings";
|
||||
import { PlayerPattern } from "core-public/Schemas";
|
||||
import { PlayerPattern } from "engine-public/Schemas";
|
||||
import { BaseModal } from "./components/BaseModal";
|
||||
import "./components/CosmeticButton";
|
||||
import "./components/NotLoggedInWarning";
|
||||
|
||||
@@ -25,7 +25,7 @@ import {
|
||||
ServerMessage,
|
||||
ServerMessageSchema,
|
||||
Winner,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import { replacer } from "engine/Util";
|
||||
import { getPlayToken } from "./Auth";
|
||||
import { LobbyConfig } from "./ClientGameRunner";
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
Team,
|
||||
Trios,
|
||||
} from "engine/game/Game";
|
||||
import { GameConfig } from "core-public/Schemas";
|
||||
import { GameConfig } from "engine-public/Schemas";
|
||||
import type { LangSelector } from "./LangSelector";
|
||||
import { Platform } from "./Platform";
|
||||
|
||||
@@ -272,7 +272,7 @@ export async function copyToClipboard(
|
||||
|
||||
// Moved to the shared package; re-exported so existing `client/Utils` importers
|
||||
// keep working.
|
||||
export { renderNumber, renderTroops } from "shared/format";
|
||||
export { renderNumber, renderTroops } from "engine-public/format";
|
||||
|
||||
export function formatPercentage(value: number): string {
|
||||
const perc = value * 100;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Colord } from "colord";
|
||||
import { base64url } from "jose";
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import { decodePatternData } from "core-public/PatternDecoder";
|
||||
import { decodePatternData } from "engine-public/PatternDecoder";
|
||||
import { PlayerType } from "engine/game/Game";
|
||||
import { GameView } from "client/view";
|
||||
import { uploadFrameData } from "./render/frame/Upload";
|
||||
|
||||
@@ -6,8 +6,8 @@ import {
|
||||
Pattern,
|
||||
Skin,
|
||||
Subscription,
|
||||
} from "core-public/CosmeticSchemas";
|
||||
import { PlayerPattern } from "core-public/Schemas";
|
||||
} from "engine-public/CosmeticSchemas";
|
||||
import { PlayerPattern } from "engine-public/Schemas";
|
||||
import {
|
||||
PaymentMethod,
|
||||
ResolvedCosmetic,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, LitElement } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { Product } from "core-public/CosmeticSchemas";
|
||||
import { Product } from "engine-public/CosmeticSchemas";
|
||||
import "./PurchaseButton";
|
||||
import { DEFAULT_DOLLAR_LABEL_KEY } from "./PurchaseButton";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, LitElement, TemplateResult } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators.js";
|
||||
import type { FriendEntry } from "core-public/ApiSchemas";
|
||||
import type { FriendEntry } from "engine-public/ApiSchemas";
|
||||
import {
|
||||
acceptFriendRequest,
|
||||
deleteFriendRequest,
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
Trios,
|
||||
UnitType,
|
||||
} from "engine/game/Game";
|
||||
import { TeamCountConfig } from "core-public/Schemas";
|
||||
import { TeamCountConfig } from "engine-public/Schemas";
|
||||
import { translateText } from "../Utils";
|
||||
import "./Difficulties";
|
||||
import "./FluentSlider";
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
} from "engine/game/Game";
|
||||
import { assignTeamsLobbyPreview } from "engine/game/TeamAssignment";
|
||||
import { UserSettings } from "engine/game/UserSettings";
|
||||
import { ClientInfo, TeamCountConfig } from "core-public/Schemas";
|
||||
import { ClientInfo, TeamCountConfig } from "engine-public/Schemas";
|
||||
import { createRandomName, formatPlayerDisplayName } from "engine/Util";
|
||||
import { Theme } from "../theme/Theme";
|
||||
import { themeProvider } from "../theme/ThemeProvider";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { LitElement, html, nothing } from "lit";
|
||||
import { resolveMarkdown } from "lit-markdown";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import type { NewsItem } from "core-public/ApiSchemas";
|
||||
import type { NewsItem } from "engine-public/ApiSchemas";
|
||||
import { getNews } from "../Api";
|
||||
import { translateText } from "../Utils";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { hasLinkedAccount } from "../Api";
|
||||
|
||||
@customElement("not-logged-in-warning")
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { Colord } from "colord";
|
||||
import { base64url } from "jose";
|
||||
import { html, TemplateResult } from "lit";
|
||||
import { DefaultPattern } from "core-public/CosmeticSchemas";
|
||||
import { PatternDecoder } from "core-public/PatternDecoder";
|
||||
import { PlayerPattern } from "core-public/Schemas";
|
||||
import { DefaultPattern } from "engine-public/CosmeticSchemas";
|
||||
import { PatternDecoder } from "engine-public/PatternDecoder";
|
||||
import { PlayerPattern } from "engine-public/Schemas";
|
||||
import { translateText } from "../Utils";
|
||||
|
||||
export function renderPatternPreview(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, LitElement, nothing } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { Product } from "core-public/CosmeticSchemas";
|
||||
import { Product } from "engine-public/CosmeticSchemas";
|
||||
import { translateText } from "../Utils";
|
||||
import "./CapIcon";
|
||||
import "./PlutoniumIcon";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html } from "lit";
|
||||
import { customElement, state } from "lit/decorators.js";
|
||||
import { UserMeResponse } from "core-public/ApiSchemas";
|
||||
import { UserMeResponse } from "engine-public/ApiSchemas";
|
||||
import { getUserMe, hasLinkedAccount } from "../Api";
|
||||
import { userAuth } from "../Auth";
|
||||
import { translateText } from "../Utils";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { html, LitElement, TemplateResult } from "lit";
|
||||
import { customElement, property } from "lit/decorators.js";
|
||||
import { UserSubscription } from "core-public/ApiSchemas";
|
||||
import { Subscription } from "core-public/CosmeticSchemas";
|
||||
import { UserSubscription } from "engine-public/ApiSchemas";
|
||||
import { Subscription } from "engine-public/CosmeticSchemas";
|
||||
import {
|
||||
cancelSubscription,
|
||||
invalidateUserMe,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AnalyticsRecord, PlayerRecord } from "core-public/Schemas";
|
||||
import { AnalyticsRecord, PlayerRecord } from "engine-public/Schemas";
|
||||
import {
|
||||
GOLD_INDEX_STEAL,
|
||||
GOLD_INDEX_TRADE,
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
PLAYER_INDEX_BOT,
|
||||
PLAYER_INDEX_HUMAN,
|
||||
PLAYER_INDEX_NATION,
|
||||
} from "core-public/StatsSchemas";
|
||||
} from "engine-public/StatsSchemas";
|
||||
|
||||
export enum RankType {
|
||||
ConquestHumans = "ConquestHumans",
|
||||
|
||||
@@ -4,7 +4,7 @@ import {
|
||||
GOLD_INDEX_TRADE,
|
||||
GOLD_INDEX_TRAIN_OTHER,
|
||||
GOLD_INDEX_TRAIN_SELF,
|
||||
} from "core-public/StatsSchemas";
|
||||
} from "engine-public/StatsSchemas";
|
||||
import { assetUrl } from "engine/AssetUrls";
|
||||
import { renderNumber } from "../../../Utils";
|
||||
import { PlayerInfo, RankType } from "./GameInfoRanking";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators.js";
|
||||
import type { DiscordUser } from "core-public/ApiSchemas";
|
||||
import type { DiscordUser } from "engine-public/ApiSchemas";
|
||||
import { getDiscordAvatarUrl, translateText } from "../../../Utils";
|
||||
|
||||
@customElement("discord-user-header")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LitElement, html } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators.js";
|
||||
import { PlayerGame } from "core-public/ApiSchemas";
|
||||
import { PlayerGame } from "engine-public/ApiSchemas";
|
||||
import { GameMode } from "engine/game/Game";
|
||||
import { GameInfoModal } from "../../../GameInfoModal";
|
||||
import { translateText } from "../../../Utils";
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
boatUnits,
|
||||
bombUnits,
|
||||
otherUnits,
|
||||
} from "core-public/StatsSchemas";
|
||||
} from "engine-public/StatsSchemas";
|
||||
import { renderNumber, translateText } from "../../../Utils";
|
||||
|
||||
@customElement("player-stats-table")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LitElement, PropertyValues, html } from "lit";
|
||||
import { customElement, property, state } from "lit/decorators.js";
|
||||
import { PlayerStatsLeaf, PlayerStatsTree } from "core-public/ApiSchemas";
|
||||
import { PlayerStatsLeaf, PlayerStatsTree } from "engine-public/ApiSchemas";
|
||||
import {
|
||||
Difficulty,
|
||||
GameMode,
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
isGameMode,
|
||||
isGameType,
|
||||
} from "engine/game/Game";
|
||||
import { PlayerStats } from "core-public/StatsSchemas";
|
||||
import { PlayerStats } from "engine-public/StatsSchemas";
|
||||
import { renderNumber, translateText } from "../../../Utils";
|
||||
import "./PlayerStatsGrid";
|
||||
import "./PlayerStatsTable";
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
TEAM_BREAKDOWN_KEYS,
|
||||
type ClanMemberStats,
|
||||
type ClanMemberWL,
|
||||
} from "core-public/ClanApiSchemas";
|
||||
} from "engine-public/ClanApiSchemas";
|
||||
import { translateText } from "../../Utils";
|
||||
import { renderWLBarRow } from "./ClanShared";
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { customElement, state } from "lit/decorators.js";
|
||||
import {
|
||||
ClanLeaderboardEntry,
|
||||
ClanLeaderboardResponse,
|
||||
} from "core-public/ClanApiSchemas";
|
||||
} from "engine-public/ClanApiSchemas";
|
||||
import { fetchClanLeaderboard } from "../../ClanApi";
|
||||
import { translateText } from "../../Utils";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { html, LitElement, nothing } from "lit";
|
||||
import { customElement, query, state } from "lit/decorators.js";
|
||||
import { PlayerLeaderboardEntry } from "core-public/ApiSchemas";
|
||||
import { PlayerLeaderboardEntry } from "engine-public/ApiSchemas";
|
||||
import { RankedType } from "engine/game/Game";
|
||||
import { fetchPlayerLeaderboard, getUserMe } from "../../Api";
|
||||
import { translateText } from "../../Utils";
|
||||
|
||||
@@ -7,7 +7,7 @@ import { Gold } from "engine/game/Game";
|
||||
import { GameUpdateType } from "engine/game/GameUpdates";
|
||||
import { GameView } from "client/view";
|
||||
import { UserSettings } from "engine/game/UserSettings";
|
||||
import { ClientID } from "core-public/Schemas";
|
||||
import { ClientID } from "engine-public/Schemas";
|
||||
import { Controller } from "../../Controller";
|
||||
import { AttackRatioEvent } from "../../InputHandler";
|
||||
import { UIState } from "../../UIState";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { GraphicsOverrides } from "core-public/GraphicsOverrides";
|
||||
import type { GraphicsOverrides } from "engine-public/GraphicsOverrides";
|
||||
import type { RenderSettings } from "./RenderSettings";
|
||||
|
||||
const DARK_AMBIENT = 0.35;
|
||||
|
||||
@@ -9,8 +9,8 @@ export type {
|
||||
RadialMenuSelectEvent,
|
||||
} from "./Events";
|
||||
export { GameView } from "./GameView";
|
||||
export { GraphicsOverridesSchema } from "core-public/GraphicsOverrides";
|
||||
export type { GraphicsOverrides } from "core-public/GraphicsOverrides";
|
||||
export { GraphicsOverridesSchema } from "engine-public/GraphicsOverrides";
|
||||
export type { GraphicsOverrides } from "engine-public/GraphicsOverrides";
|
||||
export type { SpawnCenter } from "./passes/SpawnOverlayPass";
|
||||
export {
|
||||
applyDarkModeOverride,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { GameMapType, UnitType } from "engine/game/Game";
|
||||
import { GameConfig } from "core-public/Schemas";
|
||||
import { GameConfig } from "engine-public/Schemas";
|
||||
|
||||
/**
|
||||
* Maps a slider value (0-400) to the nations config value.
|
||||
|
||||
@@ -24,7 +24,7 @@ import {
|
||||
import { TerrainMapData } from "engine/game/TerrainMapLoader";
|
||||
import { TerraNulliusImpl } from "engine/game/TerraNulliusImpl";
|
||||
import { UnitGrid, UnitPredicate } from "engine/game/UnitGrid";
|
||||
import { ClientID, GameID, Player, PlayerCosmetics } from "core-public/Schemas";
|
||||
import { ClientID, GameID, Player, PlayerCosmetics } from "engine-public/Schemas";
|
||||
import { formatPlayerDisplayName } from "engine/Util";
|
||||
import { WorkerClient } from "engine/worker/WorkerClient";
|
||||
import { computeAllianceClusters } from "../render/frame/derive/AllianceClusters";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Colord, colord } from "colord";
|
||||
import { base64url } from "jose";
|
||||
import { ColorPalette } from "core-public/CosmeticSchemas";
|
||||
import { PatternDecoder } from "core-public/PatternDecoder";
|
||||
import { ClientID, PlayerCosmetics } from "core-public/Schemas";
|
||||
import { ColorPalette } from "engine-public/CosmeticSchemas";
|
||||
import { PatternDecoder } from "engine-public/PatternDecoder";
|
||||
import { ClientID, PlayerCosmetics } from "engine-public/Schemas";
|
||||
import { createRandomName } from "engine/Util";
|
||||
import {
|
||||
BuildableUnit,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@openfront/core-public",
|
||||
"name": "@openfront/engine-public",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// Pure enum/const declarations shared between the engine and clients.
|
||||
// Extracted from engine/game/Game.ts so the public schema layer
|
||||
// (core-public) can reference them without importing engine.
|
||||
// (engine-public) can reference them without importing engine.
|
||||
|
||||
export const AllPlayers = "AllPlayers" as const;
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"dependencies": {
|
||||
"@openfront/core-public": "*"
|
||||
"@openfront/engine-public": "*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Type contracts live in core-public so the public schema layer can reference
|
||||
// Type contracts live in engine-public so the public schema layer can reference
|
||||
// GameEvent without depending on the engine. Re-exported here for existing
|
||||
// `engine/EventBus` consumers.
|
||||
import type { EventConstructor, GameEvent } from "core-public/EventBus";
|
||||
import type { EventConstructor, GameEvent } from "engine-public/EventBus";
|
||||
export type { EventConstructor, GameEvent };
|
||||
|
||||
export class EventBus {
|
||||
|
||||
@@ -28,7 +28,7 @@ import { ErrorUpdate, GameUpdateViewData } from "./game/GameUpdates";
|
||||
import { createNationsForGame } from "./game/NationCreation";
|
||||
import { loadTerrainMap as loadGameMap } from "./game/TerrainMapLoader";
|
||||
import { PseudoRandom } from "./PseudoRandom";
|
||||
import { ClientID, GameStartInfo, Turn } from "core-public/Schemas";
|
||||
import { ClientID, GameStartInfo, Turn } from "engine-public/Schemas";
|
||||
import { simpleHash } from "./Util";
|
||||
|
||||
export async function createGameRunner(
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import DOMPurify from "dompurify";
|
||||
import { customAlphabet } from "nanoid";
|
||||
// The emoji table moved to core-public; re-exported so existing `engine/Util`
|
||||
// The emoji table moved to engine-public; re-exported so existing `engine/Util`
|
||||
// imports of these symbols keep working.
|
||||
export {
|
||||
emojiTable,
|
||||
flattenedEmojiTable,
|
||||
type Emoji,
|
||||
} from "core-public/Emojis";
|
||||
} from "engine-public/Emojis";
|
||||
import { Cell, PlayerType, Unit } from "./game/Game";
|
||||
import { GameMap, TileRef } from "./game/GameMap";
|
||||
import {
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
PlayerRecord,
|
||||
Turn,
|
||||
Winner,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
|
||||
import {
|
||||
TRIBE_NAME_PREFIXES,
|
||||
|
||||
@@ -18,8 +18,8 @@ import {
|
||||
import { TileRef } from "../game/GameMap";
|
||||
import { PlayerLike } from "../game/ReadViews";
|
||||
import { UserSettings } from "../game/UserSettings";
|
||||
import { GameConfig, TeamCountConfig } from "core-public/Schemas";
|
||||
import { NukeType } from "core-public/StatsSchemas";
|
||||
import { GameConfig, TeamCountConfig } from "engine-public/Schemas";
|
||||
import { NukeType } from "engine-public/StatsSchemas";
|
||||
import { assertNever, sigmoid, toInt, within } from "../Util";
|
||||
|
||||
declare global {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { renderTroops } from "shared/format";
|
||||
import { renderTroops } from "engine-public/format";
|
||||
import {
|
||||
Attack,
|
||||
Difficulty,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Execution, Game } from "../game/Game";
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { ClientID, GameID, StampedIntent, Turn } from "core-public/Schemas";
|
||||
import { ClientID, GameID, StampedIntent, Turn } from "engine-public/Schemas";
|
||||
import { simpleHash } from "../Util";
|
||||
import { AllianceExtensionExecution } from "./alliance/AllianceExtensionExecution";
|
||||
import { AllianceRejectExecution } from "./alliance/AllianceRejectExecution";
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
} from "../game/Game";
|
||||
import { TileRef } from "../game/GameMap";
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { GameID } from "core-public/Schemas";
|
||||
import { GameID } from "engine-public/Schemas";
|
||||
import { assertNever, simpleHash } from "../Util";
|
||||
import { NationAllianceBehavior } from "./nation/NationAllianceBehavior";
|
||||
import { NationEmojiBehavior } from "./nation/NationEmojiBehavior";
|
||||
|
||||
@@ -14,7 +14,7 @@ import { UniversalPathFinding } from "../pathfinding/PathFinder";
|
||||
import { ParabolaUniversalPathFinder } from "../pathfinding/PathFinder.Parabola";
|
||||
import { PathStatus } from "../pathfinding/types";
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { NukeType } from "core-public/StatsSchemas";
|
||||
import { NukeType } from "engine-public/StatsSchemas";
|
||||
import { listNukeBreakAlliance } from "./Util";
|
||||
|
||||
const SPRITE_RADIUS = 16;
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
import { TileRef } from "../game/GameMap";
|
||||
import { PathFinding } from "../pathfinding/PathFinder";
|
||||
import { PathStatus, SteppingPathFinder } from "../pathfinding/types";
|
||||
import { NukeType } from "core-public/StatsSchemas";
|
||||
import { NukeType } from "engine-public/StatsSchemas";
|
||||
|
||||
export class SAMMissileExecution implements Execution {
|
||||
private active = true;
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
} from "../game/Game";
|
||||
import { TileRef } from "../game/GameMap";
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { GameID } from "core-public/Schemas";
|
||||
import { GameID } from "engine-public/Schemas";
|
||||
import { simpleHash } from "../Util";
|
||||
import { PlayerExecution } from "./PlayerExecution";
|
||||
import { TribeExecution } from "./TribeExecution";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { renderNumber } from "shared/format";
|
||||
import { renderNumber } from "engine-public/format";
|
||||
import {
|
||||
Execution,
|
||||
Game,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { renderTroops } from "shared/format";
|
||||
import { renderTroops } from "engine-public/format";
|
||||
import {
|
||||
Execution,
|
||||
Game,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Game, PlayerInfo, PlayerType } from "../game/Game";
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { GameID } from "core-public/Schemas";
|
||||
import { GameID } from "engine-public/Schemas";
|
||||
import { simpleHash } from "../Util";
|
||||
import { SpawnExecution } from "./SpawnExecution";
|
||||
import { TRIBE_NAME_PREFIXES, TRIBE_NAME_SUFFIXES } from "./utils/TribeNames";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Game, PlayerType } from "../../game/Game";
|
||||
import { GameID } from "core-public/Schemas";
|
||||
import { GameID } from "engine-public/Schemas";
|
||||
import { SpawnExecution } from "../SpawnExecution";
|
||||
|
||||
export class PlayerSpawner {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Config } from "../configuration/Config";
|
||||
import { AbstractGraph } from "../pathfinding/algorithms/AbstractGraph";
|
||||
import { PathFinder } from "../pathfinding/types";
|
||||
import { AllPlayersStats, ClientID } from "core-public/Schemas";
|
||||
import { AllPlayersStats, ClientID } from "engine-public/Schemas";
|
||||
import { formatPlayerDisplayName } from "../Util";
|
||||
import { GameMap, TileRef } from "./GameMap";
|
||||
import {
|
||||
@@ -14,7 +14,7 @@ import { MotionPlanRecord } from "./MotionPlans";
|
||||
import { RailNetwork } from "./RailNetwork";
|
||||
import { Stats } from "./Stats";
|
||||
import { UnitPredicate } from "./UnitGrid";
|
||||
// Enums/consts now live in core-public so the public schema layer can use them
|
||||
// Enums/consts now live in engine-public so the public schema layer can use them
|
||||
// without depending on the engine. Re-exported here so existing
|
||||
// `engine/game/Game` imports keep working.
|
||||
import {
|
||||
@@ -30,7 +30,7 @@ import {
|
||||
RankedType,
|
||||
Trios,
|
||||
UnitType,
|
||||
} from "core-public/game/GameTypes";
|
||||
} from "engine-public/game/GameTypes";
|
||||
export {
|
||||
AllPlayers,
|
||||
Difficulty,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { renderNumber } from "shared/format";
|
||||
import { renderNumber } from "engine-public/format";
|
||||
import { Config } from "../configuration/Config";
|
||||
import { SharedWaterCache } from "../execution/nation/SharedWaterCache";
|
||||
import { AbstractGraph } from "../pathfinding/algorithms/AbstractGraph";
|
||||
import { PathFinder } from "../pathfinding/types";
|
||||
import { AllPlayersStats, ClientID, Winner } from "core-public/Schemas";
|
||||
import { ATTACK_INDEX_SENT } from "core-public/StatsSchemas";
|
||||
import { AllPlayersStats, ClientID, Winner } from "engine-public/Schemas";
|
||||
import { ATTACK_INDEX_SENT } from "engine-public/StatsSchemas";
|
||||
import { simpleHash } from "../Util";
|
||||
import { AllianceImpl } from "./AllianceImpl";
|
||||
import { AllianceRequestImpl } from "./AllianceRequestImpl";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AllPlayersStats, ClientID, Winner } from "core-public/Schemas";
|
||||
import { AllPlayersStats, ClientID, Winner } from "engine-public/Schemas";
|
||||
import {
|
||||
EmojiMessage,
|
||||
GameUpdates,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { GameStartInfo } from "core-public/Schemas";
|
||||
import { GameStartInfo } from "engine-public/Schemas";
|
||||
import {
|
||||
Cell,
|
||||
GameMapSize,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { ClientID } from "core-public/Schemas";
|
||||
import { ClientID } from "engine-public/Schemas";
|
||||
import {
|
||||
assertNever,
|
||||
findClosestBy,
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
// Player-vs-PlayerView / Unit-vs-UnitView distinction.
|
||||
import { Player, type PlayerID, Unit } from "./Game";
|
||||
import { GameMap, type TileRef } from "./GameMap";
|
||||
import { UnitType } from "core-public/game/GameTypes";
|
||||
import { UnitType } from "engine-public/game/GameTypes";
|
||||
|
||||
/** Player members read by Config gold/troop calculations. */
|
||||
export type PlayerLike = Pick<
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { AllPlayersStats } from "core-public/Schemas";
|
||||
import { NukeType, OtherUnitType, PlayerStats } from "core-public/StatsSchemas";
|
||||
import { AllPlayersStats } from "engine-public/Schemas";
|
||||
import { NukeType, OtherUnitType, PlayerStats } from "engine-public/StatsSchemas";
|
||||
import { Player, TerraNullius } from "./Game";
|
||||
|
||||
export interface Stats {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AllPlayersStats } from "core-public/Schemas";
|
||||
import { AllPlayersStats } from "engine-public/Schemas";
|
||||
import {
|
||||
ATTACK_INDEX_CANCEL,
|
||||
ATTACK_INDEX_RECV,
|
||||
@@ -30,7 +30,7 @@ import {
|
||||
PlayerStats,
|
||||
unitTypeToBombUnit,
|
||||
unitTypeToOtherUnit,
|
||||
} from "core-public/StatsSchemas";
|
||||
} from "engine-public/StatsSchemas";
|
||||
import { Player, PlayerType, TerraNullius, UnitType } from "./Game";
|
||||
import { Stats } from "./Stats";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { PseudoRandom } from "../PseudoRandom";
|
||||
import { ClientID } from "core-public/Schemas";
|
||||
import { ClientID } from "engine-public/Schemas";
|
||||
import { simpleHash } from "../Util";
|
||||
import { PlayerInfo, PlayerType, Team } from "./Game";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ClientID } from "core-public/Schemas";
|
||||
import { ClientID } from "engine-public/Schemas";
|
||||
import { TerraNullius } from "./Game";
|
||||
|
||||
export class TerraNulliusImpl implements TerraNullius {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import {
|
||||
GraphicsOverrides,
|
||||
GraphicsOverridesSchema,
|
||||
} from "core-public/GraphicsOverrides";
|
||||
import { Cosmetics } from "core-public/CosmeticSchemas";
|
||||
import { PlayerPattern } from "core-public/Schemas";
|
||||
} from "engine-public/GraphicsOverrides";
|
||||
import { Cosmetics } from "engine-public/CosmeticSchemas";
|
||||
import { PlayerPattern } from "engine-public/Schemas";
|
||||
|
||||
export function getDefaultKeybinds(isMac: boolean): Record<string, string> {
|
||||
return {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ClanTagSchema, UsernameSchema } from "core-public/Schemas";
|
||||
import { ClanTagSchema, UsernameSchema } from "engine-public/Schemas";
|
||||
|
||||
export const MIN_USERNAME_LENGTH = 3;
|
||||
export const MAX_USERNAME_LENGTH = 27;
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
} from "../game/Game";
|
||||
import { TileRef } from "../game/GameMap";
|
||||
import { ErrorUpdate, GameUpdateViewData } from "../game/GameUpdates";
|
||||
import { ClientID, GameStartInfo, Turn } from "core-public/Schemas";
|
||||
import { ClientID, GameStartInfo, Turn } from "engine-public/Schemas";
|
||||
import { generateID } from "../Util";
|
||||
import { WorkerMessage } from "./WorkerMessages";
|
||||
// Inlined into the main bundle as a same-origin Blob, sidestepping the
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
} from "../game/Game";
|
||||
import { TileRef } from "../game/GameMap";
|
||||
import { ErrorUpdate, GameUpdateViewData } from "../game/GameUpdates";
|
||||
import { ClientID, GameStartInfo, Turn } from "core-public/Schemas";
|
||||
import { ClientID, GameStartInfo, Turn } from "engine-public/Schemas";
|
||||
|
||||
export type WorkerMessageType =
|
||||
| "init"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"type": "module",
|
||||
"main": "src/Server.ts",
|
||||
"dependencies": {
|
||||
"@openfront/core-public": "*",
|
||||
"@openfront/engine-public": "*",
|
||||
"@openfront/engine": "*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
GameRecordSchema,
|
||||
ID,
|
||||
PartialGameRecord,
|
||||
} from "core-public/Schemas";
|
||||
} from "engine-public/Schemas";
|
||||
import { replacer } from "engine/Util";
|
||||
import { logger } from "./Logger";
|
||||
import { ServerEnv } from "./ServerEnv";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user