@fps-games/editor 0.1.7-beta.4 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/agent-bridge/capabilities/assets.d.ts.map +1 -1
  2. package/dist/agent-bridge/capabilities/assets.js +12 -7
  3. package/dist/agent-bridge/capabilities/assets.js.map +1 -1
  4. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +1 -1
  5. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +1 -1
  6. package/dist/agent-bridge/capabilities/host-lifecycle.js +4 -2
  7. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
  8. package/dist/agent-bridge/capabilities/prefabs.js +50 -0
  9. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  10. package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
  11. package/dist/agent-bridge/capability-sources.js +4 -1
  12. package/dist/agent-bridge/capability-sources.js.map +1 -1
  13. package/dist/build-info.json +15 -15
  14. package/dist/index.d.ts +5 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/local-editor-harness.d.ts +4 -0
  19. package/dist/local-editor-harness.d.ts.map +1 -1
  20. package/dist/local-editor-harness.js +145 -53
  21. package/dist/local-editor-harness.js.map +1 -1
  22. package/dist/playable-local-editor-host.d.ts +5 -1
  23. package/dist/playable-local-editor-host.d.ts.map +1 -1
  24. package/dist/playable-local-editor-host.js +74 -1
  25. package/dist/playable-local-editor-host.js.map +1 -1
  26. package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
  27. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.d.ts +2 -0
  28. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.d.ts.map +1 -1
  29. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js +1 -0
  30. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
  31. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts +6 -2
  32. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts.map +1 -1
  33. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js +94 -24
  34. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  35. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts +6 -2
  36. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
  37. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +7 -0
  38. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  39. package/node_modules/@fps-games/editor-babylon/dist/monitor.d.ts +2 -0
  40. package/node_modules/@fps-games/editor-babylon/dist/monitor.d.ts.map +1 -1
  41. package/node_modules/@fps-games/editor-babylon/dist/monitor.js +2 -0
  42. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
  43. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +19 -0
  44. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  45. package/node_modules/@fps-games/editor-babylon/dist/projection.js +711 -35
  46. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  47. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  48. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +2 -0
  49. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  50. package/node_modules/@fps-games/editor-browser/dist/index.js +1 -0
  51. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  52. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +26 -0
  53. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -0
  54. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +187 -0
  55. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -0
  56. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  57. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +102 -2
  58. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  59. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +3 -0
  60. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  61. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  62. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +15 -0
  63. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  64. package/node_modules/@fps-games/editor-browser/package.json +3 -3
  65. package/node_modules/@fps-games/editor-core/package.json +2 -2
  66. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  67. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +198 -53
  68. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  69. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +4 -1
  70. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  71. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  72. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +89 -9
  73. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  74. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +3 -1
  75. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  76. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +59 -5
  77. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  78. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
  79. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  80. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  81. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  82. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +59 -1
  83. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  84. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +25 -0
  85. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  86. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
  87. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +29 -0
  88. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  89. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  90. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +34 -1
  91. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  92. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +6 -2
  93. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  94. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
  95. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -3
  96. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  97. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +30 -0
  98. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  99. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +1 -0
  100. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
  101. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +1 -0
  102. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  103. package/node_modules/@fps-games/editor-playable-sdk/package.json +3 -3
  104. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +13 -0
  105. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
  106. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +29 -0
  107. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  108. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -1
  109. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  110. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  111. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  112. package/package.json +8 -8
