@skewedaspect/sage 0.9.0-beta.4 → 0.9.0-beta.5
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/classes/entity.d.ts +2 -2
- package/dist/classes/gameLevel.d.ts +29 -0
- package/dist/interfaces/level.d.ts +40 -0
- package/dist/sage.es.js +5234 -39
- package/dist/sage.es.js.map +1 -1
- package/dist/sage.umd.js +1 -16364
- package/dist/sage.umd.js.map +1 -1
- package/package.json +5 -3
- package/dist/abstractAudioBus-CicK-cmP.js +0 -15
- package/dist/abstractAudioBus-CicK-cmP.js.map +0 -1
- package/dist/animationGroup-zZQs9_3T.js +0 -1444
- package/dist/animationGroup-zZQs9_3T.js.map +0 -1
- package/dist/basisTextureLoader-D3AWXD1i.js +0 -311
- package/dist/basisTextureLoader-D3AWXD1i.js.map +0 -1
- package/dist/bumpVertex-B_-uReFw.js +0 -16
- package/dist/bumpVertex-B_-uReFw.js.map +0 -1
- package/dist/bumpVertex-CGJfX0FI.js +0 -16
- package/dist/bumpVertex-CGJfX0FI.js.map +0 -1
- package/dist/dds-Ew4J8rnP.js +0 -293
- package/dist/dds-Ew4J8rnP.js.map +0 -1
- package/dist/ddsTextureLoader-CFOK7DlQ.js +0 -44
- package/dist/ddsTextureLoader-CFOK7DlQ.js.map +0 -1
- package/dist/default.fragment-3a6A1gZT.js +0 -484
- package/dist/default.fragment-3a6A1gZT.js.map +0 -1
- package/dist/default.fragment-Bs33AR4-.js +0 -544
- package/dist/default.fragment-Bs33AR4-.js.map +0 -1
- package/dist/default.vertex-C5kD_-ka.js +0 -195
- package/dist/default.vertex-C5kD_-ka.js.map +0 -1
- package/dist/default.vertex-DqH_AEzj.js +0 -212
- package/dist/default.vertex-DqH_AEzj.js.map +0 -1
- package/dist/defaultUboDeclaration-CGEudxYu.js +0 -11
- package/dist/defaultUboDeclaration-CGEudxYu.js.map +0 -1
- package/dist/defaultUboDeclaration-kbZt2aOg.js +0 -9
- package/dist/defaultUboDeclaration-kbZt2aOg.js.map +0 -1
- package/dist/easing-7JG4oYnR.js +0 -164
- package/dist/easing-7JG4oYnR.js.map +0 -1
- package/dist/envTextureLoader-azmph2Ew.js +0 -41
- package/dist/envTextureLoader-azmph2Ew.js.map +0 -1
- package/dist/exrTextureLoader-BaTDZKMv.js +0 -741
- package/dist/exrTextureLoader-BaTDZKMv.js.map +0 -1
- package/dist/flowGraphArrayIndexBlock-B85TKIxP.js +0 -32
- package/dist/flowGraphArrayIndexBlock-B85TKIxP.js.map +0 -1
- package/dist/flowGraphBezierCurveEasingBlock-B8XQcPYk.js +0 -26
- package/dist/flowGraphBezierCurveEasingBlock-B8XQcPYk.js.map +0 -1
- package/dist/flowGraphBinaryOperationBlock-CXK0PLwK.js +0 -26
- package/dist/flowGraphBinaryOperationBlock-CXK0PLwK.js.map +0 -1
- package/dist/flowGraphBranchBlock-UrFLn2oy.js +0 -20
- package/dist/flowGraphBranchBlock-UrFLn2oy.js.map +0 -1
- package/dist/flowGraphCachedOperationBlock--cUv9DKx.js +0 -27
- package/dist/flowGraphCachedOperationBlock--cUv9DKx.js.map +0 -1
- package/dist/flowGraphCancelDelayBlock-D3d5GFNt.js +0 -21
- package/dist/flowGraphCancelDelayBlock-D3d5GFNt.js.map +0 -1
- package/dist/flowGraphCodeExecutionBlock-B2ChbSsS.js +0 -24
- package/dist/flowGraphCodeExecutionBlock-B2ChbSsS.js.map +0 -1
- package/dist/flowGraphConditionalDataBlock-DQngV3LO.js +0 -29
- package/dist/flowGraphConditionalDataBlock-DQngV3LO.js.map +0 -1
- package/dist/flowGraphConsoleLogBlock-BjNAAr0a.js +0 -47
- package/dist/flowGraphConsoleLogBlock-BjNAAr0a.js.map +0 -1
- package/dist/flowGraphConstantBlock-B2Xa9nLW.js +0 -29
- package/dist/flowGraphConstantBlock-B2Xa9nLW.js.map +0 -1
- package/dist/flowGraphContextBlock-BB0AjE5v.js +0 -20
- package/dist/flowGraphContextBlock-BB0AjE5v.js.map +0 -1
- package/dist/flowGraphCounterBlock-CFZah7WI.js +0 -25
- package/dist/flowGraphCounterBlock-CFZah7WI.js.map +0 -1
- package/dist/flowGraphDataSwitchBlock-DoUtAwkg.js +0 -28
- package/dist/flowGraphDataSwitchBlock-DoUtAwkg.js.map +0 -1
- package/dist/flowGraphDebounceBlock-C0DOB3bh.js +0 -25
- package/dist/flowGraphDebounceBlock-C0DOB3bh.js.map +0 -1
- package/dist/flowGraphDoNBlock-BGv_PuJQ.js +0 -25
- package/dist/flowGraphDoNBlock-BGv_PuJQ.js.map +0 -1
- package/dist/flowGraphEasingBlock-vTt0lQpv.js +0 -51
- package/dist/flowGraphEasingBlock-vTt0lQpv.js.map +0 -1
- package/dist/flowGraphFlipFlopBlock-BBIXB1n5.js +0 -21
- package/dist/flowGraphFlipFlopBlock-BBIXB1n5.js.map +0 -1
- package/dist/flowGraphForLoopBlock-WhusJvWA.js +0 -28
- package/dist/flowGraphForLoopBlock-WhusJvWA.js.map +0 -1
- package/dist/flowGraphFunctionReferenceBlock-DBCzhKUB.js +0 -21
- package/dist/flowGraphFunctionReferenceBlock-DBCzhKUB.js.map +0 -1
- package/dist/flowGraphGLTFDataProvider-SbHwz-Ry.js +0 -17
- package/dist/flowGraphGLTFDataProvider-SbHwz-Ry.js.map +0 -1
- package/dist/flowGraphGetAssetBlock-KaxyDwjW.js +0 -22
- package/dist/flowGraphGetAssetBlock-KaxyDwjW.js.map +0 -1
- package/dist/flowGraphGetPropertyBlock-CwzjnkBM.js +0 -34
- package/dist/flowGraphGetPropertyBlock-CwzjnkBM.js.map +0 -1
- package/dist/flowGraphGetVariableBlock-CUBKSPkN.js +0 -32
- package/dist/flowGraphGetVariableBlock-CUBKSPkN.js.map +0 -1
- package/dist/flowGraphIndexOfBlock-BaY7RMfU.js +0 -32
- package/dist/flowGraphIndexOfBlock-BaY7RMfU.js.map +0 -1
- package/dist/flowGraphInterpolationBlock-Deyb4lKp.js +0 -51
- package/dist/flowGraphInterpolationBlock-Deyb4lKp.js.map +0 -1
- package/dist/flowGraphJsonPointerParserBlock-C0XZ7voP.js +0 -96
- package/dist/flowGraphJsonPointerParserBlock-C0XZ7voP.js.map +0 -1
- package/dist/flowGraphMathBlocks-D9VZsqBd.js +0 -865
- package/dist/flowGraphMathBlocks-D9VZsqBd.js.map +0 -1
- package/dist/flowGraphMathCombineExtractBlocks-CYx2VOEe.js +0 -249
- package/dist/flowGraphMathCombineExtractBlocks-CYx2VOEe.js.map +0 -1
- package/dist/flowGraphMatrixMathBlocks-kCWz15Cr.js +0 -118
- package/dist/flowGraphMatrixMathBlocks-kCWz15Cr.js.map +0 -1
- package/dist/flowGraphMeshPickEventBlock-Cggf-kiY.js +0 -36
- package/dist/flowGraphMeshPickEventBlock-Cggf-kiY.js.map +0 -1
- package/dist/flowGraphMultiGateBlock-2IiMMLXu.js +0 -51
- package/dist/flowGraphMultiGateBlock-2IiMMLXu.js.map +0 -1
- package/dist/flowGraphPauseAnimationBlock-DNk7vnEY.js +0 -20
- package/dist/flowGraphPauseAnimationBlock-DNk7vnEY.js.map +0 -1
- package/dist/flowGraphPlayAnimationBlock-Bvy_pOD9.js +0 -100
- package/dist/flowGraphPlayAnimationBlock-Bvy_pOD9.js.map +0 -1
- package/dist/flowGraphPointerOutEventBlock-BSXeASum.js +0 -22
- package/dist/flowGraphPointerOutEventBlock-BSXeASum.js.map +0 -1
- package/dist/flowGraphPointerOverEventBlock-9niUwwLR.js +0 -24
- package/dist/flowGraphPointerOverEventBlock-9niUwwLR.js.map +0 -1
- package/dist/flowGraphReceiveCustomEventBlock-B-RpGKFU.js +0 -44
- package/dist/flowGraphReceiveCustomEventBlock-B-RpGKFU.js.map +0 -1
- package/dist/flowGraphSceneReadyEventBlock-BmkhpqLq.js +0 -24
- package/dist/flowGraphSceneReadyEventBlock-BmkhpqLq.js.map +0 -1
- package/dist/flowGraphSceneTickEventBlock-DG-_hQkl.js +0 -33
- package/dist/flowGraphSceneTickEventBlock-DG-_hQkl.js.map +0 -1
- package/dist/flowGraphSendCustomEventBlock-7p6ilaac.js +0 -25
- package/dist/flowGraphSendCustomEventBlock-7p6ilaac.js.map +0 -1
- package/dist/flowGraphSequenceBlock-DMgne2Xw.js +0 -33
- package/dist/flowGraphSequenceBlock-DMgne2Xw.js.map +0 -1
- package/dist/flowGraphSetDelayBlock-Dh1_QPtQ.js +0 -132
- package/dist/flowGraphSetDelayBlock-Dh1_QPtQ.js.map +0 -1
- package/dist/flowGraphSetPropertyBlock-B0zcgNmf.js +0 -48
- package/dist/flowGraphSetPropertyBlock-B0zcgNmf.js.map +0 -1
- package/dist/flowGraphSetVariableBlock-Ahq62_aE.js +0 -50
- package/dist/flowGraphSetVariableBlock-Ahq62_aE.js.map +0 -1
- package/dist/flowGraphStopAnimationBlock-ZLuS0rB_.js +0 -49
- package/dist/flowGraphStopAnimationBlock-ZLuS0rB_.js.map +0 -1
- package/dist/flowGraphSwitchBlock-D_aryU14.js +0 -55
- package/dist/flowGraphSwitchBlock-D_aryU14.js.map +0 -1
- package/dist/flowGraphThrottleBlock-eCoTcBuX.js +0 -38
- package/dist/flowGraphThrottleBlock-eCoTcBuX.js.map +0 -1
- package/dist/flowGraphTransformCoordinatesSystemBlock-mMaX2Zm8.js +0 -30
- package/dist/flowGraphTransformCoordinatesSystemBlock-mMaX2Zm8.js.map +0 -1
- package/dist/flowGraphTypeToTypeBlocks-BbnGwbRv.js +0 -58
- package/dist/flowGraphTypeToTypeBlocks-BbnGwbRv.js.map +0 -1
- package/dist/flowGraphUnaryOperationBlock-DwokLm3n.js +0 -25
- package/dist/flowGraphUnaryOperationBlock-DwokLm3n.js.map +0 -1
- package/dist/flowGraphVectorMathBlocks-BGrDJod5.js +0 -179
- package/dist/flowGraphVectorMathBlocks-BGrDJod5.js.map +0 -1
- package/dist/flowGraphWaitAllBlock-BeahRLqR.js +0 -55
- package/dist/flowGraphWaitAllBlock-BeahRLqR.js.map +0 -1
- package/dist/flowGraphWhileLoopBlock-D0iFoj04.js +0 -28
- package/dist/flowGraphWhileLoopBlock-D0iFoj04.js.map +0 -1
- package/dist/harmonicsFunctions-C4qadl1C.js +0 -193
- package/dist/harmonicsFunctions-C4qadl1C.js.map +0 -1
- package/dist/harmonicsFunctions-CXZUMnGI.js +0 -189
- package/dist/harmonicsFunctions-CXZUMnGI.js.map +0 -1
- package/dist/hdrTextureLoader-_iNYaH44.js +0 -112
- package/dist/hdrTextureLoader-_iNYaH44.js.map +0 -1
- package/dist/helperFunctions-ByfdFyuJ.js +0 -115
- package/dist/helperFunctions-ByfdFyuJ.js.map +0 -1
- package/dist/helperFunctions-CNPuCjta.js +0 -83
- package/dist/helperFunctions-CNPuCjta.js.map +0 -1
- package/dist/iesTextureLoader-OgwwtBjF.js +0 -94
- package/dist/iesTextureLoader-OgwwtBjF.js.map +0 -1
- package/dist/ktxTextureLoader-B6v3rj_q.js +0 -434
- package/dist/ktxTextureLoader-B6v3rj_q.js.map +0 -1
- package/dist/lightFragment-C0q6PVj7.js +0 -532
- package/dist/lightFragment-C0q6PVj7.js.map +0 -1
- package/dist/lightFragment-DWaDfKWO.js +0 -555
- package/dist/lightFragment-DWaDfKWO.js.map +0 -1
- package/dist/logDepthDeclaration-BP3jW-d2.js +0 -28
- package/dist/logDepthDeclaration-BP3jW-d2.js.map +0 -1
- package/dist/logDepthDeclaration-GqlE_2Fz.js +0 -28
- package/dist/logDepthDeclaration-GqlE_2Fz.js.map +0 -1
- package/dist/logDepthVertex-B0z0YkDQ.js +0 -538
- package/dist/logDepthVertex-B0z0YkDQ.js.map +0 -1
- package/dist/logDepthVertex-CLrSNwrC.js +0 -528
- package/dist/logDepthVertex-CLrSNwrC.js.map +0 -1
- package/dist/mesh.vertexData.functions-Bc9lJlrU.js +0 -75
- package/dist/mesh.vertexData.functions-Bc9lJlrU.js.map +0 -1
- package/dist/oitFragment-CwPiRXix.js +0 -747
- package/dist/oitFragment-CwPiRXix.js.map +0 -1
- package/dist/oitFragment-DzCpjbSB.js +0 -883
- package/dist/oitFragment-DzCpjbSB.js.map +0 -1
- package/dist/openpbr.fragment-CWvUC4hq.js +0 -1422
- package/dist/openpbr.fragment-CWvUC4hq.js.map +0 -1
- package/dist/openpbr.fragment-LxT6waPy.js +0 -1584
- package/dist/openpbr.fragment-LxT6waPy.js.map +0 -1
- package/dist/openpbr.vertex-Bi4mgNHU.js +0 -369
- package/dist/openpbr.vertex-Bi4mgNHU.js.map +0 -1
- package/dist/openpbr.vertex-DRzpfXyj.js +0 -233
- package/dist/openpbr.vertex-DRzpfXyj.js.map +0 -1
- package/dist/openpbrMaterial-D3CBubxe.js +0 -1002
- package/dist/openpbrMaterial-D3CBubxe.js.map +0 -1
- package/dist/openpbrMaterialLoadingAdapter-Mcls0FVU.js +0 -963
- package/dist/openpbrMaterialLoadingAdapter-Mcls0FVU.js.map +0 -1
- package/dist/openpbrUboDeclaration-3n5lHFPN.js +0 -10
- package/dist/openpbrUboDeclaration-3n5lHFPN.js.map +0 -1
- package/dist/openpbrUboDeclaration-DJx5dt4w.js +0 -9
- package/dist/openpbrUboDeclaration-DJx5dt4w.js.map +0 -1
- package/dist/pass.fragment-Be8-3PbU.js +0 -11
- package/dist/pass.fragment-Be8-3PbU.js.map +0 -1
- package/dist/pass.fragment-DFvUNU34.js +0 -11
- package/dist/pass.fragment-DFvUNU34.js.map +0 -1
- package/dist/passCube.fragment-BETUq5LQ.js +0 -30
- package/dist/passCube.fragment-BETUq5LQ.js.map +0 -1
- package/dist/passCube.fragment-Cbktwy7h.js +0 -30
- package/dist/passCube.fragment-Cbktwy7h.js.map +0 -1
- package/dist/pbr.fragment-CNiSEL9q.js +0 -2534
- package/dist/pbr.fragment-CNiSEL9q.js.map +0 -1
- package/dist/pbr.fragment-D_-3aG38.js +0 -2717
- package/dist/pbr.fragment-D_-3aG38.js.map +0 -1
- package/dist/pbr.vertex-C1JQh9YM.js +0 -372
- package/dist/pbr.vertex-C1JQh9YM.js.map +0 -1
- package/dist/pbr.vertex-Ck9uyVuh.js +0 -240
- package/dist/pbr.vertex-Ck9uyVuh.js.map +0 -1
- package/dist/pbrDebug-BAGrkr0k.js +0 -700
- package/dist/pbrDebug-BAGrkr0k.js.map +0 -1
- package/dist/pbrDebug-DxGCL0is.js +0 -829
- package/dist/pbrDebug-DxGCL0is.js.map +0 -1
- package/dist/pbrMaterialLoadingAdapter-B79qeQ9D.js +0 -999
- package/dist/pbrMaterialLoadingAdapter-B79qeQ9D.js.map +0 -1
- package/dist/pbrUboDeclaration-D6_s9wF-.js +0 -9
- package/dist/pbrUboDeclaration-D6_s9wF-.js.map +0 -1
- package/dist/pbrUboDeclaration-YlX5OX8E.js +0 -10
- package/dist/pbrUboDeclaration-YlX5OX8E.js.map +0 -1
- package/dist/rgbdDecode.fragment-ByWzSxlb.js +0 -9
- package/dist/rgbdDecode.fragment-ByWzSxlb.js.map +0 -1
- package/dist/rgbdDecode.fragment-CVS6mwmS.js +0 -9
- package/dist/rgbdDecode.fragment-CVS6mwmS.js.map +0 -1
- package/dist/rgbdEncode.fragment-CETlfkW5.js +0 -9
- package/dist/rgbdEncode.fragment-CETlfkW5.js.map +0 -1
- package/dist/rgbdEncode.fragment-RyjBYOZ4.js +0 -9
- package/dist/rgbdEncode.fragment-RyjBYOZ4.js.map +0 -1
- package/dist/sage-CGV4PH2H.js +0 -72471
- package/dist/sage-CGV4PH2H.js.map +0 -1
- package/dist/tgaTextureLoader-nsywLHjQ.js +0 -199
- package/dist/tgaTextureLoader-nsywLHjQ.js.map +0 -1
- package/dist/webAudioBus-ZWIc8q6G.js +0 -89
- package/dist/webAudioBus-ZWIc8q6G.js.map +0 -1
- package/dist/webAudioMainBus-BwNrYkNa.js +0 -50
- package/dist/webAudioMainBus-BwNrYkNa.js.map +0 -1
package/dist/classes/entity.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ interface SimpleGameEntity<EntityState extends object = object> {
|
|
|
36
36
|
export declare abstract class GameEntityBehavior<RequiredState extends object = object> {
|
|
37
37
|
abstract name: string;
|
|
38
38
|
abstract eventSubscriptions: string[];
|
|
39
|
-
protected entity: SimpleGameEntity | null;
|
|
39
|
+
protected entity: SimpleGameEntity<RequiredState> | null;
|
|
40
40
|
$emit(event: GameEvent): void;
|
|
41
41
|
/**
|
|
42
42
|
* Emits an entity:state-changed event to notify UI or other observers of state changes.
|
|
@@ -50,7 +50,7 @@ export declare abstract class GameEntityBehavior<RequiredState extends object =
|
|
|
50
50
|
* Sets the entity for this behavior.
|
|
51
51
|
* @param entity
|
|
52
52
|
*/
|
|
53
|
-
$setEntity(entity: SimpleGameEntity | null): void;
|
|
53
|
+
$setEntity(entity: SimpleGameEntity<RequiredState> | null): void;
|
|
54
54
|
abstract processEvent(event: GameEvent, state: RequiredState): Promise<boolean> | boolean;
|
|
55
55
|
update?(dt: number, state: RequiredState): void;
|
|
56
56
|
destroy?(): Promise<void>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Scene, TransformNode, Vector3 } from '@babylonjs/core';
|
|
2
|
+
import { StaticSound } from '@babylonjs/core/AudioV2/abstractAudio/staticSound';
|
|
2
3
|
import { LevelConfig, LevelContext } from "../interfaces/level.d.ts";
|
|
3
4
|
import { GameEntity } from "./entity.d.ts";
|
|
4
5
|
import { Level } from "./level.d.ts";
|
|
@@ -32,6 +33,10 @@ export declare class GameLevel extends Level {
|
|
|
32
33
|
protected _entityNodes: EntityNodeData[];
|
|
33
34
|
/** Entities spawned by this level */
|
|
34
35
|
protected _spawnedEntities: GameEntity[];
|
|
36
|
+
/** Level-scoped sounds created from config */
|
|
37
|
+
protected _levelSounds: Map<string, StaticSound>;
|
|
38
|
+
/** Sounds that were playing before deactivation (for resume on activate) */
|
|
39
|
+
private _playingSoundsBeforeDeactivate;
|
|
35
40
|
/**
|
|
36
41
|
* Create a GameLevel from a configuration object
|
|
37
42
|
*
|
|
@@ -49,6 +54,15 @@ export declare class GameLevel extends Level {
|
|
|
49
54
|
* Import all meshes from the configured scene file (GLB/GLTF/Babylon) into the scene.
|
|
50
55
|
*/
|
|
51
56
|
private _loadSceneFile;
|
|
57
|
+
/**
|
|
58
|
+
* Set up the scene environment: IBL (image-based lighting) for PBR reflections and/or a visible skybox.
|
|
59
|
+
*/
|
|
60
|
+
private _processEnvironment;
|
|
61
|
+
/**
|
|
62
|
+
* Create an environment texture from an HDR or env file.
|
|
63
|
+
*/
|
|
64
|
+
private _createEnvironmentTexture;
|
|
65
|
+
private _getFileExtension;
|
|
52
66
|
/**
|
|
53
67
|
* Process cameras: apply YAML overrides to imported cameras, create new ones, and set the active camera.
|
|
54
68
|
* If no YAML cameras config exists, the first imported camera (if any) is activated.
|
|
@@ -125,6 +139,21 @@ export declare class GameLevel extends Level {
|
|
|
125
139
|
* Create a game entity for an entity-tagged node, attaching the existing scene node to it.
|
|
126
140
|
*/
|
|
127
141
|
private _processEntityNode;
|
|
142
|
+
/**
|
|
143
|
+
* Create level-scoped sounds from YAML config. Sounds are tracked for lifecycle management
|
|
144
|
+
* (pause on deactivate, resume on activate, dispose on unload).
|
|
145
|
+
*/
|
|
146
|
+
private _processLevelSounds;
|
|
147
|
+
/**
|
|
148
|
+
* Pause all playing level sounds when the level is deactivated.
|
|
149
|
+
* Subclasses that override this must call `super.onDeactivate()`.
|
|
150
|
+
*/
|
|
151
|
+
onDeactivate(): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Resume previously playing level sounds when the level is reactivated.
|
|
154
|
+
* Subclasses that override this must call `super.onActivate()`.
|
|
155
|
+
*/
|
|
156
|
+
onActivate(): Promise<void>;
|
|
128
157
|
/**
|
|
129
158
|
* Dispose of this level's resources
|
|
130
159
|
*/
|
|
@@ -79,10 +79,14 @@ export interface LevelConfig {
|
|
|
79
79
|
};
|
|
80
80
|
/** Asset paths to preload before building the scene */
|
|
81
81
|
preload?: string[];
|
|
82
|
+
/** Environment configuration (skybox and IBL lighting) */
|
|
83
|
+
environment?: EnvironmentConfig;
|
|
82
84
|
/** Camera configuration. Keys match Blender camera names (override) or define new cameras (create). */
|
|
83
85
|
cameras?: Record<string, CameraDefinition>;
|
|
84
86
|
/** Light configuration. Keys match Blender light names (override) or define new lights (create). */
|
|
85
87
|
lights?: Record<string, LightDefinition>;
|
|
88
|
+
/** Level-scoped sound configuration. Sounds are paused/resumed with level lifecycle. */
|
|
89
|
+
sounds?: Record<string, LevelSoundConfig>;
|
|
86
90
|
/** Post-processing effects configuration */
|
|
87
91
|
postProcessing?: PostProcessingConfig;
|
|
88
92
|
}
|
|
@@ -148,6 +152,42 @@ export interface LightDefinition {
|
|
|
148
152
|
angle?: number;
|
|
149
153
|
exponent?: number;
|
|
150
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Configuration for the scene environment: skybox visuals and IBL (image-based lighting) for PBR reflections.
|
|
157
|
+
*
|
|
158
|
+
* - `ibl` alone: sets PBR reflection source, no visible skybox
|
|
159
|
+
* - `skybox` alone with HDR/env: used for both IBL and visible skybox
|
|
160
|
+
* - `skybox` alone with JPG/PNG: visible skybox sphere, no IBL
|
|
161
|
+
* - Both `ibl` and `skybox`: separate IBL source and visible skybox (recommended for quality)
|
|
162
|
+
*/
|
|
163
|
+
export interface EnvironmentConfig {
|
|
164
|
+
/** HDR or env file for PBR reflections (IBL) */
|
|
165
|
+
ibl?: string;
|
|
166
|
+
/** IBL cubemap resolution in pixels (default 256) */
|
|
167
|
+
iblResolution?: number;
|
|
168
|
+
/** Skybox texture path. HDR/env creates a cubemap skybox; JPG/PNG creates a textured sphere. */
|
|
169
|
+
skybox?: string;
|
|
170
|
+
/** Skybox sphere diameter (default 1000). Only applies to JPG/PNG sphere skyboxes. */
|
|
171
|
+
skyboxSize?: number;
|
|
172
|
+
/** Y-axis rotation in radians for the environment texture */
|
|
173
|
+
rotation?: number;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Configuration for a level-scoped sound. Sounds are created when the level loads,
|
|
177
|
+
* paused on deactivate, resumed on activate, and disposed on unload.
|
|
178
|
+
*/
|
|
179
|
+
export interface LevelSoundConfig {
|
|
180
|
+
/** Path to the audio file */
|
|
181
|
+
url: string;
|
|
182
|
+
/** Audio channel name (e.g., 'music', 'sfx', 'ambient') */
|
|
183
|
+
channel?: string;
|
|
184
|
+
/** Whether to loop the sound (default false) */
|
|
185
|
+
loop?: boolean;
|
|
186
|
+
/** Whether to start playing when the level loads (default false) */
|
|
187
|
+
autoplay?: boolean;
|
|
188
|
+
/** Volume level 0-1 (default 1) */
|
|
189
|
+
volume?: number;
|
|
190
|
+
}
|
|
151
191
|
/**
|
|
152
192
|
* Configuration for post-processing effects applied to a level's scene.
|
|
153
193
|
*/
|