432 lines
10 KiB
TypeScript
432 lines
10 KiB
TypeScript
// <auto-generated />
|
|
// Generated by scripts/generate-rts-bindings.mjs from the RTS CultMesh surface contract.
|
|
|
|
import type {
|
|
CultMeshOperationReceipt,
|
|
CultMeshSurfaceCatalogDiagnostic,
|
|
CultMeshSurfaceCatalogIndexDiagnostic,
|
|
CultMeshViewportRequest,
|
|
} from "cultmesh-ts";
|
|
|
|
export type Viewport = CultMeshViewportRequest;
|
|
|
|
export type AetheriaRuntimeSetMoveVectorRequest = {
|
|
actorEntityKey: string;
|
|
directionX: number;
|
|
directionY: number;
|
|
scalar: number;
|
|
observedFrameId?: number;
|
|
};
|
|
|
|
export type AetheriaRuntimeSetTargetRequest = {
|
|
actorEntityKey: string;
|
|
targetEntityKey: string;
|
|
observedFrameId?: number;
|
|
};
|
|
|
|
export type AetheriaRuntimeDaemonCommandReceipt = CultMeshOperationReceipt & {
|
|
commandId: string;
|
|
};
|
|
|
|
export type AetheriaRuntimeSelectedObjectRequest = {
|
|
entityIndex: number;
|
|
};
|
|
|
|
export type AetheriaRuntimeViewportFeedRequest = {
|
|
viewport: Viewport;
|
|
selectedEntityIndex?: number;
|
|
};
|
|
|
|
export type AetheriaRuntimeViewportFeedSnapshot = {
|
|
viewport: ViewportResponse;
|
|
selectedObject: SelectedObjectDocument | null;
|
|
inventory: InventoryDocument | null;
|
|
daemonHealth: DaemonHealthDocument;
|
|
authorityStatus: AuthorityStatusDocument;
|
|
starbridgeSession: StarbridgeSessionDocument;
|
|
assetManifest: AssetManifestDocument;
|
|
receivedAtUtc: string;
|
|
sampleMs: number;
|
|
};
|
|
|
|
export type ViewportResponse = {
|
|
schema: string;
|
|
frameId: number;
|
|
publishedAtUtc: string;
|
|
simulationTimeSeconds: number;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
zoneName: string;
|
|
currentEntityKey: string;
|
|
viewport: Viewport;
|
|
controlledEntityIndices: number[];
|
|
objects: ViewObject[];
|
|
gravityInfluences: GravityInfluence[];
|
|
bodies: BodyView[];
|
|
};
|
|
|
|
export type ObjectsViewportResponse = {
|
|
schema: string;
|
|
frameId: number;
|
|
publishedAtUtc: string;
|
|
simulationTimeSeconds: number;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
zoneName: string;
|
|
currentEntityKey: string;
|
|
viewport: Viewport;
|
|
controlledEntityIndices: number[];
|
|
objects: ViewObject[];
|
|
};
|
|
|
|
export type GravityViewportResponse = {
|
|
schema: string;
|
|
frameId: number;
|
|
publishedAtUtc: string;
|
|
simulationTimeSeconds: number;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
zoneName: string;
|
|
viewport: Viewport;
|
|
gravityInfluences: GravityInfluence[];
|
|
bodies: BodyView[];
|
|
};
|
|
|
|
export type RenderSplatsViewportResponse = {
|
|
schema: string;
|
|
frameId: number;
|
|
publishedAtUtc: string;
|
|
simulationTimeSeconds: number;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
zoneName: string;
|
|
viewport: Viewport;
|
|
layers: RenderSplatLayerDefinition[];
|
|
splats: RenderSplatSoa;
|
|
};
|
|
|
|
export type RenderSplatLayerDefinition = {
|
|
layerKey: string;
|
|
displayName: string;
|
|
channel: number;
|
|
blendMode: string;
|
|
graphicsFormat: string;
|
|
clearBeforeDraw: boolean;
|
|
clearR: number;
|
|
clearG: number;
|
|
clearB: number;
|
|
clearA: number;
|
|
};
|
|
|
|
export type RenderSplatSoa = {
|
|
count: number;
|
|
centerX: number[];
|
|
centerY: number[];
|
|
halfExtentX: number[];
|
|
halfExtentY: number[];
|
|
rotationCos: number[];
|
|
rotationSin: number[];
|
|
channel: number[];
|
|
falloff: number[];
|
|
valueR: number[];
|
|
valueG: number[];
|
|
valueB: number[];
|
|
valueA: number[];
|
|
sourceKey: string[];
|
|
layerIndex: number[];
|
|
sourceKind: number[];
|
|
frequencyX: number[];
|
|
frequencyY: number[];
|
|
phaseX: number[];
|
|
phaseY: number[];
|
|
animationSpeed: number[];
|
|
sourceFlags: number[];
|
|
};
|
|
|
|
export type ViewObject = {
|
|
entityIndex: number;
|
|
entityKey: string;
|
|
displayName: string;
|
|
kind: string;
|
|
factionKey: string;
|
|
x: number;
|
|
y: number;
|
|
z: number;
|
|
directionX: number;
|
|
directionY: number;
|
|
velocityX: number;
|
|
velocityY: number;
|
|
controlled: boolean;
|
|
targetEntityIndex: number;
|
|
isActive: boolean;
|
|
visibility: number;
|
|
iconAsset: AssetRef;
|
|
status: EntityStatus;
|
|
inventory: InventoryItem[];
|
|
};
|
|
|
|
export type EntityStatus = {
|
|
hull: number;
|
|
shield: number;
|
|
heat: number;
|
|
};
|
|
|
|
export type InventoryItem = {
|
|
source: string;
|
|
itemKey: string;
|
|
quantity: number;
|
|
quality: number;
|
|
durability: number;
|
|
enabled: boolean;
|
|
iconAsset: AssetRef;
|
|
};
|
|
|
|
export type SelectedObjectDocument = {
|
|
schema: string;
|
|
frameId: number;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
entityIndex: number;
|
|
selected: ViewObject | null;
|
|
};
|
|
|
|
export type InventoryDocument = {
|
|
schema: string;
|
|
frameId: number;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
entityIndex: number;
|
|
entityKey: string;
|
|
items: InventoryItem[];
|
|
equipment: InventoryItem[];
|
|
cargo: InventoryItem[];
|
|
};
|
|
|
|
export type DaemonHealthDocument = {
|
|
schema: string;
|
|
daemonId: string;
|
|
verseId: string;
|
|
publishedAtUtc: string;
|
|
statePath: string;
|
|
frameId: number;
|
|
observedCommandCount: number;
|
|
appliedCommandCount: number;
|
|
rejectedCommandCount: number;
|
|
status: string;
|
|
publicationSource: string;
|
|
transport: string;
|
|
commandBoundaryPath: string;
|
|
};
|
|
|
|
export type AuthorityStatusDocument = {
|
|
schema: string;
|
|
verseId: string;
|
|
policyId: string;
|
|
ruleVersion: string;
|
|
hostRuntimeId: string;
|
|
defaultMode: string;
|
|
updatedAtUtc: string;
|
|
rules: AuthorityRuleDocument[];
|
|
};
|
|
|
|
export type AuthorityRuleDocument = {
|
|
ruleId: string;
|
|
subjectPrefix: string;
|
|
claimKinds: string[];
|
|
mode: string;
|
|
runtimeIds: string[];
|
|
leaseScope: string;
|
|
priority: number;
|
|
};
|
|
|
|
export type StarbridgeSessionDocument = {
|
|
schema: string;
|
|
frameId: number;
|
|
publishedAtUtc: string;
|
|
sessionId: string;
|
|
scenarioId: string;
|
|
scenarioName: string;
|
|
runId: string;
|
|
zoneIndex: number;
|
|
zoneName: string;
|
|
phase: string;
|
|
currentWaveIndex: number;
|
|
baseStatus: StarbridgeBaseStatusDocument;
|
|
stationStock: StarbridgeStationStockItemDocument[];
|
|
waveForecast: StarbridgeWaveForecastDocument[];
|
|
runtimeRoles: StarbridgeRuntimeRoleDocument[];
|
|
};
|
|
|
|
export type StarbridgeBaseStatusDocument = {
|
|
entityKey: string;
|
|
displayName: string;
|
|
hull: number;
|
|
shield: number;
|
|
heat: number;
|
|
isActive: boolean;
|
|
};
|
|
|
|
export type StarbridgeStationStockItemDocument = {
|
|
itemKey: string;
|
|
quantity: number;
|
|
quality: number;
|
|
durability: number;
|
|
source: string;
|
|
iconAsset: AssetRef;
|
|
};
|
|
|
|
export type AssetManifestDocument = {
|
|
schema: string;
|
|
publishedAtUtc: string;
|
|
runId: string;
|
|
baseUri: string;
|
|
assets: AssetManifestEntry[];
|
|
};
|
|
|
|
export type AssetManifestEntry = {
|
|
ref: AssetRef;
|
|
sizeBytes: number;
|
|
width: number;
|
|
height: number;
|
|
tags: string[];
|
|
};
|
|
|
|
export type AssetRef = {
|
|
assetKey: string;
|
|
kind: string;
|
|
uri: string;
|
|
transport: string;
|
|
contentHash: string;
|
|
mimeType: string;
|
|
metadata: Record<string, string>;
|
|
};
|
|
|
|
export type StarbridgeWaveForecastDocument = {
|
|
waveIndex: number;
|
|
displayName: string;
|
|
attackerKeys: string[];
|
|
bossKey: string;
|
|
recoveredTechnologyKeys: string[];
|
|
};
|
|
|
|
export type StarbridgeRuntimeRoleDocument = {
|
|
runtimeId: string;
|
|
role: string;
|
|
entityKey: string;
|
|
};
|
|
|
|
export type GravityInfluence = {
|
|
bodyKey: string;
|
|
orbitKey: string;
|
|
kind: string;
|
|
x: number;
|
|
y: number;
|
|
radius: number;
|
|
gravityDepth: number;
|
|
gravityDepthExponent: number;
|
|
waveRadius: number;
|
|
waveDepth: number;
|
|
waveSpeed: number;
|
|
};
|
|
|
|
export type BodyView = {
|
|
bodyKey: string;
|
|
orbitKey: string;
|
|
name: string;
|
|
kind: string;
|
|
x: number;
|
|
y: number;
|
|
radius: number;
|
|
isAsteroidBelt: boolean;
|
|
iconAsset: AssetRef;
|
|
iconSize: number;
|
|
};
|
|
|
|
|
|
export type AetheriaMenuSurfaceRequest = {
|
|
surfaceId?: string;
|
|
inGame?: boolean;
|
|
canOpenRuntimeInputScreen?: boolean;
|
|
panelOnly?: boolean;
|
|
};
|
|
|
|
export type AetheriaEveSurfaceRequest = {
|
|
surfaceId?: string;
|
|
recordKey?: string;
|
|
};
|
|
|
|
export type AetheriaEveCommandRequest = {
|
|
providerId?: string;
|
|
surfaceId?: string;
|
|
command?: string;
|
|
clientId?: string;
|
|
issuedAtUtc?: string;
|
|
payload?: Record<string, unknown>;
|
|
};
|
|
|
|
export type AetheriaMenuSurfaceDocument = {
|
|
providerId: string;
|
|
providerKind: string;
|
|
title: string;
|
|
version: number;
|
|
updatedAtUtc: string;
|
|
surface: AetheriaMenuSurfaceTree;
|
|
commands: AetheriaMenuSurfaceCommand[];
|
|
};
|
|
|
|
export type AetheriaMenuSurfaceTree = {
|
|
id: string;
|
|
root: AetheriaMenuSurfaceComponent;
|
|
styles: AetheriaMenuStyleToken[];
|
|
};
|
|
|
|
export type AetheriaMenuSurfaceComponent = {
|
|
id: string;
|
|
kind: string;
|
|
props: Record<string, string>;
|
|
embeddedDocuments?: AetheriaMenuEmbeddedDocumentSlot[];
|
|
children: AetheriaMenuSurfaceComponent[];
|
|
};
|
|
|
|
export type AetheriaMenuEmbeddedDocumentSlot = {
|
|
slotId: string;
|
|
documentId: string;
|
|
schemaId: string;
|
|
presentationKind: string;
|
|
};
|
|
|
|
export type AetheriaMenuStyleToken = {
|
|
name: string;
|
|
value: string;
|
|
};
|
|
|
|
export type AetheriaMenuSurfaceCommand = {
|
|
command: string;
|
|
label: string;
|
|
transport: string;
|
|
};
|
|
|
|
export type AetheriaRtsApi = {
|
|
mapViewport(request: Viewport): Promise<ViewportResponse>;
|
|
objectsViewport(request: Viewport): Promise<ObjectsViewportResponse>;
|
|
gravityViewport(request: Viewport): Promise<GravityViewportResponse>;
|
|
renderSplatsViewport(request: Viewport): Promise<RenderSplatsViewportResponse>;
|
|
selectedObject(request: AetheriaRuntimeSelectedObjectRequest): Promise<SelectedObjectDocument>;
|
|
inventory(request: AetheriaRuntimeSelectedObjectRequest): Promise<InventoryDocument>;
|
|
daemonHealth(): Promise<DaemonHealthDocument>;
|
|
authorityStatus(): Promise<AuthorityStatusDocument>;
|
|
starbridgeSession(): Promise<StarbridgeSessionDocument>;
|
|
assetManifest(): Promise<AssetManifestDocument>;
|
|
watchViewportFeed(request: AetheriaRuntimeViewportFeedRequest, callback: (snapshot: AetheriaRuntimeViewportFeedSnapshot) => void): () => void;
|
|
setMoveVector(request: AetheriaRuntimeSetMoveVectorRequest): Promise<AetheriaRuntimeDaemonCommandReceipt>;
|
|
setTarget(request: AetheriaRuntimeSetTargetRequest): Promise<AetheriaRuntimeDaemonCommandReceipt>;
|
|
surfaceCatalog(): Promise<CultMeshSurfaceCatalogDiagnostic>;
|
|
surfaceCatalogIndex(): Promise<CultMeshSurfaceCatalogIndexDiagnostic>;
|
|
eveSurface(request: AetheriaEveSurfaceRequest): Promise<AetheriaMenuSurfaceDocument>;
|
|
submitEveCommand(request: AetheriaEveCommandRequest): Promise<AetheriaRuntimeDaemonCommandReceipt>;
|
|
mainMenuSurface(request: AetheriaMenuSurfaceRequest): Promise<AetheriaMenuSurfaceDocument>;
|
|
debugSurface(): Promise<AetheriaMenuSurfaceDocument>;
|
|
watchDebugSurface(callback: (surface: AetheriaMenuSurfaceDocument) => void): () => void;
|
|
windowControl(action: "minimize" | "maximize" | "close"): Promise<void>;
|
|
health(): Promise<unknown>;
|
|
};
|