@@ -189,6 +189,73 @@ export function installPlayableForgePlayModeBridge(options) {
189
189
  const postEvent = (name, payload = {}) => {
190
190
  postPlayableForgePlayEvent(options.window, name, payload);
191
191
  };
192
+ const notifySaveFailed = async (operation, error) => {
193
+ const notify = options.interactions?.notifySaveFailed;
194
+ if (!notify)
195
+ return;
196
+ let state;
197
+ try {
198
+ state = options.harness.getSaveFailureState?.();
199
+ }
200
+ catch (stateError) {
201
+ console.error('[PlayableForgePlayBridge] save failure state unavailable', stateError);
202
+ }
203
+ const input = {
204
+ operation,
205
+ status: state?.status ?? (error instanceof Error ? error.message : undefined),
206
+ details: state?.details,
207
+ error: error ?? state?.error,
208
+ };
209
+ try {
210
+ await notify(input);
211
+ }
212
+ catch (notifyError) {
213
+ console.error('[PlayableForgePlayBridge] save failure notification failed', notifyError);
214
+ }
215
+ };
216
+ const saveScene = async (operation) => {
217
+ try {
218
+ const saved = await options.harness.saveScene();
219
+ if (!saved)
220
+ await notifySaveFailed(operation);
221
+ return saved;
222
+ }
223
+ catch (error) {
224
+ await notifySaveFailed(operation, error);
225
+ throw error;
226
+ }
227
+ };
228
+ const readUnsavedChangesState = () => {
229
+ const fallbackHasWorkingDocument = options.harness.getWorkingDocument() !== null;
230
+ try {
231
+ return options.harness.getUnsavedChangesState?.() ?? {
232
+ dirty: false,
233
+ hasWorkingDocument: fallbackHasWorkingDocument,
234
+ };
235
+ }
236
+ catch (error) {
237
+ console.error('[PlayableForgePlayBridge] unsaved changes state unavailable', error);
238
+ return {
239
+ dirty: false,
240
+ hasWorkingDocument: fallbackHasWorkingDocument,
241
+ };
242
+ }
243
+ };
244
+ const confirmDiscardIfNeeded = async (operation) => {
245
+ const unsavedChanges = readUnsavedChangesState();
246
+ if (!unsavedChanges.dirty || !unsavedChanges.hasWorkingDocument)
247
+ return true;
248
+ try {
249
+ return await options.interactions?.confirmDiscardUnsavedChanges?.({
250
+ operation,
251
+ unsavedChanges,
252
+ }) !== false;
253
+ }
254
+ catch (error) {
255
+ console.error('[PlayableForgePlayBridge] discard confirmation failed', error);
256
+ return false;
257
+ }
258
+ };
192
259
  const clearOverlayHideTimer = () => {
193
260
  if (overlayHideTimer == null)
194
261
  return;
@@ -203,8 +270,7 @@ export function installPlayableForgePlayModeBridge(options) {
203
270
  clearOverlayHideTimer();
204
271
  overlayHideTimer = options.window.setTimeout(() => {
205
272
  overlayHideTimer = null;
206
- if (currentMode === 'edit')
207
- options.loadingOverlay.hide();
273
+ options.loadingOverlay.hide();
208
274
  }, overlayHideDelayMs);
209
275
  };
210
276
  const reportModeChangeError = (error, fallbackMode) => {
@@ -236,6 +302,14 @@ export function installPlayableForgePlayModeBridge(options) {
236
302
  return;
237
303
  }
238
304
  inFlight = (async () => {
305
+ if (mode === 'play' && switchOptions.save !== true && shouldRunExit()) {
306
+ const confirmed = await confirmDiscardIfNeeded('forge-play-mode-change');
307
+ if (!confirmed) {
308
+ currentMode = 'edit';
309
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });
310
+ return;
311
+ }
312
+ }
239
313
  if (exitLoadingContent) {
240
314
  showSaveOverlay(exitLoadingContent);
241
315
  await waitForPaint();
@@ -255,16 +329,19 @@ export function installPlayableForgePlayModeBridge(options) {
255
329
  && saveState.preparedRevision === saveState.committedRevision
256
330
  && options.hasUnsavedPlatformChanges?.() !== true;
257
331
  if (!platformCommitAlreadySaved) {
258
- const saved = await options.harness.saveScene();
332
+ const saved = await saveScene('forge-play-mode-change');
259
333
  if (!saved) {
260
334
  if (exitLoadingContent)
261
335
  options.loadingOverlay.hide();
262
- reportModeChangeError(new Error('save_failed'), 'edit');
336
+ currentMode = 'edit';
337
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'edit' });
263
338
  return;
264
339
  }
265
340
  }
266
341
  }
267
342
  await options.harness.discardAndRunGame();
343
+ if (exitLoadingContent)
344
+ options.loadingOverlay.hide();
268
345
  currentMode = 'play';
269
346
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: 'play' });
270
347
  }
