@fps-games/editor 0.1.4-beta.1 → 0.1.4-beta.3
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/local-editor-harness.d.ts +9 -0
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +27 -12
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/playable-babylon-facade.d.ts +1 -1
- package/dist/playable-babylon-facade.d.ts.map +1 -1
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-rendering.d.ts +107 -0
- package/dist/playable-babylon-rendering.d.ts.map +1 -0
- package/dist/playable-babylon-rendering.js +380 -0
- package/dist/playable-babylon-rendering.js.map +1 -0
- package/dist/playable-local-editor-host.d.ts +13 -1
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +7 -2
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-sdk.d.ts +5 -2
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js +1 -0
- package/dist/playable-sdk.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js +2 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +84 -23
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +24 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +2 -2
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +5 -3
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- 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 +36 -3
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +148 -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/dist/scene-graph.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js +2 -0
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +2 -2
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +25 -0
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +56 -9
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- 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 +7 -6
- 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/session/hierarchy.js +2 -1
- 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.js +1 -1
- 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/package.json +1 -1
- package/package.json +8 -8
|
@@ -7,7 +7,7 @@ export declare const createPlayableBabylonEditorGrid: typeof createBabylonEditor
|
|
|
7
7
|
export { applyArtistMaterialProfileToRuntimeMaterial, applyMaterialValueToRuntimeMaterial, applyMaterialValueToRuntimeNode, resolveMaterialOwnerNode, resolveMaterialRuntimeKind, applyOutlineValueToRuntimeNode, resolveOutlineOwnerNode, resolveOutlineTarget, } from '@fps-games/editor-babylon';
|
|
8
8
|
export type { CanonicalMaterialChange, CanonicalOutlineChange, } from '@fps-games/editor-babylon';
|
|
9
9
|
export { applyBabylonDefaultOutline, createBabylonEnvironmentTextureController, createBabylonDefaultPostProcessPipelineController, createPlanarShadowSystem, normalizeBabylonEnvironmentTextureProfile, normalizeBabylonDefaultPostProcessProfile, normalizeBabylonDefaultPostProcessVolumeStack, resolveBabylonDefaultPostProcessVolumeStack, } from '@fps-games/babylon-renderer';
|
|
10
|
-
export type { BabylonDefaultPostProcessPipelineController, BabylonDefaultPostProcessProfile, BabylonDefaultPostProcessResolveInput, BabylonDefaultPostProcessResolveResult, BabylonDefaultPostProcessResolvedVolume, BabylonDefaultPostProcessSamples, BabylonDefaultPostProcessVolume, BabylonDefaultPostProcessVolumeStack, BabylonDefaultToneMappingType, BabylonEnvironmentTextureController, BabylonEnvironmentTextureProfile, BabylonDefaultOutlineOptions, BabylonRendererOutlineStrategy, PlanarShadowOptions, PostProcessVolumeShape, } from '@fps-games/babylon-renderer';
|
|
10
|
+
export type { BabylonDefaultPostProcessPipelineController, BabylonDefaultPostProcessProfile, BabylonDefaultPostProcessResolveInput, BabylonDefaultPostProcessResolveResult, BabylonDefaultPostProcessResolvedVolume, BabylonDefaultPostProcessSamples, BabylonDefaultPostProcessVolume, BabylonDefaultPostProcessVolumeStack, BabylonDefaultToneMappingType, BabylonEnvironmentTextureController, BabylonEnvironmentTextureProfile, BabylonDefaultOutlineOptions, BabylonRendererOutlineStrategy, PlanarShadowOptions, PlanarShadowSystem, PostProcessVolumeShape, } from '@fps-games/babylon-renderer';
|
|
11
11
|
export { createPlayableBabylonOutlineInspectorSection, createPlayableBabylonOutlineInspectorSeedPatchValue, isPlayableBabylonOutlineInspectorPatchPath, PLAYABLE_BABYLON_DEFAULT_OUTLINE_OVERRIDE, } from './playable-babylon-outline-inspector';
|
|
12
12
|
export { applyPlayableBabylonOutlineOverrideToRuntimeNode, applyPlayableBabylonOutlineOverrideToRuntimeTarget, } from './playable-babylon-outline-runtime';
|
|
13
13
|
export type { PlayableBabylonOutlineInspectorLanguage, PlayableBabylonOutlineInspectorSectionInput, PlayableBabylonOutlineInspectorSeedPatchInput, PlayableBabylonOutlineOverrideConfig, PlayableBabylonOutlineStrategy, } from './playable-babylon-outline-inspector';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-babylon-facade.d.ts","sourceRoot":"","sources":["../src/playable-babylon-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EAClC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,sCAAsC,GAAG,oCAAoC,CAAC;AAC1F,MAAM,MAAM,qCAAqC,GAAG,mCAAmC,CAAC;AACxF,MAAM,MAAM,6BAA6B,GAAG,2BAA2B,CAAC;AACxE,MAAM,MAAM,oCAAoC,GAAG,4BAA4B,CAAC;AAEhF,eAAO,MAAM,+BAA+B,wCAAkC,CAAC;AAK/E,OAAO,EACL,2CAA2C,EAC3C,mCAAmC,EACnC,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,0BAA0B,EAC1B,yCAAyC,EACzC,iDAAiD,EACjD,wBAAwB,EACxB,yCAAyC,EACzC,yCAAyC,EACzC,6CAA6C,EAC7C,2CAA2C,GAC5C,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,2CAA2C,EAC3C,gCAAgC,EAChC,qCAAqC,EACrC,sCAAsC,EACtC,uCAAuC,EACvC,gCAAgC,EAChC,+BAA+B,EAC/B,oCAAoC,EACpC,6BAA6B,EAC7B,mCAAmC,EACnC,gCAAgC,EAChC,4BAA4B,EAC5B,8BAA8B,EAC9B,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,4CAA4C,EAC5C,mDAAmD,EACnD,0CAA0C,EAC1C,yCAAyC,GAC1C,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,gDAAgD,EAChD,kDAAkD,GACnD,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,uCAAuC,EACvC,2CAA2C,EAC3C,6CAA6C,EAC7C,oCAAoC,EACpC,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,wCAAwC,EACxC,qCAAqC,GACtC,MAAM,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"playable-babylon-facade.d.ts","sourceRoot":"","sources":["../src/playable-babylon-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EAClC,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,sCAAsC,GAAG,oCAAoC,CAAC;AAC1F,MAAM,MAAM,qCAAqC,GAAG,mCAAmC,CAAC;AACxF,MAAM,MAAM,6BAA6B,GAAG,2BAA2B,CAAC;AACxE,MAAM,MAAM,oCAAoC,GAAG,4BAA4B,CAAC;AAEhF,eAAO,MAAM,+BAA+B,wCAAkC,CAAC;AAK/E,OAAO,EACL,2CAA2C,EAC3C,mCAAmC,EACnC,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EACL,0BAA0B,EAC1B,yCAAyC,EACzC,iDAAiD,EACjD,wBAAwB,EACxB,yCAAyC,EACzC,yCAAyC,EACzC,6CAA6C,EAC7C,2CAA2C,GAC5C,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,2CAA2C,EAC3C,gCAAgC,EAChC,qCAAqC,EACrC,sCAAsC,EACtC,uCAAuC,EACvC,gCAAgC,EAChC,+BAA+B,EAC/B,oCAAoC,EACpC,6BAA6B,EAC7B,mCAAmC,EACnC,gCAAgC,EAChC,4BAA4B,EAC5B,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,4CAA4C,EAC5C,mDAAmD,EACnD,0CAA0C,EAC1C,yCAAyC,GAC1C,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,gDAAgD,EAChD,kDAAkD,GACnD,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,uCAAuC,EACvC,2CAA2C,EAC3C,6CAA6C,EAC7C,oCAAoC,EACpC,8BAA8B,GAC/B,MAAM,sCAAsC,CAAC;AAE9C,YAAY,EACV,wCAAwC,EACxC,qCAAqC,GACtC,MAAM,oCAAoC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-babylon-facade.js","sourceRoot":"","sources":["../src/playable-babylon-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,GAKhC,MAAM,2BAA2B,CAAC;AAOnC,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,yCAAyC;AACzC,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EACL,2CAA2C,EAC3C,mCAAmC,EACnC,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAOnC,0BAA0B;AAC1B,mFAAmF;AACnF,OAAO,EACL,0BAA0B,EAC1B,yCAAyC,EACzC,iDAAiD,EACjD,wBAAwB,EACxB,yCAAyC,EACzC,yCAAyC,EACzC,6CAA6C,EAC7C,2CAA2C,GAC5C,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"playable-babylon-facade.js","sourceRoot":"","sources":["../src/playable-babylon-facade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,GAKhC,MAAM,2BAA2B,CAAC;AAOnC,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,yCAAyC;AACzC,gFAAgF;AAChF,oEAAoE;AACpE,OAAO,EACL,2CAA2C,EAC3C,mCAAmC,EACnC,+BAA+B,EAC/B,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAOnC,0BAA0B;AAC1B,mFAAmF;AACnF,OAAO,EACL,0BAA0B,EAC1B,yCAAyC,EACzC,iDAAiD,EACjD,wBAAwB,EACxB,yCAAyC,EACzC,yCAAyC,EACzC,6CAA6C,EAC7C,2CAA2C,GAC5C,MAAM,6BAA6B,CAAC;AAqBrC,OAAO,EACL,4CAA4C,EAC5C,mDAAmD,EACnD,0CAA0C,EAC1C,yCAAyC,GAC1C,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,gDAAgD,EAChD,kDAAkD,GACnD,MAAM,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type EditorScenePlanarShadowPreviewSettingsInput, type EditorSceneRenderingPanelLanguage, type EditorSceneRenderingPanelState, type EditorSceneRenderingPanelStateInput, type EditorSceneRenderingProfile, type EditorSceneRenderingStatusTone, type EditorSceneRenderingTextureAsset } from '@fps-games/editor-playable-sdk';
|
|
2
|
+
import { type BabylonDefaultPostProcessPipelineController, type BabylonDefaultPostProcessProfile, type BabylonDefaultPostProcessResolveResult, type BabylonDefaultPostProcessResolveInput, type BabylonEnvironmentTextureController, type BabylonEnvironmentTextureProfile, type PlanarShadowOptions, type PlanarShadowSystem } from '@fps-games/babylon-renderer';
|
|
3
|
+
import type { BabylonEditorShadowPreviewOptions } from '@fps-games/editor-babylon';
|
|
4
|
+
import type { PlayableLocalEditorRenderingCapability } from './playable-local-editor-host';
|
|
5
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
6
|
+
export type PlayableBabylonRenderingStatusTone = EditorSceneRenderingStatusTone;
|
|
7
|
+
export interface PlayableBabylonRenderingDocumentInput<TDocument> {
|
|
8
|
+
document: TDocument;
|
|
9
|
+
}
|
|
10
|
+
export interface PlayableBabylonRenderingContext<TDocument> {
|
|
11
|
+
document: TDocument;
|
|
12
|
+
config: unknown;
|
|
13
|
+
profile: EditorSceneRenderingProfile;
|
|
14
|
+
}
|
|
15
|
+
export interface PlayableBabylonRenderingSetConfigInput<TDocument> {
|
|
16
|
+
document: TDocument;
|
|
17
|
+
config: Record<string, unknown>;
|
|
18
|
+
profile: EditorSceneRenderingProfile;
|
|
19
|
+
changedPaths: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
export type PlayableBabylonRenderingValueResolver<TDocument, TValue> = TValue | ((context: PlayableBabylonRenderingContext<TDocument>) => TValue);
|
|
22
|
+
export interface PlayableBabylonRenderingShadowPreviewOptions<TDocument> {
|
|
23
|
+
enabled?: PlayableBabylonRenderingValueResolver<TDocument, boolean | undefined>;
|
|
24
|
+
directionalLightNodeId?: PlayableBabylonRenderingValueResolver<TDocument, string | null | undefined>;
|
|
25
|
+
planar?: PlayableBabylonRenderingValueResolver<TDocument, EditorScenePlanarShadowPreviewSettingsInput | undefined>;
|
|
26
|
+
}
|
|
27
|
+
export interface PlayableBabylonRenderingCapabilityOptions<TDocument> {
|
|
28
|
+
getConfig(input: PlayableBabylonRenderingDocumentInput<TDocument>): unknown;
|
|
29
|
+
setConfig(input: PlayableBabylonRenderingSetConfigInput<TDocument>): MaybePromise<void>;
|
|
30
|
+
resetConfig?(input: PlayableBabylonRenderingDocumentInput<TDocument>): MaybePromise<void>;
|
|
31
|
+
isDirty?(input: PlayableBabylonRenderingDocumentInput<TDocument>): boolean;
|
|
32
|
+
getPanelState?(input: PlayableBabylonRenderingDocumentInput<TDocument>): EditorSceneRenderingPanelStateInput;
|
|
33
|
+
getTextureAssets?(input: PlayableBabylonRenderingDocumentInput<TDocument>): readonly EditorSceneRenderingTextureAsset[];
|
|
34
|
+
getLanguage?(input: PlayableBabylonRenderingDocumentInput<TDocument>): EditorSceneRenderingPanelLanguage;
|
|
35
|
+
getPostProcessResolveInput?(context: PlayableBabylonRenderingContext<TDocument>): BabylonDefaultPostProcessResolveInput | undefined;
|
|
36
|
+
shadowPreview?: false | PlayableBabylonRenderingShadowPreviewOptions<TDocument>;
|
|
37
|
+
}
|
|
38
|
+
export interface PlayableBabylonWorldRendering {
|
|
39
|
+
environment: BabylonEnvironmentTextureProfile;
|
|
40
|
+
shadowPreview: BabylonEditorShadowPreviewOptions | null;
|
|
41
|
+
postProcess: BabylonDefaultPostProcessProfile;
|
|
42
|
+
}
|
|
43
|
+
export type PlayableBabylonRenderingEnvironmentTextureDiagnosticStatus = 'none' | 'resolved-asset' | 'resolved-url' | 'missing-asset' | 'unsupported-asset' | 'unsupported-url';
|
|
44
|
+
export interface PlayableBabylonRenderingEnvironmentTextureDiagnostic {
|
|
45
|
+
status: PlayableBabylonRenderingEnvironmentTextureDiagnosticStatus;
|
|
46
|
+
textureAssetId: string | null;
|
|
47
|
+
textureUrl: string | null;
|
|
48
|
+
resolvedUrl: string | null;
|
|
49
|
+
asset: EditorSceneRenderingTextureAsset | null;
|
|
50
|
+
reason: string | null;
|
|
51
|
+
}
|
|
52
|
+
export interface PlayableBabylonRenderingDiagnostics {
|
|
53
|
+
config: unknown;
|
|
54
|
+
profile: EditorSceneRenderingProfile;
|
|
55
|
+
worldRendering: PlayableBabylonWorldRendering;
|
|
56
|
+
environmentTexture: PlayableBabylonRenderingEnvironmentTextureDiagnostic;
|
|
57
|
+
postProcess: BabylonDefaultPostProcessResolveResult;
|
|
58
|
+
shadowPreview: BabylonEditorShadowPreviewOptions | null;
|
|
59
|
+
}
|
|
60
|
+
export interface PlayableBabylonRuntimeRenderingControllers {
|
|
61
|
+
environment: BabylonEnvironmentTextureController;
|
|
62
|
+
postProcess: BabylonDefaultPostProcessPipelineController;
|
|
63
|
+
getWorldRendering(): PlayableBabylonWorldRendering | null;
|
|
64
|
+
setWorldRendering(rendering: PlayableBabylonWorldRendering | null | undefined): void;
|
|
65
|
+
dispose(): void;
|
|
66
|
+
}
|
|
67
|
+
export interface PlayableBabylonRuntimeRenderingControllerOptions {
|
|
68
|
+
scene: unknown;
|
|
69
|
+
cameras: unknown[];
|
|
70
|
+
initialRendering?: PlayableBabylonWorldRendering | null;
|
|
71
|
+
postProcess?: {
|
|
72
|
+
name?: string;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export interface PlayableBabylonPlanarShadowPolicyInput extends EditorScenePlanarShadowPreviewSettingsInput {
|
|
76
|
+
directionalLightNodeId?: string | null;
|
|
77
|
+
includeProfileShadowMeshes?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface PlayableBabylonResolvedPlanarShadowPolicy {
|
|
80
|
+
planarInput: EditorScenePlanarShadowPreviewSettingsInput;
|
|
81
|
+
planarOptions: PlanarShadowOptions;
|
|
82
|
+
editorShadowPreview: BabylonEditorShadowPreviewOptions;
|
|
83
|
+
}
|
|
84
|
+
export interface PlayableBabylonPlanarShadowPolicy {
|
|
85
|
+
resolve(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): PlayableBabylonResolvedPlanarShadowPolicy;
|
|
86
|
+
createEditorShadowPreview(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): BabylonEditorShadowPreviewOptions;
|
|
87
|
+
createRuntimePlanarOptions(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): PlanarShadowOptions;
|
|
88
|
+
createRuntimePlanarShadowSystem(scene: unknown, directionalLight: unknown, profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): PlanarShadowSystem;
|
|
89
|
+
}
|
|
90
|
+
export declare function createPlayableBabylonRenderingCapability<TDocument>(options: PlayableBabylonRenderingCapabilityOptions<TDocument>): PlayableLocalEditorRenderingCapability<TDocument>;
|
|
91
|
+
export declare function createPlayableBabylonWorldRendering<TDocument>(document: TDocument, options: PlayableBabylonRenderingCapabilityOptions<TDocument>): PlayableBabylonWorldRendering;
|
|
92
|
+
export declare function createPlayableBabylonRenderingDiagnostics<TDocument>(document: TDocument, options: PlayableBabylonRenderingCapabilityOptions<TDocument>): PlayableBabylonRenderingDiagnostics;
|
|
93
|
+
export declare function createPlayableBabylonRuntimeRenderingControllers(options: PlayableBabylonRuntimeRenderingControllerOptions): PlayableBabylonRuntimeRenderingControllers;
|
|
94
|
+
export declare function createPlayableBabylonPlanarShadowPolicy(baseInput?: PlayableBabylonPlanarShadowPolicyInput): PlayableBabylonPlanarShadowPolicy;
|
|
95
|
+
export declare function resolvePlayableBabylonPlanarShadowPolicy(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): PlayableBabylonResolvedPlanarShadowPolicy;
|
|
96
|
+
export declare function createPlayableBabylonPlanarShadowPolicyInput(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): EditorScenePlanarShadowPreviewSettingsInput;
|
|
97
|
+
export declare function createPlayableBabylonPlanarShadowPreviewOptions(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): BabylonEditorShadowPreviewOptions;
|
|
98
|
+
export declare function createPlayableBabylonPlanarShadowOptions(profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): PlanarShadowOptions;
|
|
99
|
+
export declare function createPlayableBabylonPlanarShadowSystem(scene: unknown, directionalLight: unknown, profile: EditorSceneRenderingProfile, input?: PlayableBabylonPlanarShadowPolicyInput): PlanarShadowSystem;
|
|
100
|
+
export declare function createPlayableBabylonRenderingPanelState<TDocument>(document: TDocument, options: PlayableBabylonRenderingCapabilityOptions<TDocument>): EditorSceneRenderingPanelState;
|
|
101
|
+
export declare function createPlayableBabylonEnvironmentTextureProfile(profile: EditorSceneRenderingProfile, textureAssets?: readonly EditorSceneRenderingTextureAsset[]): BabylonEnvironmentTextureProfile;
|
|
102
|
+
export declare function resolvePlayableBabylonRenderingEnvironmentTextureUrl(textureRef: EditorSceneRenderingProfile['environment']['texture'], textureAssets?: readonly EditorSceneRenderingTextureAsset[]): string | null;
|
|
103
|
+
export declare function resolvePlayableBabylonRenderingEnvironmentTextureDiagnostic(textureRef: EditorSceneRenderingProfile['environment']['texture'], textureAssets?: readonly EditorSceneRenderingTextureAsset[]): PlayableBabylonRenderingEnvironmentTextureDiagnostic;
|
|
104
|
+
export declare function isPlayableBabylonRenderingEnvironmentTextureAsset(texture: EditorSceneRenderingTextureAsset): boolean;
|
|
105
|
+
export declare function isPlayableBabylonRenderingEnvironmentTextureUrl(textureUrl: string): boolean;
|
|
106
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=playable-babylon-rendering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playable-babylon-rendering.d.ts","sourceRoot":"","sources":["../src/playable-babylon-rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { applyEditorSceneRenderingProfilePatch, createEditorScenePlanarShadowPreviewSettings, createEditorSceneRenderingPanelState, normalizeEditorSceneRenderingProfile, } from '@fps-games/editor-playable-sdk';
|
|
2
|
+
import { createBabylonDefaultPostProcessPipelineController, createBabylonEnvironmentTextureController, createPlanarShadowSystem, resolveBabylonDefaultPostProcessVolumeStack, } from '@fps-games/babylon-renderer';
|
|
3
|
+
const PLAYABLE_BABYLON_RENDERING_ALLOWED_SECTIONS = new Set([
|
|
4
|
+
'environment',
|
|
5
|
+
'post-process',
|
|
6
|
+
'shadows',
|
|
7
|
+
]);
|
|
8
|
+
const PLAYABLE_BABYLON_ENVIRONMENT_TEXTURE_URL_PATTERN = /\.(env|hdr|dds|ktx|ktx2)(?:[?#].*)?$/i;
|
|
9
|
+
export function createPlayableBabylonRenderingCapability(options) {
|
|
10
|
+
return {
|
|
11
|
+
getWorldRendering(document) {
|
|
12
|
+
return createPlayableBabylonWorldRendering(document, options);
|
|
13
|
+
},
|
|
14
|
+
getRenderingPanelState(document) {
|
|
15
|
+
return createPlayableBabylonRenderingPanelState(document, options);
|
|
16
|
+
},
|
|
17
|
+
async onRenderingAction(input) {
|
|
18
|
+
return handlePlayableBabylonRenderingAction(input, options);
|
|
19
|
+
},
|
|
20
|
+
async onRenderingPropertyChange(input) {
|
|
21
|
+
return handlePlayableBabylonRenderingPropertyChange(input, options);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function createPlayableBabylonWorldRendering(document, options) {
|
|
26
|
+
const context = createPlayableBabylonRenderingContext(document, options);
|
|
27
|
+
const postProcess = resolvePlayableBabylonRenderingPostProcess(context, options);
|
|
28
|
+
return {
|
|
29
|
+
environment: createPlayableBabylonEnvironmentTextureProfile(context.profile, options.getTextureAssets?.({ document }) ?? []),
|
|
30
|
+
postProcess: postProcess.profile,
|
|
31
|
+
shadowPreview: createPlayableBabylonShadowPreviewOptions(context, options),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function createPlayableBabylonRenderingDiagnostics(document, options) {
|
|
35
|
+
const context = createPlayableBabylonRenderingContext(document, options);
|
|
36
|
+
const textureAssets = options.getTextureAssets?.({ document }) ?? [];
|
|
37
|
+
const postProcess = resolvePlayableBabylonRenderingPostProcess(context, options);
|
|
38
|
+
const shadowPreview = createPlayableBabylonShadowPreviewOptions(context, options);
|
|
39
|
+
return {
|
|
40
|
+
config: context.config,
|
|
41
|
+
profile: context.profile,
|
|
42
|
+
worldRendering: {
|
|
43
|
+
environment: createPlayableBabylonEnvironmentTextureProfile(context.profile, textureAssets),
|
|
44
|
+
postProcess: postProcess.profile,
|
|
45
|
+
shadowPreview,
|
|
46
|
+
},
|
|
47
|
+
environmentTexture: resolvePlayableBabylonRenderingEnvironmentTextureDiagnostic(context.profile.environment.texture, textureAssets),
|
|
48
|
+
postProcess,
|
|
49
|
+
shadowPreview,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function createPlayableBabylonRuntimeRenderingControllers(options) {
|
|
53
|
+
let currentRendering = options.initialRendering ?? null;
|
|
54
|
+
const environment = createBabylonEnvironmentTextureController(options.scene, currentRendering?.environment ?? null);
|
|
55
|
+
const postProcess = createBabylonDefaultPostProcessPipelineController(options.scene, options.cameras, currentRendering?.postProcess ?? null, options.postProcess);
|
|
56
|
+
return {
|
|
57
|
+
environment,
|
|
58
|
+
postProcess,
|
|
59
|
+
getWorldRendering() {
|
|
60
|
+
return currentRendering;
|
|
61
|
+
},
|
|
62
|
+
setWorldRendering(rendering) {
|
|
63
|
+
currentRendering = rendering ?? null;
|
|
64
|
+
environment.setProfile(currentRendering?.environment ?? null);
|
|
65
|
+
postProcess.setProfile(currentRendering?.postProcess ?? null);
|
|
66
|
+
},
|
|
67
|
+
dispose() {
|
|
68
|
+
environment.dispose();
|
|
69
|
+
postProcess.dispose();
|
|
70
|
+
currentRendering = null;
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function createPlayableBabylonPlanarShadowPolicy(baseInput = {}) {
|
|
75
|
+
return {
|
|
76
|
+
resolve(profile, input) {
|
|
77
|
+
return resolvePlayableBabylonPlanarShadowPolicy(profile, mergePlayableBabylonPlanarShadowPolicyInput(baseInput, input));
|
|
78
|
+
},
|
|
79
|
+
createEditorShadowPreview(profile, input) {
|
|
80
|
+
return createPlayableBabylonPlanarShadowPreviewOptions(profile, mergePlayableBabylonPlanarShadowPolicyInput(baseInput, input));
|
|
81
|
+
},
|
|
82
|
+
createRuntimePlanarOptions(profile, input) {
|
|
83
|
+
return createPlayableBabylonPlanarShadowOptions(profile, mergePlayableBabylonPlanarShadowPolicyInput(baseInput, input));
|
|
84
|
+
},
|
|
85
|
+
createRuntimePlanarShadowSystem(scene, directionalLight, profile, input) {
|
|
86
|
+
return createPlayableBabylonPlanarShadowSystem(scene, directionalLight, profile, mergePlayableBabylonPlanarShadowPolicyInput(baseInput, input));
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export function resolvePlayableBabylonPlanarShadowPolicy(profile, input = {}) {
|
|
91
|
+
const planarInput = createPlayableBabylonPlanarShadowPolicyInput(profile, input);
|
|
92
|
+
const planarOptions = createEditorScenePlanarShadowPreviewSettings(profile, planarInput);
|
|
93
|
+
return {
|
|
94
|
+
planarInput,
|
|
95
|
+
planarOptions,
|
|
96
|
+
editorShadowPreview: {
|
|
97
|
+
planar: {
|
|
98
|
+
...planarOptions,
|
|
99
|
+
...(input.directionalLightNodeId === undefined
|
|
100
|
+
? {}
|
|
101
|
+
: { directionalLightNodeId: input.directionalLightNodeId }),
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export function createPlayableBabylonPlanarShadowPolicyInput(profile, input = {}) {
|
|
107
|
+
const includeProfileShadowMeshes = input.includeProfileShadowMeshes !== false;
|
|
108
|
+
const shadowMeshes = profile.shadowMeshes;
|
|
109
|
+
return {
|
|
110
|
+
...(input.enabled === undefined ? {} : { enabled: input.enabled }),
|
|
111
|
+
...(input.autoDetectAllCasters === undefined ? {} : { autoDetectAllCasters: input.autoDetectAllCasters }),
|
|
112
|
+
additionalCasterIncludePatterns: mergePlayableBabylonPlanarShadowPatterns(...(includeProfileShadowMeshes ? shadowMeshes.shadowCasters : []), ...(input.additionalCasterIncludePatterns ?? [])),
|
|
113
|
+
additionalExcludePatterns: mergePlayableBabylonPlanarShadowPatterns(...(includeProfileShadowMeshes ? shadowMeshes.excludeFromShadow : []), ...(input.additionalExcludePatterns ?? [])),
|
|
114
|
+
additionalReceiverPatterns: mergePlayableBabylonPlanarShadowPatterns(...(includeProfileShadowMeshes ? shadowMeshes.shadowReceivers : []), ...(input.additionalReceiverPatterns ?? [])),
|
|
115
|
+
additionalRootBoundaryPatterns: mergePlayableBabylonPlanarShadowPatterns(...(input.additionalRootBoundaryPatterns ?? [])),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export function createPlayableBabylonPlanarShadowPreviewOptions(profile, input = {}) {
|
|
119
|
+
return resolvePlayableBabylonPlanarShadowPolicy(profile, input).editorShadowPreview;
|
|
120
|
+
}
|
|
121
|
+
export function createPlayableBabylonPlanarShadowOptions(profile, input = {}) {
|
|
122
|
+
return resolvePlayableBabylonPlanarShadowPolicy(profile, input).planarOptions;
|
|
123
|
+
}
|
|
124
|
+
export function createPlayableBabylonPlanarShadowSystem(scene, directionalLight, profile, input = {}) {
|
|
125
|
+
return createPlanarShadowSystem(scene, directionalLight, createPlayableBabylonPlanarShadowOptions(profile, input));
|
|
126
|
+
}
|
|
127
|
+
export function createPlayableBabylonRenderingPanelState(document, options) {
|
|
128
|
+
const context = createPlayableBabylonRenderingContext(document, options);
|
|
129
|
+
const baseState = options.getPanelState?.({ document }) ?? {};
|
|
130
|
+
const dirty = baseState.dirty ?? options.isDirty?.({ document });
|
|
131
|
+
return createEditorSceneRenderingPanelState(context.profile, {
|
|
132
|
+
...baseState,
|
|
133
|
+
...(dirty === undefined ? {} : { dirty }),
|
|
134
|
+
}, {
|
|
135
|
+
language: options.getLanguage?.({ document }) ?? 'en',
|
|
136
|
+
textureAssets: options.getTextureAssets?.({ document }) ?? [],
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
export function createPlayableBabylonEnvironmentTextureProfile(profile, textureAssets = []) {
|
|
140
|
+
return {
|
|
141
|
+
textureUrl: resolvePlayableBabylonRenderingEnvironmentTextureUrl(profile.environment.texture, textureAssets),
|
|
142
|
+
intensity: profile.environment.iblIntensity,
|
|
143
|
+
rotationY: profile.environment.rotationY,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export function resolvePlayableBabylonRenderingEnvironmentTextureUrl(textureRef, textureAssets = []) {
|
|
147
|
+
if (!textureRef)
|
|
148
|
+
return null;
|
|
149
|
+
const textureAssetId = typeof textureRef.textureAssetId === 'string'
|
|
150
|
+
? textureRef.textureAssetId.trim()
|
|
151
|
+
: '';
|
|
152
|
+
if (textureAssetId) {
|
|
153
|
+
const textureAsset = textureAssets.find(texture => texture.id === textureAssetId);
|
|
154
|
+
return textureAsset && isPlayableBabylonRenderingEnvironmentTextureAsset(textureAsset)
|
|
155
|
+
? textureAsset.url
|
|
156
|
+
: null;
|
|
157
|
+
}
|
|
158
|
+
const textureUrl = typeof textureRef.url === 'string' ? textureRef.url.trim() : '';
|
|
159
|
+
return isPlayableBabylonRenderingEnvironmentTextureUrl(textureUrl) ? textureUrl : null;
|
|
160
|
+
}
|
|
161
|
+
export function resolvePlayableBabylonRenderingEnvironmentTextureDiagnostic(textureRef, textureAssets = []) {
|
|
162
|
+
if (!textureRef) {
|
|
163
|
+
return {
|
|
164
|
+
status: 'none',
|
|
165
|
+
textureAssetId: null,
|
|
166
|
+
textureUrl: null,
|
|
167
|
+
resolvedUrl: null,
|
|
168
|
+
asset: null,
|
|
169
|
+
reason: 'No environment texture is configured.',
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const textureAssetId = typeof textureRef.textureAssetId === 'string'
|
|
173
|
+
? textureRef.textureAssetId.trim()
|
|
174
|
+
: '';
|
|
175
|
+
if (textureAssetId) {
|
|
176
|
+
const textureAsset = textureAssets.find(texture => texture.id === textureAssetId) ?? null;
|
|
177
|
+
if (!textureAsset) {
|
|
178
|
+
return {
|
|
179
|
+
status: 'missing-asset',
|
|
180
|
+
textureAssetId,
|
|
181
|
+
textureUrl: null,
|
|
182
|
+
resolvedUrl: null,
|
|
183
|
+
asset: null,
|
|
184
|
+
reason: `Environment texture asset not found: ${textureAssetId}.`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
if (!isPlayableBabylonRenderingEnvironmentTextureAsset(textureAsset)) {
|
|
188
|
+
return {
|
|
189
|
+
status: 'unsupported-asset',
|
|
190
|
+
textureAssetId,
|
|
191
|
+
textureUrl: textureAsset.url,
|
|
192
|
+
resolvedUrl: null,
|
|
193
|
+
asset: textureAsset,
|
|
194
|
+
reason: `Texture asset is not marked as an environment texture: ${textureAssetId}.`,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
status: 'resolved-asset',
|
|
199
|
+
textureAssetId,
|
|
200
|
+
textureUrl: textureAsset.url,
|
|
201
|
+
resolvedUrl: textureAsset.url,
|
|
202
|
+
asset: textureAsset,
|
|
203
|
+
reason: null,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
const textureUrl = typeof textureRef.url === 'string' ? textureRef.url.trim() : '';
|
|
207
|
+
if (!textureUrl) {
|
|
208
|
+
return {
|
|
209
|
+
status: 'none',
|
|
210
|
+
textureAssetId: null,
|
|
211
|
+
textureUrl: null,
|
|
212
|
+
resolvedUrl: null,
|
|
213
|
+
asset: null,
|
|
214
|
+
reason: 'No environment texture URL is configured.',
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
if (!isPlayableBabylonRenderingEnvironmentTextureUrl(textureUrl)) {
|
|
218
|
+
return {
|
|
219
|
+
status: 'unsupported-url',
|
|
220
|
+
textureAssetId: null,
|
|
221
|
+
textureUrl,
|
|
222
|
+
resolvedUrl: null,
|
|
223
|
+
asset: null,
|
|
224
|
+
reason: 'Environment texture URL must use .env, .hdr, .dds, .ktx, or .ktx2.',
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
status: 'resolved-url',
|
|
229
|
+
textureAssetId: null,
|
|
230
|
+
textureUrl,
|
|
231
|
+
resolvedUrl: textureUrl,
|
|
232
|
+
asset: null,
|
|
233
|
+
reason: null,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
export function isPlayableBabylonRenderingEnvironmentTextureAsset(texture) {
|
|
237
|
+
if (texture.capabilities?.environmentTexture === true)
|
|
238
|
+
return true;
|
|
239
|
+
if (texture.capabilities?.environmentTexture === false)
|
|
240
|
+
return false;
|
|
241
|
+
if (texture.usage === 'environment')
|
|
242
|
+
return true;
|
|
243
|
+
return isPlayableBabylonRenderingEnvironmentTextureUrl(texture.url);
|
|
244
|
+
}
|
|
245
|
+
export function isPlayableBabylonRenderingEnvironmentTextureUrl(textureUrl) {
|
|
246
|
+
return PLAYABLE_BABYLON_ENVIRONMENT_TEXTURE_URL_PATTERN.test(textureUrl);
|
|
247
|
+
}
|
|
248
|
+
function createPlayableBabylonRenderingContext(document, options) {
|
|
249
|
+
const config = options.getConfig({ document });
|
|
250
|
+
return {
|
|
251
|
+
document,
|
|
252
|
+
config,
|
|
253
|
+
profile: normalizeEditorSceneRenderingProfile(config),
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function resolvePlayableBabylonRenderingPostProcess(context, options) {
|
|
257
|
+
return resolveBabylonDefaultPostProcessVolumeStack(context.config, options.getPostProcessResolveInput?.(context));
|
|
258
|
+
}
|
|
259
|
+
function createPlayableBabylonShadowPreviewOptions(context, options) {
|
|
260
|
+
if (options.shadowPreview === false)
|
|
261
|
+
return null;
|
|
262
|
+
const shadowPreview = options.shadowPreview ?? {};
|
|
263
|
+
const planarInput = resolvePlayableBabylonRenderingValue(shadowPreview.planar, context) ?? {};
|
|
264
|
+
const enabled = resolvePlayableBabylonRenderingValue(shadowPreview.enabled, context);
|
|
265
|
+
const directionalLightNodeId = resolvePlayableBabylonRenderingValue(shadowPreview.directionalLightNodeId, context);
|
|
266
|
+
return createPlayableBabylonPlanarShadowPreviewOptions(context.profile, {
|
|
267
|
+
...planarInput,
|
|
268
|
+
...(enabled === undefined ? {} : { enabled }),
|
|
269
|
+
...(directionalLightNodeId === undefined ? {} : { directionalLightNodeId }),
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
async function handlePlayableBabylonRenderingPropertyChange(input, options) {
|
|
273
|
+
const sectionId = typeof input.sectionId === 'string' ? input.sectionId : '';
|
|
274
|
+
if (!PLAYABLE_BABYLON_RENDERING_ALLOWED_SECTIONS.has(sectionId)) {
|
|
275
|
+
return createPlayableBabylonRenderingResult(false, {
|
|
276
|
+
status: `Unsupported rendering section: ${sectionId || '(unknown)'}`,
|
|
277
|
+
statusTone: 'warning',
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
const path = typeof input.path === 'string' ? input.path : '';
|
|
281
|
+
const currentConfig = options.getConfig({ document: input.document });
|
|
282
|
+
const patch = applyEditorSceneRenderingProfilePatch(currentConfig, {
|
|
283
|
+
[path]: input.value,
|
|
284
|
+
});
|
|
285
|
+
if (patch.changedPaths.length === 0) {
|
|
286
|
+
return createPlayableBabylonRenderingResult(false, {
|
|
287
|
+
status: `Unsupported rendering field: ${path || '(unknown)'}`,
|
|
288
|
+
statusTone: 'warning',
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
await options.setConfig({
|
|
292
|
+
document: input.document,
|
|
293
|
+
config: patch.config,
|
|
294
|
+
changedPaths: patch.changedPaths,
|
|
295
|
+
profile: patch.normalized,
|
|
296
|
+
});
|
|
297
|
+
const dirty = options.isDirty?.({ document: input.document });
|
|
298
|
+
return createPlayableBabylonRenderingResult(true, {
|
|
299
|
+
dirty,
|
|
300
|
+
status: `Rendering draft updated: ${patch.changedPaths.join(', ')}`,
|
|
301
|
+
statusTone: dirty === false ? 'success' : 'warning',
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
async function handlePlayableBabylonRenderingAction(input, options) {
|
|
305
|
+
const actionId = typeof input.actionId === 'string' ? input.actionId : '';
|
|
306
|
+
if (actionId !== 'revert-rendering') {
|
|
307
|
+
return createPlayableBabylonRenderingResult(false, {
|
|
308
|
+
status: `Unsupported rendering action: ${actionId || '(unknown)'}`,
|
|
309
|
+
statusTone: 'warning',
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
if (!options.resetConfig) {
|
|
313
|
+
return createPlayableBabylonRenderingResult(false, {
|
|
314
|
+
status: 'Rendering reset is not available for this project.',
|
|
315
|
+
statusTone: 'warning',
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
if (options.isDirty?.({ document: input.document }) === false) {
|
|
319
|
+
return createPlayableBabylonRenderingResult(false, {
|
|
320
|
+
status: 'Rendering already matches saved settings.',
|
|
321
|
+
statusTone: 'default',
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
await options.resetConfig({ document: input.document });
|
|
325
|
+
return createPlayableBabylonRenderingResult(true, {
|
|
326
|
+
dirty: options.isDirty?.({ document: input.document }) ?? false,
|
|
327
|
+
status: 'Rendering draft reverted to saved settings.',
|
|
328
|
+
statusTone: 'success',
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
function createPlayableBabylonRenderingResult(changed, input) {
|
|
332
|
+
return {
|
|
333
|
+
changed,
|
|
334
|
+
refreshWorldRendering: changed,
|
|
335
|
+
...(input.dirty === undefined ? {} : { dirty: input.dirty }),
|
|
336
|
+
status: input.status,
|
|
337
|
+
statusTone: input.statusTone,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
function resolvePlayableBabylonRenderingValue(value, context) {
|
|
341
|
+
return typeof value === 'function'
|
|
342
|
+
? value(context)
|
|
343
|
+
: value;
|
|
344
|
+
}
|
|
345
|
+
function mergePlayableBabylonPlanarShadowPolicyInput(base, input) {
|
|
346
|
+
const merged = {
|
|
347
|
+
additionalCasterIncludePatterns: mergePlayableBabylonPlanarShadowPatterns(...(base.additionalCasterIncludePatterns ?? []), ...(input?.additionalCasterIncludePatterns ?? [])),
|
|
348
|
+
additionalExcludePatterns: mergePlayableBabylonPlanarShadowPatterns(...(base.additionalExcludePatterns ?? []), ...(input?.additionalExcludePatterns ?? [])),
|
|
349
|
+
additionalReceiverPatterns: mergePlayableBabylonPlanarShadowPatterns(...(base.additionalReceiverPatterns ?? []), ...(input?.additionalReceiverPatterns ?? [])),
|
|
350
|
+
additionalRootBoundaryPatterns: mergePlayableBabylonPlanarShadowPatterns(...(base.additionalRootBoundaryPatterns ?? []), ...(input?.additionalRootBoundaryPatterns ?? [])),
|
|
351
|
+
};
|
|
352
|
+
const enabled = input?.enabled ?? base.enabled;
|
|
353
|
+
if (enabled !== undefined)
|
|
354
|
+
merged.enabled = enabled;
|
|
355
|
+
const autoDetectAllCasters = input?.autoDetectAllCasters ?? base.autoDetectAllCasters;
|
|
356
|
+
if (autoDetectAllCasters !== undefined)
|
|
357
|
+
merged.autoDetectAllCasters = autoDetectAllCasters;
|
|
358
|
+
const includeProfileShadowMeshes = input?.includeProfileShadowMeshes ?? base.includeProfileShadowMeshes;
|
|
359
|
+
if (includeProfileShadowMeshes !== undefined)
|
|
360
|
+
merged.includeProfileShadowMeshes = includeProfileShadowMeshes;
|
|
361
|
+
const directionalLightNodeId = input && 'directionalLightNodeId' in input
|
|
362
|
+
? input.directionalLightNodeId
|
|
363
|
+
: base.directionalLightNodeId;
|
|
364
|
+
if (directionalLightNodeId !== undefined)
|
|
365
|
+
merged.directionalLightNodeId = directionalLightNodeId;
|
|
366
|
+
return merged;
|
|
367
|
+
}
|
|
368
|
+
function mergePlayableBabylonPlanarShadowPatterns(...patterns) {
|
|
369
|
+
const seen = new Set();
|
|
370
|
+
const merged = [];
|
|
371
|
+
for (const pattern of patterns) {
|
|
372
|
+
const normalized = typeof pattern === 'string' ? pattern.trim() : '';
|
|
373
|
+
if (!normalized || seen.has(normalized))
|
|
374
|
+
continue;
|
|
375
|
+
seen.add(normalized);
|
|
376
|
+
merged.push(normalized);
|
|
377
|
+
}
|
|
378
|
+
return merged;
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=playable-babylon-rendering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playable-babylon-rendering.js","sourceRoot":"","sources":["../src/playable-babylon-rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type EditorTransformDocumentCapabilities } from '@fps-games/editor-core';
|
|
1
|
+
import { type EditorTransformDocumentCapabilities, type EditorTransformSnapshot } from '@fps-games/editor-core';
|
|
2
|
+
import { type ForgePlayAgentContextDeliveryOptions } from '@fps-games/editor-forge-play';
|
|
2
3
|
import type { ArtistMaterialTextureRef, EditorAgentContextSemantics } from '@fps-games/editor-protocol';
|
|
3
4
|
import { type PlayableForgePlayModeBridge, type PlayableForgePlaySaveState, type PlayableForgePlayWindowLike, type PlayableLocalEditorHostBridgeContext, type PlayableLocalEditorHostLoadingContent } from '@fps-games/editor-playable-sdk';
|
|
4
5
|
export declare const PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION: 1;
|
|
@@ -136,6 +137,13 @@ export interface PlayableLocalEditorTransformPatchInput<TDocument = unknown> {
|
|
|
136
137
|
duplicate?: boolean;
|
|
137
138
|
[key: string]: unknown;
|
|
138
139
|
}
|
|
140
|
+
export interface PlayableLocalEditorTransformInspectorPreviewInput<TDocument = unknown> {
|
|
141
|
+
document: TDocument;
|
|
142
|
+
targetId: string;
|
|
143
|
+
targetIds: string[];
|
|
144
|
+
activeId: string | null;
|
|
145
|
+
transform: EditorTransformSnapshot;
|
|
146
|
+
}
|
|
139
147
|
export interface PlayableLocalEditorTransformBatchPatchInput<TDocument = unknown> {
|
|
140
148
|
document: TDocument;
|
|
141
149
|
targetIds: string[];
|
|
@@ -145,6 +153,7 @@ export interface PlayableLocalEditorTransformBatchPatchInput<TDocument = unknown
|
|
|
145
153
|
}
|
|
146
154
|
export interface PlayableLocalEditorRenderingPropertyChangeResult {
|
|
147
155
|
changed?: boolean;
|
|
156
|
+
dirty?: boolean;
|
|
148
157
|
status?: string;
|
|
149
158
|
statusTone?: string;
|
|
150
159
|
statusDetails?: string;
|
|
@@ -251,6 +260,7 @@ export interface PlayableLocalEditorTransformCommandsCapability<TDocument, TPatc
|
|
|
251
260
|
documentCapabilities?: Partial<EditorTransformDocumentCapabilities>;
|
|
252
261
|
canCreateSerializedMultiPropertyPatch?(input: PlayableLocalEditorMultiPropertyCapabilityInput<TDocument>): boolean;
|
|
253
262
|
createSerializedMultiPropertyPatch?(input: PlayableLocalEditorMultiPropertyPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
263
|
+
createTransformInspectorPreview?(input: PlayableLocalEditorTransformInspectorPreviewInput<TDocument>): EditorTransformSnapshot | null;
|
|
254
264
|
createTransformPatch?(input: PlayableLocalEditorTransformPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
255
265
|
createTransformBatchPatch?(input: PlayableLocalEditorTransformBatchPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
256
266
|
createDuplicateSelectionPatch?(input: Record<string, unknown> & {
|
|
@@ -342,6 +352,7 @@ export interface PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset
|
|
|
342
352
|
createSerializedPropertyPatch(input: PlayableLocalEditorPropertyPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
343
353
|
canCreateSerializedMultiPropertyPatch?(input: PlayableLocalEditorMultiPropertyCapabilityInput<TDocument>): boolean;
|
|
344
354
|
createSerializedMultiPropertyPatch?(input: PlayableLocalEditorMultiPropertyPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
355
|
+
createTransformInspectorPreview?(input: PlayableLocalEditorTransformInspectorPreviewInput<TDocument>): EditorTransformSnapshot | null;
|
|
345
356
|
createTransformPatch?(input: PlayableLocalEditorTransformPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
346
357
|
createTransformBatchPatch?(input: PlayableLocalEditorTransformBatchPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;
|
|
347
358
|
createDuplicateSelectionPatch?(input: Record<string, unknown> & {
|
|
@@ -472,6 +483,7 @@ export interface PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset = unk
|
|
|
472
483
|
forgePlay?: {
|
|
473
484
|
enabled?: boolean;
|
|
474
485
|
window?: PlayableForgePlayWindowLike;
|
|
486
|
+
agentContextDelivery?: ForgePlayAgentContextDeliveryOptions;
|
|
475
487
|
handleProjectAssetCommand?: (context: PlayableLocalEditorHostBridgeContext<PlayableLocalEditorHarnessApi<TDocument>>) => Promise<void> | void;
|
|
476
488
|
handleAssetDrop?: (payload: Record<string, unknown>, context: Omit<PlayableLocalEditorHostBridgeContext<PlayableLocalEditorHarnessApi<TDocument>>, 'name'>) => void;
|
|
477
489
|
hasUnsavedPlatformChanges?: () => boolean;
|