Files
space-game/apps/viewer/src/contractsWorld.ts

90 lines
2.1 KiB
TypeScript

import type {
ClaimDelta,
ClaimSnapshot,
ConstructionSiteDelta,
ConstructionSiteSnapshot,
} from "./contractsInfrastructure";
import type {
FactionDelta,
FactionSnapshot,
} from "./contractsFactions";
import type {
CelestialDelta,
CelestialSnapshot,
ResourceNodeDelta,
ResourceNodeSnapshot,
SystemSnapshot,
} from "./contractsCelestial";
import type {
MarketOrderDelta,
PolicySetDelta,
PolicySetSnapshot,
MarketOrderSnapshot,
} from "./contractsEconomy";
import type {
ShipDelta,
ShipSnapshot,
} from "./contractsShips";
export interface WorldSnapshot {
label: string;
seed: number;
sequence: number;
tickIntervalMs: number;
orbitalTimeSeconds: number;
orbitalSimulation: OrbitalSimulationSnapshot;
generatedAtUtc: string;
systems: SystemSnapshot[];
celestials: CelestialSnapshot[];
nodes: ResourceNodeSnapshot[];
stations: import("./contractsInfrastructure").StationSnapshot[];
claims: ClaimSnapshot[];
constructionSites: ConstructionSiteSnapshot[];
marketOrders: MarketOrderSnapshot[];
policies: PolicySetSnapshot[];
ships: ShipSnapshot[];
factions: FactionSnapshot[];
}
export interface WorldDelta {
sequence: number;
tickIntervalMs: number;
orbitalTimeSeconds: number;
orbitalSimulation: OrbitalSimulationSnapshot;
generatedAtUtc: string;
requiresSnapshotRefresh: boolean;
events: SimulationEventRecord[];
celestials: CelestialDelta[];
nodes: ResourceNodeDelta[];
stations: import("./contractsInfrastructure").StationDelta[];
claims: ClaimDelta[];
constructionSites: ConstructionSiteDelta[];
marketOrders: MarketOrderDelta[];
policies: PolicySetDelta[];
ships: ShipDelta[];
factions: FactionDelta[];
scope?: ObserverScope | null;
}
export interface SimulationEventRecord {
entityKind: string;
entityId: string;
kind: string;
message: string;
occurredAtUtc: string;
family?: string;
scopeKind?: string;
scopeEntityId?: string | null;
visibility?: string;
}
export interface ObserverScope {
scopeKind: string;
systemId?: string | null;
celestialId?: string | null;
}
export interface OrbitalSimulationSnapshot {
simulatedSecondsPerRealSecond: number;
}