@@ -285,9 +362,10 @@ export function installPlayableForgePlayModeBridge(options) {
285
362
  if (inFlight)
286
363
  await inFlight;
287
364
  inFlight = (async () => {
288
- const saved = await options.harness.saveScene();
365
+ const originalMode = currentMode;
366
+ const saved = await saveScene('forge-play-document-commit');
289
367
  if (!saved) {
290
- reportModeChangeError(new Error('save_failed'), 'edit');
368
+ postEvent(PLAYABLE_FORGE_PLAY_EVENT.MODE_CHANGE, { mode: originalMode });
291
369
  return;
292
370
  }
293
371
  if (saveState.preparedRevision > 0) {
@@ -353,11 +431,13 @@ export function installPlayableForgePlayModeBridge(options) {
353
431
  }
354
432
  if (commandName === PLAYABLE_FORGE_PLAY_COMMAND.DOCUMENT_EXPORT) {
355
433
  showSaveOverlay(options.loadingContent.saveScene);
356
- const exported = options.exportDocument
357
- ? options.exportDocument({ payload, saveState, postEvent })
434
+ const exportDocument = options.exportDocument;
435
+ const exported = exportDocument
436
+ ? Promise.resolve().then(() => exportDocument({ payload, saveState, postEvent }))
358
437
  : Promise.resolve();
359
- void exported.catch((error) => {
438
+ void exported.catch(async (error) => {
360
439
  options.loadingOverlay.hide();
440
+ await notifySaveFailed('forge-play-document-export', error);
361
441
  postEvent(PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, {
362
442
  ...(readPlayableForgePlayRequestId(payload) ? { requestId: readPlayableForgePlayRequestId(payload) } : {}),
363
443
  error: error instanceof Error ? error.message : String(error),
@@ -1 +1 @@
1
- {"version":3,"file":"forge-play.js","sourceRoot":"","sources":["../../src/local-harness/forge-play.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-play.js","sourceRoot":"","sources":["../../src/local-harness/forge-play.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { PlayableForgePlayBridgeInstallOptions, PlayableForgePlayModeBridge, PlayableForgePlaySaveState, PlayableForgePlayWindowLike } from './forge-play-types';
2
- import type { PlayableLocalEditorLifecycleContent, PlayableLocalEditorLifecycleController, PlayableLocalEditorLifecycleHarness, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorLoadingOverlayController } from './types';
2
+ import type { PlayableLocalEditorLifecycleContent, PlayableLocalEditorLifecycleController, PlayableLocalEditorLifecycleHarness, PlayableLocalEditorInteractionPolicy, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorLoadingOverlayController } from './types';
3
3
  export interface PlayableLocalEditorHostHarness extends PlayableLocalEditorLifecycleHarness {
4
4
  getWorkingDocument(): unknown | null;
5
5
  }
@@ -27,6 +27,7 @@ export interface PlayableLocalEditorHostControllerOptions<THarness extends Playa
27
27
  now?: () => number;
28
28
  minAssetLoadingOverlayMs?: number;
29
29
  viewportRevealReason?: string;
30
+ interactions?: PlayableLocalEditorInteractionPolicy;
30
31
  forgePlay?: {
31
32
  enabled?: boolean;
32
33
  window?: PlayableForgePlayWindowLike;
@@ -49,6 +50,7 @@ export interface PlayableLocalEditorHostController<THarness extends PlayableLoca
49
50
  lifecycle: PlayableLocalEditorLifecycleController;
50
51
  getBridge(): PlayableForgePlayModeBridge | null;
51
52
  enterEditor(): Promise<void>;
53
+ saveScene(): Promise<boolean>;
52
54
  saveAndRunGame(): Promise<boolean>;
53
55
  discardAndRunGame(): Promise<void>;
54
56
  runWithAssetLoadingOverlay<T>(operation: () => Promise<T>): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"host-controller.d.ts","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qCAAqC,EACrC,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EACV,mCAAmC,EACnC,sCAAsC,EACtC,mCAAmC,EACnC,wCAAwC,EACxC,2CAA2C,EAC5C,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,8BACf,SAAQ,mCAAmC;IAC3C,kBAAkB,IAAI,OAAO,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,qCACf,SAAQ,mCAAmC;IAC3C,SAAS,EAAE,wCAAwC,CAAC;CACrD;AAED,MAAM,WAAW,oCAAoC,CACnD,QAAQ,SAAS,8BAA8B,GAAG,8BAA8B;IAEhF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,QAAQ,CAAC;IAClB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,0BAA0B,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3E,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,SAAS,EAAE,MAAM,2BAA2B,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,wCAAwC,CACvD,QAAQ,SAAS,8BAA8B,GAAG,8BAA8B;IAEhF,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,EAAE,IAAI,CAAC,2CAA2C,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG;QACjG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,qCAAqC,CAAC;IACtD,uBAAuB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,2BAA2B,CAAC;QACrC,WAAW,CAAC,EAAE,qCAAqC,CAAC,aAAa,CAAC,CAAC;QACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC;QAC1C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QACvC,eAAe,CAAC,EAAE,CAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAClE,IAAI,CAAC;QACV,yBAAyB,CAAC,EAAE,CAC1B,OAAO,EAAE,oCAAoC,CAAC,QAAQ,CAAC,KACpD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;YACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,SAAS,EAAE,0BAA0B,CAAC;YACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACrE,OAAO,EAAE,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;SACnF,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,iCAAiC,CAChD,QAAQ,SAAS,8BAA8B,GAAG,8BAA8B;IAEhF,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,EAAE,sCAAsC,CAAC;IAClD,SAAS,IAAI,2BAA2B,GAAG,IAAI,CAAC;IAChD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,0BAA0B,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,uCAAuC,CACrD,QAAQ,SAAS,8BAA8B,GAAG,8BAA8B,EAEhF,OAAO,EAAE,wCAAwC,CAAC,QAAQ,CAAC,GAC1D,iCAAiC,CAAC,QAAQ,CAAC,CAuG7C"}
1
+ {"version":3,"file":"host-controller.d.ts","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,15 @@ import { createPlayableLocalEditorLifecycleController, } from './lifecycle.js';
3
3
  export function createPlayableLocalEditorHostController(options) {
4
4
  let bridge = null;
5
5
  let disposed = false;
6
+ const loadingOverlay = createScopedLoadingOverlay(options.loadingOverlay);
7
+ const lifecycleLoadingOverlay = loadingOverlay.createScope();
8
+ const forgePlayLoadingOverlay = loadingOverlay.createScope();
6
9
  const harness = createDiscardHookHarness(options.harness, options.beforeDiscardAndRunGame);
7
10
  const lifecycle = createPlayableLocalEditorLifecycleController({
8
11
  harness,
9
- loadingOverlay: options.loadingOverlay,
12
+ loadingOverlay: lifecycleLoadingOverlay,
10
13
  content: options.loadingContent,
14
+ interactions: options.interactions,
11
15
  waitForPaint: options.waitForPaint,
12
16
  waitForMilliseconds: options.waitForMilliseconds,
13
17
  now: options.now,
@@ -15,6 +19,7 @@ export function createPlayableLocalEditorHostController(options) {
15
19
  viewportRevealReason: options.viewportRevealReason,
16
20
  });
17
21
  const runWithAssetLoadingOverlay = (operation) => (lifecycle.runWithAssetLoadingOverlay(operation));
22
+ const lifecycleHarness = createLifecycleHarness(harness, lifecycle);
18
23
  const ensureEditorMode = async () => {
19
24
  if (!bridge || bridge.getMode() === 'edit')
20
25
  return;
@@ -29,7 +34,7 @@ export function createPlayableLocalEditorHostController(options) {
29
34
  const createBridgeContext = (name, payload) => ({
30
35
  name,
31
36
  payload,
32
- harness,
37
+ harness: lifecycleHarness,
33
38
  ensureEditorMode,
34
39
  runWithAssetLoadingOverlay,
35
40
  postEvent,
@@ -39,7 +44,7 @@ export function createPlayableLocalEditorHostController(options) {
39
44
  bridge = installPlayableForgePlayModeBridge({
40
45
  window: options.forgePlay.window,
41
46
  harness,
42
- loadingOverlay: options.loadingOverlay,
47
+ loadingOverlay: forgePlayLoadingOverlay,
43
48
  loadingContent: {
44
49
  saveScene: options.loadingContent.saveScene,
45
50
  saveAndRunGame: options.loadingContent.saveAndRunGame,
@@ -50,6 +55,7 @@ export function createPlayableLocalEditorHostController(options) {
50
55
  waitForPaint: options.waitForPaint,
51
56
  hasUnsavedPlatformChanges: options.forgePlay.hasUnsavedPlatformChanges,
52
57
  reportError: options.forgePlay.reportError,
58
+ interactions: options.interactions,
53
59
  handleAssetDrop: options.forgePlay.handleAssetDrop
54
60
  ? payload => {
55
61
  options.forgePlay?.handleAssetDrop?.(payload, createBridgeContext('', payload));
@@ -73,12 +79,13 @@ export function createPlayableLocalEditorHostController(options) {
73
79
  });
74
80
  }
75
81
  return {
76
- harness,
82
+ harness: lifecycleHarness,
77
83
  lifecycle,
78
84
  getBridge() {
79
85
  return bridge;
80
86
  },
81
87
  enterEditor: lifecycle.enterEditor,
88
+ saveScene: () => lifecycle.saveScene('save-scene'),
82
89
  saveAndRunGame: lifecycle.saveAndRunGame,
83
90
  discardAndRunGame: lifecycle.discardAndRunGame,
84
91
  runWithAssetLoadingOverlay,
@@ -88,7 +95,54 @@ export function createPlayableLocalEditorHostController(options) {
88
95
  disposed = true;
89
96
  bridge?.dispose();
90
97
  bridge = null;
91
- options.loadingOverlay.dispose?.();
98
+ loadingOverlay.dispose();
99
+ },
100
+ };
101
+ }
102
+ function createLifecycleHarness(harness, lifecycle) {
103
+ const enterEditor = lifecycle.enterEditor;
104
+ const saveScene = () => lifecycle.saveScene('save-scene');
105
+ const saveAndRunGame = lifecycle.saveAndRunGame;
106
+ const discardAndRunGame = lifecycle.discardAndRunGame;
107
+ return new Proxy(harness, {
108
+ get(target, property) {
109
+ if (property === 'enterEditor')
110
+ return enterEditor;
111
+ if (property === 'saveScene')
112
+ return saveScene;
113
+ if (property === 'saveAndRunGame')
114
+ return saveAndRunGame;
115
+ if (property === 'discardAndRunGame')
116
+ return discardAndRunGame;
117
+ const value = Reflect.get(target, property, target);
118
+ return typeof value === 'function' ? value.bind(target) : value;
119
+ },
120
+ });
121
+ }
122
+ function createScopedLoadingOverlay(loadingOverlay) {
123
+ let owner = null;
124
+ return {
125
+ createScope() {
126
+ const scopeOwner = Symbol('playable-local-editor-loading-overlay-scope');
127
+ return {
128
+ show(content) {
129
+ owner = scopeOwner;
130
+ loadingOverlay.show(content);
131
+ },
132
+ hide() {
133
+ if (owner !== scopeOwner)
134
+ return;
135
+ owner = null;
136
+ loadingOverlay.hide();
137
+ },
138
+ isVisible() {
139
+ return loadingOverlay.isVisible();
140
+ },
141
+ };
142
+ },
143
+ dispose() {
144
+ owner = null;
145
+ loadingOverlay.dispose?.();
92
146
  },
93
147
  };
94
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"host-controller.js","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-controller.js","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export type { PlayableLocalEditorHostBridgeContext, PlayableLocalEditorHostController, PlayableLocalEditorHostControllerOptions, PlayableLocalEditorHostHarness, PlayableLocalEditorHostLoadingContent, } from './host-controller';
2
2
  export type { PlayableForgePlayBridgeHarness, PlayableForgePlayBridgeInstallOptions, PlayableForgePlayBridgeLoadingOverlay, PlayableForgePlayHistoryOperation, PlayableForgePlayHistoryOperationOptions, PlayableForgePlayHistoryOperationResult, PlayableForgePlayHistoryProjectionResult, PlayableForgePlayHistoryStateResult, PlayableForgePlayMessageEvent, PlayableForgePlayMode, PlayableForgePlayModeBridge, PlayableForgePlayOperationOrigin, PlayableForgePlayProjectionWaitPolicy, PlayableForgePlaySaveState, PlayableForgePlayWindowLike, PlayableLegacyAssetCommandBypassOptions, PlayableLegacyAssetCommandBypassWindowLike, } from './forge-play-types';
3
- export type { PlayableLocalEditorLifecycleContent, PlayableLocalEditorLifecycleController, PlayableLocalEditorLifecycleControllerOptions, PlayableLocalEditorLifecycleHarness, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorLoadingOverlayController, } from './types';
3
+ export type { PlayableLocalEditorLifecycleContent, PlayableLocalEditorLifecycleController, PlayableLocalEditorLifecycleControllerOptions, PlayableLocalEditorDataSafetyOperation, PlayableLocalEditorDiscardConfirmationInput, PlayableLocalEditorLifecycleHarness, PlayableLocalEditorInteractionPolicy, PlayableLocalEditorLoadingOverlayContent, PlayableLocalEditorLoadingOverlayController, PlayableLocalEditorSaveFailureInput, PlayableLocalEditorSaveFailureState, PlayableLocalEditorUnsavedChangesState, } from './types';
4
4
  export type { PlayableProjectAssetCommandAsset, PlayableProjectAssetCommandCreateResult, PlayableProjectAssetCommandHandler, PlayableProjectAssetCommandHandlerOptions, PlayableProjectAssetCommandHarness, PlayableProjectAssetCommandReloadResult, } from './project-asset-commands';
5
5
  export { createPlayableLocalEditorHostController, } from './host-controller';
6
6
  export { createPlayableProjectAssetCommandHandler, } from './project-asset-commands';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oCAAoC,EACpC,iCAAiC,EACjC,wCAAwC,EACxC,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,8BAA8B,EAC9B,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EACxC,uCAAuC,EACvC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,0BAA0B,EAC1B,2BAA2B,EAC3B,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mCAAmC,EACnC,sCAAsC,EACtC,6CAA6C,EAC7C,mCAAmC,EACnC,wCAAwC,EACxC,2CAA2C,GAC5C,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,yCAAyC,EACzC,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4CAA4C,GAC7C,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,uCAAuC,EACvC,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,yCAAyC,EACzC,mCAAmC,EACnC,sCAAsC,EACtC,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oCAAoC,EACpC,iCAAiC,EACjC,wCAAwC,EACxC,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,8BAA8B,EAC9B,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,wCAAwC,EACxC,uCAAuC,EACvC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,qCAAqC,EACrC,0BAA0B,EAC1B,2BAA2B,EAC3B,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mCAAmC,EACnC,sCAAsC,EACtC,6CAA6C,EAC7C,sCAAsC,EACtC,2CAA2C,EAC3C,mCAAmC,EACnC,oCAAoC,EACpC,wCAAwC,EACxC,2CAA2C,EAC3C,mCAAmC,EACnC,mCAAmC,EACnC,sCAAsC,GACvC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,yCAAyC,EACzC,kCAAkC,EAClC,uCAAuC,GACxC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4CAA4C,GAC7C,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,uCAAuC,EACvC,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,yCAAyC,EACzC,mCAAmC,EACnC,sCAAsC,EACtC,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AA0CA,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4CAA4C,GAC7C,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,uCAAuC,EACvC,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,yCAAyC,EACzC,mCAAmC,EACnC,sCAAsC,EACtC,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-harness/index.ts"],"names":[],"mappings":"AAgDA,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wCAAwC,GACzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4CAA4C,GAC7C,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uCAAuC,GACxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gCAAgC,EAChC,0CAA0C,EAC1C,uCAAuC,EACvC,kCAAkC,EAClC,qCAAqC,EACrC,iCAAiC,EACjC,2BAA2B,EAC3B,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,0CAA0C,EAC1C,yCAAyC,EACzC,mCAAmC,EACnC,sCAAsC,EACtC,0BAA0B,EAC1B,4CAA4C,EAC5C,8BAA8B,GAC/B,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,sCAAsC,EACtC,6CAA6C,EAE9C,MAAM,SAAS,CAAC;AAEjB,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,6CAA6C,GACrD,sCAAsC,CA2ExC"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,sCAAsC,EACtC,6CAA6C,EAK9C,MAAM,SAAS,CAAC;AAEjB,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,6CAA6C,GACrD,sCAAsC,CAwIxC"}
@@ -12,6 +12,61 @@ export function createPlayableLocalEditorLifecycleController(options) {
12
12
  if (!options.loadingOverlay.isVisible())
13
13
  options.loadingOverlay.show(content);
14
14
  };
15
+ const notifySaveFailed = async (operation, error) => {
16
+ const notify = options.interactions?.notifySaveFailed;
17
+ if (!notify)
18
+ return;
19
+ let state;
20
+ try {
21
+ state = options.harness.getSaveFailureState?.();
22
+ }
23
+ catch (stateError) {
24
+ console.error('[PlayableLocalEditorLifecycle] save failure state unavailable', stateError);
25
+ }
26
+ const input = {
27
+ operation,
28
+ status: state?.status ?? (error instanceof Error ? error.message : undefined),
29
+ details: state?.details,
30
+ error: error ?? state?.error,
31
+ };
32
+ try {
33
+ await notify(input);
34
+ }
35
+ catch (notifyError) {
36
+ console.error('[PlayableLocalEditorLifecycle] save failure notification failed', notifyError);
37
+ }
38
+ };
39
+ const saveScene = async (operation = 'save-scene') => {
40
+ try {
41
+ const saved = await options.harness.saveScene();
42
+ if (!saved)
43
+ await notifySaveFailed(operation);
44
+ return saved;
45
+ }
46
+ catch (error) {
47
+ await notifySaveFailed(operation, error);
48
+ throw error;
49
+ }
50
+ };
51
+ const readUnsavedChangesState = () => (options.harness.getUnsavedChangesState?.() ?? {
52
+ dirty: false,
53
+ hasWorkingDocument: false,
54
+ });
55
+ const confirmDiscardIfNeeded = async (operation) => {
56
+ const unsavedChanges = readUnsavedChangesState();
57
+ if (!unsavedChanges.dirty || !unsavedChanges.hasWorkingDocument)
58
+ return true;
59
+ try {
60
+ return await options.interactions?.confirmDiscardUnsavedChanges?.({
61
+ operation,
62
+ unsavedChanges,
63
+ }) !== false;
64
+ }
65
+ catch (error) {
66
+ console.error('[PlayableLocalEditorLifecycle] discard confirmation failed', error);
67
+ return false;
68
+ }
69
+ };
15
70
  return {
16
71
  async enterEditor() {
17
72
  options.loadingOverlay.show(options.content.enter);
@@ -29,11 +84,12 @@ export function createPlayableLocalEditorLifecycleController(options) {
29
84
  options.harness.notifyViewportRevealed?.(viewportRevealReason);
30
85
  }
31
86
  },
87
+ saveScene,
32
88
  async saveAndRunGame() {
33
89
  showLoadingOverlayIfNeeded(options.content.saveAndRunGame);
34
90
  try {
35
91
  await waitForPaint();
36
- const saved = await options.harness.saveScene();
92
+ const saved = await saveScene('save-and-run-game');
37
93
  if (!saved)
38
94
  return false;
39
95
  await options.harness.discardAndRunGame();
@@ -44,6 +100,8 @@ export function createPlayableLocalEditorLifecycleController(options) {
44
100
  }
45
101
  },
46
102
  async discardAndRunGame() {
103
+ if (!await confirmDiscardIfNeeded('discard-and-run-game'))
104
+ return;
47
105
  showLoadingOverlayIfNeeded(options.content.discardAndRunGame);
48
106
  try {
49
107
  await waitForPaint();
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,35 @@ export interface PlayableLocalEditorLoadingOverlayController {
8
8
  isVisible(): boolean;
9
9
  dispose(): void;
10
10
  }
11
+ export type PlayableLocalEditorDataSafetyOperation = 'save-scene' | 'save-and-run-game' | 'discard-and-run-game' | 'forge-play-mode-change' | 'forge-play-document-export' | 'forge-play-document-commit';
12
+ export interface PlayableLocalEditorUnsavedChangesState {
13
+ dirty: boolean;
14
+ hasWorkingDocument: boolean;
15
+ }
16
+ export interface PlayableLocalEditorSaveFailureState {
17
+ status?: string;
18
+ details?: string;
19
+ error?: unknown;
20
+ }
21
+ export interface PlayableLocalEditorSaveFailureInput extends PlayableLocalEditorSaveFailureState {
22
+ operation: PlayableLocalEditorDataSafetyOperation;
23
+ }
24
+ export interface PlayableLocalEditorDiscardConfirmationInput {
25
+ operation: PlayableLocalEditorDataSafetyOperation;
26
+ unsavedChanges: PlayableLocalEditorUnsavedChangesState;
27
+ }
28
+ export interface PlayableLocalEditorInteractionPolicy {
29
+ confirmDiscardUnsavedChanges?(input: PlayableLocalEditorDiscardConfirmationInput): boolean | Promise<boolean>;
30
+ notifySaveFailed?(input: PlayableLocalEditorSaveFailureInput): void | Promise<void>;
31
+ }
11
32
  export interface PlayableLocalEditorLifecycleHarness {
12
33
  enterEditor(): Promise<void>;
13
34
  saveScene(): Promise<boolean>;
14
35
  discardAndRunGame(): Promise<void>;
15
36
  render(): void;
16
37
  notifyViewportRevealed?(reason?: string): void;
38
+ getUnsavedChangesState?(): PlayableLocalEditorUnsavedChangesState;
39
+ getSaveFailureState?(): PlayableLocalEditorSaveFailureState | null;
17
40
  }
18
41
  export interface PlayableLocalEditorLifecycleContent {
19
42
  enter: PlayableLocalEditorLoadingOverlayContent;
@@ -25,6 +48,7 @@ export interface PlayableLocalEditorLifecycleControllerOptions {
25
48
  harness: PlayableLocalEditorLifecycleHarness;
26
49
  loadingOverlay: Pick<PlayableLocalEditorLoadingOverlayController, 'show' | 'hide' | 'isVisible'>;
27
50
  content: PlayableLocalEditorLifecycleContent;
51
+ interactions?: PlayableLocalEditorInteractionPolicy;
28
52
  waitForPaint?: () => Promise<void>;
29
53
  waitForMilliseconds?: (milliseconds: number) => Promise<void>;
30
54
  now?: () => number;
@@ -33,6 +57,7 @@ export interface PlayableLocalEditorLifecycleControllerOptions {
33
57
  }
34
58
  export interface PlayableLocalEditorLifecycleController {
35
59
  enterEditor(): Promise<void>;
60
+ saveScene(operation?: PlayableLocalEditorDataSafetyOperation): Promise<boolean>;
36
61
  saveAndRunGame(): Promise<boolean>;
37
62
  discardAndRunGame(): Promise<void>;
38
63
  runWithAssetLoadingOverlay<T>(operation: () => Promise<T>): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/local-harness/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wCAAwC;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2CAA2C;IAC1D,IAAI,CAAC,OAAO,EAAE,wCAAwC,GAAG,IAAI,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC;IACb,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mCAAmC;IAClD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,IAAI,IAAI,CAAC;IACf,sBAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,mCAAmC;IAClD,KAAK,EAAE,wCAAwC,CAAC;IAChD,cAAc,EAAE,wCAAwC,CAAC;IACzD,iBAAiB,EAAE,wCAAwC,CAAC;IAC5D,WAAW,EAAE,wCAAwC,CAAC;CACvD;AAED,MAAM,WAAW,6CAA6C;IAC5D,OAAO,EAAE,mCAAmC,CAAC;IAC7C,cAAc,EAAE,IAAI,CAAC,2CAA2C,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC;IACjG,OAAO,EAAE,mCAAmC,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,sCAAsC;IACrD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,0BAA0B,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACxE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/local-harness/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/material-binding/binding.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,wBAAwB,EACxB,qCAAqC,EACrC,qCAAqC,EACrC,0BAA0B,EAC1B,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EAGlC,MAAM,SAAS,CAAC;AAEjB,wBAAgB,4BAA4B,CAC1C,cAAc,SAAS,wBAAwB,GAAG,wBAAwB,EAE1E,QAAQ,EAAE,IAAI,CAAC,2BAA2B,CAAC,6BAA6B,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,EACnG,eAAe,EAAE,MAAM,GACtB,cAAc,GAAG,IAAI,CAGvB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,EACpD,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED,wBAAgB,uCAAuC,CACrD,cAAc,SAAS,wBAAwB,GAAG,wBAAwB,EAE1E,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,EACtD,aAAa,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAC/C,iCAAiC,CAAC,cAAc,CAAC,CAgBnD;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,EAC/D,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAMV;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,EAC/D,eAAe,EAAE,MAAM,GACtB,6BAA6B,EAAE,CAKjC;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,EAC/D,eAAe,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,qCAAqC,GAC3C,qCAAqC,CAmBvC;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,GAC9D,6BAA6B,EAAE,CA4DjC;AAED,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,GAC9D,uCAAuC,CA4BzC;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACrD,UAAU,EAAE,6BAA6B,GACxC,iCAAiC,EAAE,CAiBrC;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACrD,UAAU,EAAE,6BAA6B,GACxC,iCAAiC,EAAE,CAYrC;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,OAAO,GAAG,iCAAiC,GAAG,IAAI,CAoD9G"}
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../src/material-binding/binding.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,wBAAwB,EACxB,qCAAqC,EACrC,qCAAqC,EACrC,0BAA0B,EAC1B,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EAGlC,MAAM,SAAS,CAAC;AAOjB,wBAAgB,4BAA4B,CAC1C,cAAc,SAAS,wBAAwB,GAAG,wBAAwB,EAE1E,QAAQ,EAAE,IAAI,CAAC,2BAA2B,CAAC,6BAA6B,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,EACnG,eAAe,EAAE,MAAM,GACtB,cAAc,GAAG,IAAI,CAGvB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,CAAC,EACpD,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED,wBAAgB,uCAAuC,CACrD,cAAc,SAAS,wBAAwB,GAAG,wBAAwB,EAE1E,OAAO,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS,EACtD,aAAa,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAC/C,iCAAiC,CAAC,cAAc,CAAC,CAgBnD;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,EAC/D,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAMV;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,EAC/D,eAAe,EAAE,MAAM,GACtB,6BAA6B,EAAE,CAKjC;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,EAC/D,eAAe,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,qCAAqC,GAC3C,qCAAqC,CAmBvC;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,GAC9D,6BAA6B,EAAE,CA4DjC;AAED,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,QAAQ,CAAC,GAC9D,uCAAuC,CA4BzC;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACrD,UAAU,EAAE,6BAA6B,GACxC,iCAAiC,EAAE,CAiBrC;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,EACrD,UAAU,EAAE,6BAA6B,GACxC,iCAAiC,EAAE,CAYrC;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,OAAO,GAAG,iCAAiC,GAAG,IAAI,CA0D9G"}