84 lines
4.2 KiB
JavaScript
84 lines
4.2 KiB
JavaScript
// <auto-generated />
|
|
// Generated by scripts/generate-rts-bindings.mjs from the RTS IPC surface contract.
|
|
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
const channels = {
|
|
mapViewport: "aetheria-rts:map-viewport",
|
|
objectsViewport: "aetheria-rts:objects-viewport",
|
|
gravityViewport: "aetheria-rts:gravity-viewport",
|
|
renderSplatsViewport: "aetheria-rts:render-splats-viewport",
|
|
viewportFeed: "aetheria-rts:viewport-feed",
|
|
viewportFeedStop: "aetheria-rts:viewport-feed-stop",
|
|
viewportFeedUpdate: "aetheria-rts:viewport-feed-update",
|
|
selectedObject: "aetheria-rts:selected-object",
|
|
inventory: "aetheria-rts:inventory",
|
|
daemonHealth: "aetheria-rts:daemon-health",
|
|
authorityStatus: "aetheria-rts:authority-status",
|
|
starbridgeSession: "aetheria-rts:starbridge-session",
|
|
assetManifest: "aetheria-rts:asset-manifest",
|
|
setMoveVector: "aetheria-rts:set-move-vector",
|
|
setTarget: "aetheria-rts:set-target",
|
|
surfaceCatalog: "aetheria-rts:surface-catalog",
|
|
surfaceCatalogIndex: "aetheria-rts:surface-catalog-index",
|
|
eveSurface: "aetheria-rts:eve-surface",
|
|
submitEveCommand: "aetheria-rts:submit-eve-command",
|
|
mainMenuSurface: "aetheria-rts:main-menu-surface",
|
|
debugSurface: "aetheria-rts:debug-surface",
|
|
debugSurfaceWatch: "aetheria-rts:debug-surface-watch",
|
|
debugSurfaceWatchStop: "aetheria-rts:debug-surface-watch-stop",
|
|
debugSurfaceChanged: "aetheria-rts:debug-surface-changed",
|
|
windowControl: "aetheria-rts:window-control",
|
|
health: "aetheria-rts:health",
|
|
};
|
|
|
|
contextBridge.exposeInMainWorld("aetheriaRts", {
|
|
mapViewport: request => ipcRenderer.invoke(channels.mapViewport, request),
|
|
objectsViewport: request => ipcRenderer.invoke(channels.objectsViewport, request),
|
|
gravityViewport: request => ipcRenderer.invoke(channels.gravityViewport, request),
|
|
renderSplatsViewport: request => ipcRenderer.invoke(channels.renderSplatsViewport, request),
|
|
watchViewportFeed: (request, callback) => {
|
|
const subscriptionId = `viewport-feed-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
const listener = (_event, message) => {
|
|
if (message?.subscriptionId === subscriptionId) {
|
|
callback(message.snapshot);
|
|
}
|
|
};
|
|
ipcRenderer.on(channels.viewportFeedUpdate, listener);
|
|
void ipcRenderer.invoke(channels.viewportFeed, { subscriptionId, feed: request });
|
|
return () => {
|
|
ipcRenderer.off(channels.viewportFeedUpdate, listener);
|
|
void ipcRenderer.invoke(channels.viewportFeedStop, subscriptionId);
|
|
};
|
|
},
|
|
selectedObject: request => ipcRenderer.invoke(channels.selectedObject, request),
|
|
inventory: request => ipcRenderer.invoke(channels.inventory, request),
|
|
daemonHealth: () => ipcRenderer.invoke(channels.daemonHealth),
|
|
authorityStatus: () => ipcRenderer.invoke(channels.authorityStatus),
|
|
starbridgeSession: () => ipcRenderer.invoke(channels.starbridgeSession),
|
|
assetManifest: () => ipcRenderer.invoke(channels.assetManifest),
|
|
setMoveVector: request => ipcRenderer.invoke(channels.setMoveVector, request),
|
|
setTarget: request => ipcRenderer.invoke(channels.setTarget, request),
|
|
surfaceCatalog: () => ipcRenderer.invoke(channels.surfaceCatalog),
|
|
surfaceCatalogIndex: () => ipcRenderer.invoke(channels.surfaceCatalogIndex),
|
|
eveSurface: request => ipcRenderer.invoke(channels.eveSurface, request),
|
|
submitEveCommand: request => ipcRenderer.invoke(channels.submitEveCommand, request),
|
|
mainMenuSurface: request => ipcRenderer.invoke(channels.mainMenuSurface, request),
|
|
debugSurface: () => ipcRenderer.invoke(channels.debugSurface),
|
|
watchDebugSurface: callback => {
|
|
const subscriptionId = `debug-surface-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
const listener = (_event, message) => {
|
|
if (message?.subscriptionId === subscriptionId) {
|
|
callback(message.surface);
|
|
}
|
|
};
|
|
ipcRenderer.on(channels.debugSurfaceChanged, listener);
|
|
void ipcRenderer.invoke(channels.debugSurfaceWatch, subscriptionId);
|
|
return () => {
|
|
ipcRenderer.off(channels.debugSurfaceChanged, listener);
|
|
void ipcRenderer.invoke(channels.debugSurfaceWatchStop, subscriptionId);
|
|
};
|
|
},
|
|
windowControl: request => ipcRenderer.invoke(channels.windowControl, request),
|
|
health: () => ipcRenderer.invoke(channels.health),
|
|
});
|