@fps-games/editor 0.1.7-beta.4 → 0.1.8-beta.1
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.
- package/dist/agent-bridge/capabilities/assets.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/assets.js +12 -7
- package/dist/agent-bridge/capabilities/assets.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js +4 -2
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js +50 -0
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
- package/dist/agent-bridge/capability-sources.js +4 -1
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/build-info.json +15 -15
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/local-editor-harness.d.ts +4 -0
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +146 -54
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-performance-stats.d.ts.map +1 -1
- package/dist/local-editor-performance-stats.js +7 -0
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +5 -1
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +75 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.d.ts +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts +6 -2
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js +94 -24
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts +6 -2
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +7 -0
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.d.ts +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/monitor.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.d.ts +14 -0
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js +121 -2
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +1 -5
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +19 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +882 -43
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +96 -35
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +26 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +187 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +102 -2
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +17 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +84 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +3 -3
- package/node_modules/@fps-games/editor-core/package.json +2 -2
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +198 -53
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +89 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +60 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +62 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +27 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +29 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +34 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +6 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +30 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js +18 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +3 -3
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +13 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +29 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +1 -1
- 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
|
-
|
|
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
|
|
332
|
+
const saved = await saveScene('forge-play-mode-change');
|
|
259
333
|
if (!saved) {
|
|
260
334
|
if (exitLoadingContent)
|
|
261
335
|
options.loadingOverlay.hide();
|
|
262
|
-
|
|
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
|
|
365
|
+
const originalMode = currentMode;
|
|
366
|
+
const saved = await saveScene('forge-play-document-commit');
|
|
289
367
|
if (!saved) {
|
|
290
|
-
|
|
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
|
|
357
|
-
|
|
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":"AAAA,OAAO,EACL,+BAA+B,GAChC,MAAM,UAAU,CAAC;AAclB,MAAM,CAAC,MAAM,iCAAiC,GAAG,wBAAwB,CAAC;AAE1E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,aAAa;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,uBAAuB,EAAE,yBAAyB;IAClD,yBAAyB,EAAE,2BAA2B;IACtD,YAAY,EAAE,cAAc;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,iCAAiC,GAAsC;IAClF,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC3E,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACtF,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IACxE,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,EAAE,CAAC,qBAAqB,CAAC;IACxE,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,EAAE,CAAC,qBAAqB,CAAC;IACxE,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,CAAC,mBAAmB,CAAC;IACpE,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,EAAE,CAAC,qBAAqB,CAAC;IACxE,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,EAAE,CAAC,yBAAyB,CAAC;IAChF,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,EAAE,CAAC,2BAA2B,CAAC;IACpF,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAA2B;IACzE,aAAa,EAAE,2BAA2B,CAAC,WAAW;IACtD,cAAc,EAAE,2BAA2B,CAAC,IAAI;IAChD,cAAc,EAAE,2BAA2B,CAAC,IAAI;IAChD,iBAAiB,EAAE,2BAA2B,CAAC,eAAe;IAC9D,iBAAiB,EAAE,2BAA2B,CAAC,eAAe;IAC9D,cAAc,EAAE,2BAA2B,CAAC,YAAY;IACxD,uBAAuB,EAAE,2BAA2B,CAAC,qBAAqB;IAC1E,oBAAoB,EAAE,2BAA2B,CAAC,kBAAkB;IACpE,aAAa,EAAE,2BAA2B,CAAC,WAAW;IACtD,eAAe,EAAE,2BAA2B,CAAC,aAAa;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,0CAA0C,GAAG,IAAI,GAAG,CAAS;IACxE,2BAA2B,CAAC,YAAY;IACxC,2BAA2B,CAAC,qBAAqB;IACjD,2BAA2B,CAAC,kBAAkB;IAC9C,2BAA2B,CAAC,aAAa;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAAS;IAClE,2BAA2B,CAAC,IAAI;IAChC,2BAA2B,CAAC,IAAI;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yCAAyC,GAAG,4BAA4B,CAAC;AACtF,MAAM,CAAC,MAAM,sCAAsC,GAAG,qCAAqC,CAAC;AAC5F,MAAM,CAAC,MAAM,mCAAmC,GAAG,8BAA8B,CAAC;AAElF,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,gBAAgB,EAAE,CAAC;QACnB,iBAAiB,EAAE,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,KAAc;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,mCAAmC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgC;IAC7E,OAAO,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;QACtE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;QAC1B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,4CAA4C,CAC1D,OAAgC;IAEhC,OAAO;QACL,MAAM,EAAE,kCAAkC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1D,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0CAA0C,CACxD,SAA4C;IAE5C,OAAO,SAAS,KAAK,MAAM;QACzB,CAAC,CAAC,yBAAyB,CAAC,mBAAmB;QAC/C,CAAC,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAAuD,EACvD,IAAY,EACZ,UAAmC,EAAE;IAErC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAM,UAAsB;QAAE,OAAO;IAChF,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAQ,EAAE;QACvC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC;YAC7B,MAAM,EAAE,iCAAiC;YACzC,IAAI,EAAE,gCAAgC,CAAC,KAAK;YAC5C,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,KAAK,MAAM,KAAK,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAClE,IAAI,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAc;IACxD,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;QAChE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,OAAgD;IAEhD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,YAAY,GAAG;QACtD,CAAC,CAAC,OAAO,CAAC,YAAY;QACtB,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,0CAA0C,CAAC,CAAC;IAChF,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,qCAAqC,CAAC;IACnG,MAAM,YAAY,GAAG,OAAO,CAAC,MAA4C,CAAC;IAE1E,MAAM,kBAAkB,GAAG,GAAS,EAAE;QACpC,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;QACnF,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACrE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,aAAa;eAC/B,mBAAmB;eACnB,CAAC,cAAc,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,yCAAyC,CAAC;YAAE,OAAO;QAEzF,MAAM,cAAc,GAAG,kBAAkB,CAAC,cAAc,CAAC,sCAAsC,CAAC,CAAC,IAAI,cAAc,CAAC;QACpH,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,MAA+B;gBAC/D,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACjD,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBACD,MAAM,qBAAqB,GAAG,cAAc,CAAC,aAAa,CAAC;gBAC3D,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;oBAChD,MAAM,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YACD,CAAC,yCAAyC,CAAC,EAAE,IAAI;YACjD,CAAC,sCAAsC,CAAC,EAAE,cAAc;SACzD,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,CAAC,OAAO,KAAK,cAAc;gBAAE,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YACxE,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC;QACpC,CAAC;QACD,YAAY,CAAC,2BAA2B,GAAG,KAAK,CAAC;IACnD,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAS,EAAE;QACtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,mCAAmC,CAAC;YAAE,OAAO;QACnE,MAAM,gBAAgB,GAAG,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YACzE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAC9B,MAAM,CAAC,qBAAqB,GAAG,CAAC,OAAgB,EAAE,EAAE;YAClD,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC1B,kBAAkB,EAAE,CAAC;QACvB,CAAC,CAAC;QACF,MAAM,CAAC,mCAAmC,CAAC,GAAG,IAAI,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,YAAY,EAAE,CAAC;IACf,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC;IAC3F,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,OAA8C;IAE9C,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC;IAChD,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,gCAAgC,EAAE,CAAC;IACrD,IAAI,gBAAgB,GAAY,IAAI,CAAC;IACrC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,+BAA+B,CAAC;IAC7E,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAC9D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,UAAmC,EAAE,EAAQ,EAAE;QAC9E,0BAA0B,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAS,EAAE;QACvC,IAAI,gBAAgB,IAAI,IAAI;YAAE,OAAO;QACrC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC9C,gBAAgB,GAAG,IAAI,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,OAA6E,EAAQ,EAAE;QAC9G,qBAAqB,EAAE,CAAC;QACxB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,GAAS,EAAE;QACzC,qBAAqB,EAAE,CAAC;QACxB,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAChD,gBAAgB,GAAG,IAAI,CAAC;YACxB,IAAI,WAAW,KAAK,MAAM;gBAAE,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC5D,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,YAAmC,EAAQ,EAAE;QAC1F,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7B,SAAS,CAAC,yBAAyB,CAAC,YAAY,EAAE;YAChD,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC,CAAC;QACH,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,CACjC,SAA4C,EAC5C,OAAgC,EAChC,MAA+C,EACzC,EAAE;QACR,MAAM,SAAS,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QAC1D,SAAS,CAAC,0CAA0C,CAAC,SAAS,CAAC,EAAE;YAC/D,GAAG,MAAM;YACT,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EACtB,IAA2B,EAC3B,gBAAoC,EAAE,EACvB,EAAE;QACjB,MAAM,kBAAkB,GAAG,IAAI,KAAK,MAAM;YACxC,CAAC,CAAC,aAAa,CAAC,IAAI,KAAK,IAAI;gBAC3B,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc;gBACvC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB;YAC5C,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,IAAI,CAAC;QAEtG,IAAI,QAAQ;YAAE,MAAM,QAAQ,CAAC;QAC7B,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC7C,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACrB,IAAI,kBAAkB,EAAE,CAAC;gBACvB,eAAe,CAAC,kBAAkB,CAAC,CAAC;gBACpC,MAAM,YAAY,EAAE,CAAC;YACvB,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC;oBAC/B,SAAS,CAAC,iBAAiB,GAAG,CAAC,CAAC;oBAChC,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBACpC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACzB,WAAW,GAAG,MAAM,CAAC;oBACrB,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;oBACnE,OAAO;gBACT,CAAC;gBAED,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChC,MAAM,0BAA0B,GAAG,SAAS,CAAC,gBAAgB,GAAG,CAAC;2BAC5D,SAAS,CAAC,gBAAgB,KAAK,SAAS,CAAC,iBAAiB;2BAC1D,OAAO,CAAC,yBAAyB,EAAE,EAAE,KAAK,IAAI,CAAC;oBACpD,IAAI,CAAC,0BAA0B,EAAE,CAAC;wBAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;wBAChD,IAAI,CAAC,KAAK,EAAE,CAAC;4BACX,IAAI,kBAAkB;gCAAE,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;4BACtD,qBAAqB,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;4BACxD,OAAO;wBACT,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC1C,WAAW,GAAG,MAAM,CAAC;gBACrB,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,kBAAkB;oBAAE,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACnD,IAAI,QAAQ;YAAE,MAAM,QAAQ,CAAC;QAE7B,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,qBAAqB,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YACD,IAAI,SAAS,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACnC,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,EAC/B,SAA4C,EAC5C,OAAgC,EACjB,EAAE;QACjB,MAAM,cAAc,GAAG,4CAA4C,CAAC,OAAO,CAAC,CAAC;QAC7E,IAAI,CAAC;YACH,IAAI,WAAW,KAAK,MAAM;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACnF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,+CAA+C,CAC5F,SAAS,EACT,cAAc,EACd,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CACrC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACnE,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,0BAA0B,CAAC,SAAS,EAAE,OAAO,EAAE,+CAA+C,CAC5F,SAAS,EACT,cAAc,EACd,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EACpC,KAAK,CACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAoC,EAAQ,EAAE;QAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QACnD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,iCAAiC;YAAE,OAAO;QACjE,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAgC,CAAC,OAAO;YAAE,OAAO;QACtE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,qCAAqC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAExE,IAAI,WAAW,KAAK,2BAA2B,CAAC,WAAW,EAAE,CAAC;YAC5D,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,WAAW,IAAI,0CAA0C,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/E,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,OAAO,CAAC,yBAAyB;gBAC/C,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC;gBACzD,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,SAAS,CAAC,yBAAyB,CAAC,YAAY,EAAE;oBAChD,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,WAAW,IAAI,oCAAoC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACzE,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC;YACnC,KAAK,mBAAmB,CACtB,WAAW,KAAK,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAClE,OAAO,CACR,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,WAAW,KAAK,2BAA2B,CAAC,eAAe,EAAE,CAAC;YAChE,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc;gBACrC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;gBAC3D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5B,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC9B,SAAS,CAAC,yBAAyB,CAAC,iBAAiB,EAAE;oBACrD,GAAG,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,8BAA8B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1G,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACX,uBAAuB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,WAAW,KAAK,2BAA2B,CAAC,eAAe,EAAE,CAAC;YAChE,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAClD,KAAK,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC9B,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACX,uBAAuB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,WAAW,KAAK,2BAA2B,CAAC,WAAW;YAAE,OAAO;QAEpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE9D,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,GAAS,EAAE;QACjC,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACxE,SAAS,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACjD,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc;QAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;;QAC7E,eAAe,EAAE,CAAC;IAEvB,OAAO;QACL,UAAU;QACV,kBAAkB;QAClB,OAAO;YACL,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,YAAY;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO;YACL,qBAAqB,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,+CAA+C,CACtD,SAA4C,EAC5C,OAAiD,EACjD,eAA+B,EAC/B,KAAe;IAEf,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC;IAC7B,OAAO;QACL,EAAE,EAAE,KAAK;QACT,SAAS;QACT,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;QACjC,iBAAiB;QACjB,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,IAAI;QACtB,eAAe;QACf,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,SAAS;YACpD,CAAC,CAAC,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,cAAc;QAC3D,UAAU,EAAE;YACV,UAAU,EAAE,iBAAiB;YAC7B,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI;SAChB;QACD,KAAK,EAAE,MAAM;YACX,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,CAAC,CAAC,WAAW,SAAS,oBAAoB;KAC7C,CAAC;AACJ,CAAC"}
|
|
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,8 @@ export interface PlayableLocalEditorHostControllerOptions<THarness extends Playa
|
|
|
27
27
|
now?: () => number;
|
|
28
28
|
minAssetLoadingOverlayMs?: number;
|
|
29
29
|
viewportRevealReason?: string;
|
|
30
|
+
renderAfterEnter?: boolean;
|
|
31
|
+
interactions?: PlayableLocalEditorInteractionPolicy;
|
|
30
32
|
forgePlay?: {
|
|
31
33
|
enabled?: boolean;
|
|
32
34
|
window?: PlayableForgePlayWindowLike;
|
|
@@ -49,6 +51,7 @@ export interface PlayableLocalEditorHostController<THarness extends PlayableLoca
|
|
|
49
51
|
lifecycle: PlayableLocalEditorLifecycleController;
|
|
50
52
|
getBridge(): PlayableForgePlayModeBridge | null;
|
|
51
53
|
enterEditor(): Promise<void>;
|
|
54
|
+
saveScene(): Promise<boolean>;
|
|
52
55
|
saveAndRunGame(): Promise<boolean>;
|
|
53
56
|
discardAndRunGame(): Promise<void>;
|
|
54
57
|
runWithAssetLoadingOverlay<T>(operation: () => Promise<T>): Promise<T>;
|
package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-controller.d.ts","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"host-controller.d.ts","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,18 +3,24 @@ 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:
|
|
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,
|
|
14
18
|
minAssetLoadingOverlayMs: options.minAssetLoadingOverlayMs,
|
|
15
19
|
viewportRevealReason: options.viewportRevealReason,
|
|
20
|
+
renderAfterEnter: options.renderAfterEnter,
|
|
16
21
|
});
|
|
17
22
|
const runWithAssetLoadingOverlay = (operation) => (lifecycle.runWithAssetLoadingOverlay(operation));
|
|
23
|
+
const lifecycleHarness = createLifecycleHarness(harness, lifecycle);
|
|
18
24
|
const ensureEditorMode = async () => {
|
|
19
25
|
if (!bridge || bridge.getMode() === 'edit')
|
|
20
26
|
return;
|
|
@@ -29,7 +35,7 @@ export function createPlayableLocalEditorHostController(options) {
|
|
|
29
35
|
const createBridgeContext = (name, payload) => ({
|
|
30
36
|
name,
|
|
31
37
|
payload,
|
|
32
|
-
harness,
|
|
38
|
+
harness: lifecycleHarness,
|
|
33
39
|
ensureEditorMode,
|
|
34
40
|
runWithAssetLoadingOverlay,
|
|
35
41
|
postEvent,
|
|
@@ -39,7 +45,7 @@ export function createPlayableLocalEditorHostController(options) {
|
|
|
39
45
|
bridge = installPlayableForgePlayModeBridge({
|
|
40
46
|
window: options.forgePlay.window,
|
|
41
47
|
harness,
|
|
42
|
-
loadingOverlay:
|
|
48
|
+
loadingOverlay: forgePlayLoadingOverlay,
|
|
43
49
|
loadingContent: {
|
|
44
50
|
saveScene: options.loadingContent.saveScene,
|
|
45
51
|
saveAndRunGame: options.loadingContent.saveAndRunGame,
|
|
@@ -50,6 +56,7 @@ export function createPlayableLocalEditorHostController(options) {
|
|
|
50
56
|
waitForPaint: options.waitForPaint,
|
|
51
57
|
hasUnsavedPlatformChanges: options.forgePlay.hasUnsavedPlatformChanges,
|
|
52
58
|
reportError: options.forgePlay.reportError,
|
|
59
|
+
interactions: options.interactions,
|
|
53
60
|
handleAssetDrop: options.forgePlay.handleAssetDrop
|
|
54
61
|
? payload => {
|
|
55
62
|
options.forgePlay?.handleAssetDrop?.(payload, createBridgeContext('', payload));
|
|
@@ -73,12 +80,13 @@ export function createPlayableLocalEditorHostController(options) {
|
|
|
73
80
|
});
|
|
74
81
|
}
|
|
75
82
|
return {
|
|
76
|
-
harness,
|
|
83
|
+
harness: lifecycleHarness,
|
|
77
84
|
lifecycle,
|
|
78
85
|
getBridge() {
|
|
79
86
|
return bridge;
|
|
80
87
|
},
|
|
81
88
|
enterEditor: lifecycle.enterEditor,
|
|
89
|
+
saveScene: () => lifecycle.saveScene('save-scene'),
|
|
82
90
|
saveAndRunGame: lifecycle.saveAndRunGame,
|
|
83
91
|
discardAndRunGame: lifecycle.discardAndRunGame,
|
|
84
92
|
runWithAssetLoadingOverlay,
|
|
@@ -88,7 +96,54 @@ export function createPlayableLocalEditorHostController(options) {
|
|
|
88
96
|
disposed = true;
|
|
89
97
|
bridge?.dispose();
|
|
90
98
|
bridge = null;
|
|
91
|
-
|
|
99
|
+
loadingOverlay.dispose();
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function createLifecycleHarness(harness, lifecycle) {
|
|
104
|
+
const enterEditor = lifecycle.enterEditor;
|
|
105
|
+
const saveScene = () => lifecycle.saveScene('save-scene');
|
|
106
|
+
const saveAndRunGame = lifecycle.saveAndRunGame;
|
|
107
|
+
const discardAndRunGame = lifecycle.discardAndRunGame;
|
|
108
|
+
return new Proxy(harness, {
|
|
109
|
+
get(target, property) {
|
|
110
|
+
if (property === 'enterEditor')
|
|
111
|
+
return enterEditor;
|
|
112
|
+
if (property === 'saveScene')
|
|
113
|
+
return saveScene;
|
|
114
|
+
if (property === 'saveAndRunGame')
|
|
115
|
+
return saveAndRunGame;
|
|
116
|
+
if (property === 'discardAndRunGame')
|
|
117
|
+
return discardAndRunGame;
|
|
118
|
+
const value = Reflect.get(target, property, target);
|
|
119
|
+
return typeof value === 'function' ? value.bind(target) : value;
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function createScopedLoadingOverlay(loadingOverlay) {
|
|
124
|
+
let owner = null;
|
|
125
|
+
return {
|
|
126
|
+
createScope() {
|
|
127
|
+
const scopeOwner = Symbol('playable-local-editor-loading-overlay-scope');
|
|
128
|
+
return {
|
|
129
|
+
show(content) {
|
|
130
|
+
owner = scopeOwner;
|
|
131
|
+
loadingOverlay.show(content);
|
|
132
|
+
},
|
|
133
|
+
hide() {
|
|
134
|
+
if (owner !== scopeOwner)
|
|
135
|
+
return;
|
|
136
|
+
owner = null;
|
|
137
|
+
loadingOverlay.hide();
|
|
138
|
+
},
|
|
139
|
+
isVisible() {
|
|
140
|
+
return loadingOverlay.isVisible();
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
},
|
|
144
|
+
dispose() {
|
|
145
|
+
owner = null;
|
|
146
|
+
loadingOverlay.dispose?.();
|
|
92
147
|
},
|
|
93
148
|
};
|
|
94
149
|
}
|
package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-controller.js","sourceRoot":"","sources":["../../src/local-harness/host-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAOtB,OAAO,EACL,4CAA4C,GAC7C,MAAM,aAAa,CAAC;
|
|
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,
|
|
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":"
|
|
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,
|
|
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,CAyIxC"}
|
|
@@ -5,6 +5,7 @@ export function createPlayableLocalEditorLifecycleController(options) {
|
|
|
5
5
|
const now = options.now ?? (() => Date.now());
|
|
6
6
|
const minAssetLoadingOverlayMs = options.minAssetLoadingOverlayMs ?? 500;
|
|
7
7
|
const viewportRevealReason = options.viewportRevealReason ?? 'editor-loading-overlay-hidden';
|
|
8
|
+
const renderAfterEnter = options.renderAfterEnter ?? true;
|
|
8
9
|
let assetLoadingCount = 0;
|
|
9
10
|
let assetLoadingOverlayOwned = false;
|
|
10
11
|
let assetLoadingOverlayShownAt = 0;
|
|
@@ -12,6 +13,61 @@ export function createPlayableLocalEditorLifecycleController(options) {
|
|
|
12
13
|
if (!options.loadingOverlay.isVisible())
|
|
13
14
|
options.loadingOverlay.show(content);
|
|
14
15
|
};
|
|
16
|
+
const notifySaveFailed = async (operation, error) => {
|
|
17
|
+
const notify = options.interactions?.notifySaveFailed;
|
|
18
|
+
if (!notify)
|
|
19
|
+
return;
|
|
20
|
+
let state;
|
|
21
|
+
try {
|
|
22
|
+
state = options.harness.getSaveFailureState?.();
|
|
23
|
+
}
|
|
24
|
+
catch (stateError) {
|
|
25
|
+
console.error('[PlayableLocalEditorLifecycle] save failure state unavailable', stateError);
|
|
26
|
+
}
|
|
27
|
+
const input = {
|
|
28
|
+
operation,
|
|
29
|
+
status: state?.status ?? (error instanceof Error ? error.message : undefined),
|
|
30
|
+
details: state?.details,
|
|
31
|
+
error: error ?? state?.error,
|
|
32
|
+
};
|
|
33
|
+
try {
|
|
34
|
+
await notify(input);
|
|
35
|
+
}
|
|
36
|
+
catch (notifyError) {
|
|
37
|
+
console.error('[PlayableLocalEditorLifecycle] save failure notification failed', notifyError);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const saveScene = async (operation = 'save-scene') => {
|
|
41
|
+
try {
|
|
42
|
+
const saved = await options.harness.saveScene();
|
|
43
|
+
if (!saved)
|
|
44
|
+
await notifySaveFailed(operation);
|
|
45
|
+
return saved;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
await notifySaveFailed(operation, error);
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const readUnsavedChangesState = () => (options.harness.getUnsavedChangesState?.() ?? {
|
|
53
|
+
dirty: false,
|
|
54
|
+
hasWorkingDocument: false,
|
|
55
|
+
});
|
|
56
|
+
const confirmDiscardIfNeeded = async (operation) => {
|
|
57
|
+
const unsavedChanges = readUnsavedChangesState();
|
|
58
|
+
if (!unsavedChanges.dirty || !unsavedChanges.hasWorkingDocument)
|
|
59
|
+
return true;
|
|
60
|
+
try {
|
|
61
|
+
return await options.interactions?.confirmDiscardUnsavedChanges?.({
|
|
62
|
+
operation,
|
|
63
|
+
unsavedChanges,
|
|
64
|
+
}) !== false;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error('[PlayableLocalEditorLifecycle] discard confirmation failed', error);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
15
71
|
return {
|
|
16
72
|
async enterEditor() {
|
|
17
73
|
options.loadingOverlay.show(options.content.enter);
|
|
@@ -20,7 +76,8 @@ export function createPlayableLocalEditorLifecycleController(options) {
|
|
|
20
76
|
await waitForPaint();
|
|
21
77
|
await options.harness.enterEditor();
|
|
22
78
|
entered = true;
|
|
23
|
-
|
|
79
|
+
if (renderAfterEnter)
|
|
80
|
+
options.harness.render();
|
|
24
81
|
await waitForPaint();
|
|
25
82
|
}
|
|
26
83
|
finally {
|
|
@@ -29,11 +86,12 @@ export function createPlayableLocalEditorLifecycleController(options) {
|
|
|
29
86
|
options.harness.notifyViewportRevealed?.(viewportRevealReason);
|
|
30
87
|
}
|
|
31
88
|
},
|
|
89
|
+
saveScene,
|
|
32
90
|
async saveAndRunGame() {
|
|
33
91
|
showLoadingOverlayIfNeeded(options.content.saveAndRunGame);
|
|
34
92
|
try {
|
|
35
93
|
await waitForPaint();
|
|
36
|
-
const saved = await
|
|
94
|
+
const saved = await saveScene('save-and-run-game');
|
|
37
95
|
if (!saved)
|
|
38
96
|
return false;
|
|
39
97
|
await options.harness.discardAndRunGame();
|
|
@@ -44,6 +102,8 @@ export function createPlayableLocalEditorLifecycleController(options) {
|
|
|
44
102
|
}
|
|
45
103
|
},
|
|
46
104
|
async discardAndRunGame() {
|
|
105
|
+
if (!await confirmDiscardIfNeeded('discard-and-run-game'))
|
|
106
|
+
return;
|
|
47
107
|
showLoadingOverlayIfNeeded(options.content.discardAndRunGame);
|
|
48
108
|
try {
|
|
49
109
|
await waitForPaint();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/local-harness/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,UAAU,CAAC;
|
|
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,14 +48,18 @@ 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;
|
|
31
55
|
minAssetLoadingOverlayMs?: number;
|
|
32
56
|
viewportRevealReason?: string;
|
|
57
|
+
/** Set false when harness.enterEditor already renders the initial editor frame. */
|
|
58
|
+
renderAfterEnter?: boolean;
|
|
33
59
|
}
|
|
34
60
|
export interface PlayableLocalEditorLifecycleController {
|
|
35
61
|
enterEditor(): Promise<void>;
|
|
62
|
+
saveScene(operation?: PlayableLocalEditorDataSafetyOperation): Promise<boolean>;
|
|
36
63
|
saveAndRunGame(): Promise<boolean>;
|
|
37
64
|
discardAndRunGame(): Promise<void>;
|
|
38
65
|
runWithAssetLoadingOverlay<T>(operation: () => Promise<T>): Promise<T>;
|