291 lines
6.6 KiB
TypeScript
291 lines
6.6 KiB
TypeScript
export interface WorldSnapshot {
|
|
label: string;
|
|
seed: number;
|
|
sequence: number;
|
|
tickIntervalMs: number;
|
|
generatedAtUtc: string;
|
|
systems: SystemSnapshot[];
|
|
spatialNodes: SpatialNodeSnapshot[];
|
|
localBubbles: LocalBubbleSnapshot[];
|
|
nodes: ResourceNodeSnapshot[];
|
|
stations: StationSnapshot[];
|
|
claims: ClaimSnapshot[];
|
|
constructionSites: ConstructionSiteSnapshot[];
|
|
marketOrders: MarketOrderSnapshot[];
|
|
policies: PolicySetSnapshot[];
|
|
ships: ShipSnapshot[];
|
|
factions: FactionSnapshot[];
|
|
}
|
|
|
|
export interface WorldDelta {
|
|
sequence: number;
|
|
tickIntervalMs: number;
|
|
generatedAtUtc: string;
|
|
requiresSnapshotRefresh: boolean;
|
|
events: SimulationEventRecord[];
|
|
spatialNodes: SpatialNodeDelta[];
|
|
localBubbles: LocalBubbleDelta[];
|
|
nodes: ResourceNodeDelta[];
|
|
stations: 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;
|
|
bubbleId?: string | null;
|
|
}
|
|
|
|
export interface Vector3Dto {
|
|
x: number;
|
|
y: number;
|
|
z: number;
|
|
}
|
|
|
|
export interface SystemSnapshot {
|
|
id: string;
|
|
label: string;
|
|
galaxyPosition: Vector3Dto;
|
|
starKind: string;
|
|
starCount: number;
|
|
starColor: string;
|
|
starSize: number;
|
|
planets: PlanetSnapshot[];
|
|
}
|
|
|
|
export interface PlanetSnapshot {
|
|
label: string;
|
|
planetType: string;
|
|
shape: string;
|
|
moonCount: number;
|
|
orbitRadius: number;
|
|
orbitSpeed: number;
|
|
orbitEccentricity: number;
|
|
orbitInclination: number;
|
|
orbitLongitudeOfAscendingNode: number;
|
|
orbitArgumentOfPeriapsis: number;
|
|
orbitPhaseAtEpoch: number;
|
|
size: number;
|
|
color: string;
|
|
hasRing: boolean;
|
|
}
|
|
|
|
export interface ResourceNodeSnapshot {
|
|
id: string;
|
|
systemId: string;
|
|
localPosition: Vector3Dto;
|
|
sourceKind: string;
|
|
oreRemaining: number;
|
|
maxOre: number;
|
|
itemId: string;
|
|
}
|
|
|
|
export interface ResourceNodeDelta extends ResourceNodeSnapshot {}
|
|
|
|
export interface SpatialNodeSnapshot {
|
|
id: string;
|
|
systemId: string;
|
|
kind: string;
|
|
localPosition: Vector3Dto;
|
|
bubbleId: string;
|
|
parentNodeId?: string | null;
|
|
occupyingStructureId?: string | null;
|
|
orbitReferenceId?: string | null;
|
|
}
|
|
|
|
export interface SpatialNodeDelta extends SpatialNodeSnapshot {}
|
|
|
|
export interface LocalBubbleSnapshot {
|
|
id: string;
|
|
nodeId: string;
|
|
systemId: string;
|
|
radius: number;
|
|
occupantShipIds: string[];
|
|
occupantStationIds: string[];
|
|
occupantClaimIds: string[];
|
|
occupantConstructionSiteIds: string[];
|
|
}
|
|
|
|
export interface LocalBubbleDelta extends LocalBubbleSnapshot {}
|
|
|
|
export interface InventoryEntry {
|
|
itemId: string;
|
|
amount: number;
|
|
}
|
|
|
|
export interface StationSnapshot {
|
|
id: string;
|
|
label: string;
|
|
category: string;
|
|
systemId: string;
|
|
localPosition: Vector3Dto;
|
|
nodeId?: string | null;
|
|
bubbleId?: string | null;
|
|
anchorNodeId?: string | null;
|
|
color: string;
|
|
dockedShips: number;
|
|
dockingPads: number;
|
|
energyStored: number;
|
|
inventory: InventoryEntry[];
|
|
factionId: string;
|
|
commanderId?: string | null;
|
|
policySetId?: string | null;
|
|
population: number;
|
|
populationCapacity: number;
|
|
workforceRequired: number;
|
|
workforceEffectiveRatio: number;
|
|
installedModules: string[];
|
|
marketOrderIds: string[];
|
|
}
|
|
|
|
export interface StationDelta extends StationSnapshot {}
|
|
|
|
export interface ClaimSnapshot {
|
|
id: string;
|
|
factionId: string;
|
|
systemId: string;
|
|
nodeId: string;
|
|
bubbleId: string;
|
|
state: string;
|
|
health: number;
|
|
placedAtUtc: string;
|
|
activatesAtUtc: string;
|
|
}
|
|
|
|
export interface ClaimDelta extends ClaimSnapshot {}
|
|
|
|
export interface ConstructionSiteSnapshot {
|
|
id: string;
|
|
factionId: string;
|
|
systemId: string;
|
|
nodeId: string;
|
|
bubbleId: string;
|
|
targetKind: string;
|
|
targetDefinitionId: string;
|
|
blueprintId?: string | null;
|
|
claimId?: string | null;
|
|
stationId?: string | null;
|
|
state: string;
|
|
progress: number;
|
|
inventory: InventoryEntry[];
|
|
requiredItems: InventoryEntry[];
|
|
deliveredItems: InventoryEntry[];
|
|
assignedConstructorShipIds: string[];
|
|
marketOrderIds: string[];
|
|
}
|
|
|
|
export interface ConstructionSiteDelta extends ConstructionSiteSnapshot {}
|
|
|
|
export interface MarketOrderSnapshot {
|
|
id: string;
|
|
factionId: string;
|
|
stationId?: string | null;
|
|
constructionSiteId?: string | null;
|
|
kind: string;
|
|
itemId: string;
|
|
amount: number;
|
|
remainingAmount: number;
|
|
valuation: number;
|
|
reserveThreshold?: number | null;
|
|
policySetId?: string | null;
|
|
state: string;
|
|
}
|
|
|
|
export interface MarketOrderDelta extends MarketOrderSnapshot {}
|
|
|
|
export interface PolicySetSnapshot {
|
|
id: string;
|
|
ownerKind: string;
|
|
ownerId: string;
|
|
tradeAccessPolicy: string;
|
|
dockingAccessPolicy: string;
|
|
constructionAccessPolicy: string;
|
|
operationalRangePolicy: string;
|
|
}
|
|
|
|
export interface PolicySetDelta extends PolicySetSnapshot {}
|
|
|
|
export interface ShipSnapshot {
|
|
id: string;
|
|
label: string;
|
|
role: string;
|
|
shipClass: string;
|
|
systemId: string;
|
|
localPosition: Vector3Dto;
|
|
localVelocity: Vector3Dto;
|
|
targetLocalPosition: Vector3Dto;
|
|
state: string;
|
|
orderKind: string | null;
|
|
defaultBehaviorKind: string;
|
|
controllerTaskKind: string;
|
|
nodeId?: string | null;
|
|
bubbleId?: string | null;
|
|
dockedStationId?: string | null;
|
|
commanderId?: string | null;
|
|
policySetId?: string | null;
|
|
cargoCapacity: number;
|
|
workerPopulation: number;
|
|
energyStored: number;
|
|
inventory: InventoryEntry[];
|
|
factionId: string;
|
|
health: number;
|
|
history: string[];
|
|
spatialState: ShipSpatialStateSnapshot;
|
|
}
|
|
|
|
export interface ShipDelta extends ShipSnapshot {}
|
|
|
|
export interface ShipSpatialStateSnapshot {
|
|
spaceLayer: string;
|
|
currentSystemId: string;
|
|
currentNodeId?: string | null;
|
|
currentBubbleId?: string | null;
|
|
localPosition?: Vector3Dto | null;
|
|
systemPosition?: Vector3Dto | null;
|
|
movementRegime: string;
|
|
destinationNodeId?: string | null;
|
|
transit?: ShipTransitSnapshot | null;
|
|
}
|
|
|
|
export interface ShipTransitSnapshot {
|
|
regime: string;
|
|
originNodeId?: string | null;
|
|
destinationNodeId?: string | null;
|
|
startedAtUtc?: string | null;
|
|
arrivalDueAtUtc?: string | null;
|
|
progress: number;
|
|
}
|
|
|
|
export interface FactionSnapshot {
|
|
id: string;
|
|
label: string;
|
|
color: string;
|
|
credits: number;
|
|
populationTotal: number;
|
|
oreMined: number;
|
|
goodsProduced: number;
|
|
shipsBuilt: number;
|
|
shipsLost: number;
|
|
defaultPolicySetId?: string | null;
|
|
}
|
|
|
|
export interface FactionDelta extends FactionSnapshot {}
|