@luminocity/lemonate-engine 15.2.2 → 15.2.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/engine.min.js +302 -0
- package/dist/player.zip +302 -0
- package/package.json +6 -2
- package/dist/Builder.js +0 -93
- package/dist/Builder.js.map +0 -1
- package/dist/Canvas.js +0 -109
- package/dist/Canvas.js.map +0 -1
- package/dist/Controllers.js +0 -97
- package/dist/Controllers.js.map +0 -1
- package/dist/EditorScene.js +0 -372
- package/dist/EditorScene.js.map +0 -1
- package/dist/Engine.js +0 -1576
- package/dist/Engine.js.map +0 -1
- package/dist/LoadingManager.js +0 -1195
- package/dist/LoadingManager.js.map +0 -1
- package/dist/LoadingState.js +0 -37
- package/dist/LoadingState.js.map +0 -1
- package/dist/Logger.js +0 -141
- package/dist/Logger.js.map +0 -1
- package/dist/Player.js +0 -470
- package/dist/Player.js.map +0 -1
- package/dist/Preview.js +0 -166
- package/dist/Preview.js.map +0 -1
- package/dist/RenderOptions.js +0 -59
- package/dist/RenderOptions.js.map +0 -1
- package/dist/RenderPassInfo.js +0 -133
- package/dist/RenderPassInfo.js.map +0 -1
- package/dist/RenderView.js +0 -459
- package/dist/RenderView.js.map +0 -1
- package/dist/Renderer.js +0 -1867
- package/dist/Renderer.js.map +0 -1
- package/dist/SceneGraph.js +0 -798
- package/dist/SceneGraph.js.map +0 -1
- package/dist/SceneGraphCollection.js +0 -614
- package/dist/SceneGraphCollection.js.map +0 -1
- package/dist/Shortcuts.js +0 -259
- package/dist/Shortcuts.js.map +0 -1
- package/dist/Tools.js +0 -500
- package/dist/Tools.js.map +0 -1
- package/dist/Variables.js +0 -243
- package/dist/Variables.js.map +0 -1
- package/dist/helpers/ArrowHelper.js +0 -104
- package/dist/helpers/ArrowHelper.js.map +0 -1
- package/dist/helpers/BoxHelper.js +0 -112
- package/dist/helpers/BoxHelper.js.map +0 -1
- package/dist/helpers/CameraHelper.js +0 -237
- package/dist/helpers/CameraHelper.js.map +0 -1
- package/dist/helpers/FaceNormalsHelper.js +0 -85
- package/dist/helpers/FaceNormalsHelper.js.map +0 -1
- package/dist/helpers/MeshHelper.js +0 -92
- package/dist/helpers/MeshHelper.js.map +0 -1
- package/dist/helpers/MultiGridHelper.js +0 -61
- package/dist/helpers/MultiGridHelper.js.map +0 -1
- package/dist/helpers/ParticlesHelper.js +0 -245
- package/dist/helpers/ParticlesHelper.js.map +0 -1
- package/dist/helpers/PointHelper.js +0 -85
- package/dist/helpers/PointHelper.js.map +0 -1
- package/dist/helpers/SphereHelper.js +0 -62
- package/dist/helpers/SphereHelper.js.map +0 -1
- package/dist/helpers/VertexNormalsHelper.js +0 -75
- package/dist/helpers/VertexNormalsHelper.js.map +0 -1
- package/dist/helpers/ViewHelper.js +0 -252
- package/dist/helpers/ViewHelper.js.map +0 -1
- package/dist/helpers/lighthelpers/DirectionalLightHelper.js +0 -136
- package/dist/helpers/lighthelpers/DirectionalLightHelper.js.map +0 -1
- package/dist/helpers/lighthelpers/HemisphereLightHelper.js +0 -124
- package/dist/helpers/lighthelpers/HemisphereLightHelper.js.map +0 -1
- package/dist/helpers/lighthelpers/PointLightHelper.js +0 -133
- package/dist/helpers/lighthelpers/PointLightHelper.js.map +0 -1
- package/dist/helpers/lighthelpers/SpotLightHelper.js +0 -123
- package/dist/helpers/lighthelpers/SpotLightHelper.js.map +0 -1
- package/dist/index.js +0 -40
- package/dist/index.js.map +0 -1
- package/dist/items/AudioCollectionItem.js +0 -230
- package/dist/items/AudioCollectionItem.js.map +0 -1
- package/dist/items/AudioItem.js +0 -75
- package/dist/items/AudioItem.js.map +0 -1
- package/dist/items/BackgroundShaderItem.js +0 -239
- package/dist/items/BackgroundShaderItem.js.map +0 -1
- package/dist/items/CanvasTextureItem.js +0 -194
- package/dist/items/CanvasTextureItem.js.map +0 -1
- package/dist/items/CompositionItem.js +0 -110
- package/dist/items/CompositionItem.js.map +0 -1
- package/dist/items/FontItem.js +0 -135
- package/dist/items/FontItem.js.map +0 -1
- package/dist/items/GaussianSplatsItem.js +0 -103
- package/dist/items/GaussianSplatsItem.js.map +0 -1
- package/dist/items/GridMapItem.js +0 -202
- package/dist/items/GridMapItem.js.map +0 -1
- package/dist/items/ImageItem.js +0 -255
- package/dist/items/ImageItem.js.map +0 -1
- package/dist/items/Item.js +0 -739
- package/dist/items/Item.js.map +0 -1
- package/dist/items/MaterialCollectionItem.js +0 -216
- package/dist/items/MaterialCollectionItem.js.map +0 -1
- package/dist/items/MaterialItem.js +0 -1762
- package/dist/items/MaterialItem.js.map +0 -1
- package/dist/items/MeshCollectionItem.js +0 -258
- package/dist/items/MeshCollectionItem.js.map +0 -1
- package/dist/items/MeshItem.js +0 -274
- package/dist/items/MeshItem.js.map +0 -1
- package/dist/items/ParticlesItem.js +0 -187
- package/dist/items/ParticlesItem.js.map +0 -1
- package/dist/items/PixelShaderItem.js +0 -42
- package/dist/items/PixelShaderItem.js.map +0 -1
- package/dist/items/PointsItem.js +0 -122
- package/dist/items/PointsItem.js.map +0 -1
- package/dist/items/PrefabItem.js +0 -140
- package/dist/items/PrefabItem.js.map +0 -1
- package/dist/items/ProjectItem.js +0 -857
- package/dist/items/ProjectItem.js.map +0 -1
- package/dist/items/SceneItem.js +0 -443
- package/dist/items/SceneItem.js.map +0 -1
- package/dist/items/ScriptItem.js +0 -159
- package/dist/items/ScriptItem.js.map +0 -1
- package/dist/items/VariableSetItem.js +0 -208
- package/dist/items/VariableSetItem.js.map +0 -1
- package/dist/items/VertexShaderItem.js +0 -42
- package/dist/items/VertexShaderItem.js.map +0 -1
- package/dist/items/VideoItem.js +0 -152
- package/dist/items/VideoItem.js.map +0 -1
- package/dist/items/base/ImageOwningItem.js +0 -205
- package/dist/items/base/ImageOwningItem.js.map +0 -1
- package/dist/items/base/MeshBase.js +0 -342
- package/dist/items/base/MeshBase.js.map +0 -1
- package/dist/items/base/ShaderBase.js +0 -115
- package/dist/items/base/ShaderBase.js.map +0 -1
- package/dist/items/helpers/ListEntry.js +0 -113
- package/dist/items/helpers/ListEntry.js.map +0 -1
- package/dist/items/helpers/ListField.js +0 -210
- package/dist/items/helpers/ListField.js.map +0 -1
- package/dist/items/helpers/MappingSetup.js +0 -126
- package/dist/items/helpers/MappingSetup.js.map +0 -1
- package/dist/json/packageVersionInfo.json +0 -6
- package/dist/json/shortcuts.json +0 -37
- package/dist/renderers/ForwardRenderer.js +0 -50
- package/dist/renderers/ForwardRenderer.js.map +0 -1
- package/dist/renderers/RendererBase.js +0 -38
- package/dist/renderers/RendererBase.js.map +0 -1
- package/dist/scenegraph/SgAudio.js +0 -286
- package/dist/scenegraph/SgAudio.js.map +0 -1
- package/dist/scenegraph/SgAudioListener.js +0 -64
- package/dist/scenegraph/SgAudioListener.js.map +0 -1
- package/dist/scenegraph/SgBillboard.js +0 -150
- package/dist/scenegraph/SgBillboard.js.map +0 -1
- package/dist/scenegraph/SgBox.js +0 -54
- package/dist/scenegraph/SgBox.js.map +0 -1
- package/dist/scenegraph/SgCamera.js +0 -219
- package/dist/scenegraph/SgCamera.js.map +0 -1
- package/dist/scenegraph/SgCircleShadow.js +0 -105
- package/dist/scenegraph/SgCircleShadow.js.map +0 -1
- package/dist/scenegraph/SgCone.js +0 -61
- package/dist/scenegraph/SgCone.js.map +0 -1
- package/dist/scenegraph/SgCylinder.js +0 -62
- package/dist/scenegraph/SgCylinder.js.map +0 -1
- package/dist/scenegraph/SgGaussianSplats.js +0 -103
- package/dist/scenegraph/SgGaussianSplats.js.map +0 -1
- package/dist/scenegraph/SgGridMap.js +0 -112
- package/dist/scenegraph/SgGridMap.js.map +0 -1
- package/dist/scenegraph/SgGroup.js +0 -40
- package/dist/scenegraph/SgGroup.js.map +0 -1
- package/dist/scenegraph/SgItem.js +0 -1427
- package/dist/scenegraph/SgItem.js.map +0 -1
- package/dist/scenegraph/SgItemScript.js +0 -117
- package/dist/scenegraph/SgItemScript.js.map +0 -1
- package/dist/scenegraph/SgLightsource.js +0 -319
- package/dist/scenegraph/SgLightsource.js.map +0 -1
- package/dist/scenegraph/SgLod.js +0 -82
- package/dist/scenegraph/SgLod.js.map +0 -1
- package/dist/scenegraph/SgMesh.js +0 -662
- package/dist/scenegraph/SgMesh.js.map +0 -1
- package/dist/scenegraph/SgNavMesh.js +0 -503
- package/dist/scenegraph/SgNavMesh.js.map +0 -1
- package/dist/scenegraph/SgParticles.js +0 -796
- package/dist/scenegraph/SgParticles.js.map +0 -1
- package/dist/scenegraph/SgPhysicsItem.js +0 -806
- package/dist/scenegraph/SgPhysicsItem.js.map +0 -1
- package/dist/scenegraph/SgPhysicsSubItem.js +0 -449
- package/dist/scenegraph/SgPhysicsSubItem.js.map +0 -1
- package/dist/scenegraph/SgPlane.js +0 -47
- package/dist/scenegraph/SgPlane.js.map +0 -1
- package/dist/scenegraph/SgPoints.js +0 -143
- package/dist/scenegraph/SgPoints.js.map +0 -1
- package/dist/scenegraph/SgPositionalAudio.js +0 -93
- package/dist/scenegraph/SgPositionalAudio.js.map +0 -1
- package/dist/scenegraph/SgPrefab.js +0 -153
- package/dist/scenegraph/SgPrefab.js.map +0 -1
- package/dist/scenegraph/SgProceduralGeometryItem.js +0 -146
- package/dist/scenegraph/SgProceduralGeometryItem.js.map +0 -1
- package/dist/scenegraph/SgResourceOwner.js +0 -127
- package/dist/scenegraph/SgResourceOwner.js.map +0 -1
- package/dist/scenegraph/SgRibbon.js +0 -107
- package/dist/scenegraph/SgRibbon.js.map +0 -1
- package/dist/scenegraph/SgRing.js +0 -49
- package/dist/scenegraph/SgRing.js.map +0 -1
- package/dist/scenegraph/SgRoot.js +0 -87
- package/dist/scenegraph/SgRoot.js.map +0 -1
- package/dist/scenegraph/SgScriptedMesh.js +0 -213
- package/dist/scenegraph/SgScriptedMesh.js.map +0 -1
- package/dist/scenegraph/SgSky.js +0 -126
- package/dist/scenegraph/SgSky.js.map +0 -1
- package/dist/scenegraph/SgSphere.js +0 -59
- package/dist/scenegraph/SgSphere.js.map +0 -1
- package/dist/scenegraph/SgText.js +0 -182
- package/dist/scenegraph/SgText.js.map +0 -1
- package/dist/scenegraph/SgTorus.js +0 -48
- package/dist/scenegraph/SgTorus.js.map +0 -1
- package/dist/scenegraph/SgVehicle.js +0 -370
- package/dist/scenegraph/SgVehicle.js.map +0 -1
- package/dist/subsystems/AudioSystem.js +0 -128
- package/dist/subsystems/AudioSystem.js.map +0 -1
- package/dist/subsystems/Billboard.js +0 -190
- package/dist/subsystems/Billboard.js.map +0 -1
- package/dist/subsystems/FontLoader.js +0 -161
- package/dist/subsystems/FontLoader.js.map +0 -1
- package/dist/subsystems/Physics.js +0 -1079
- package/dist/subsystems/Physics.js.map +0 -1
- package/dist/subsystems/Ribbons.js +0 -179
- package/dist/subsystems/Ribbons.js.map +0 -1
- package/dist/subsystems/gridmap/GridMapBuilder.js +0 -430
- package/dist/subsystems/gridmap/GridMapBuilder.js.map +0 -1
- package/dist/subsystems/imgui/ImGui.js +0 -742
- package/dist/subsystems/imgui/ImGui.js.map +0 -1
- package/dist/subsystems/importer/Converter.js +0 -199
- package/dist/subsystems/importer/Converter.js.map +0 -1
- package/dist/subsystems/importer/ImageConverter.js +0 -77
- package/dist/subsystems/importer/ImageConverter.js.map +0 -1
- package/dist/subsystems/importer/Importer.js +0 -381
- package/dist/subsystems/importer/Importer.js.map +0 -1
- package/dist/subsystems/importer/MeshConverter.js +0 -595
- package/dist/subsystems/importer/MeshConverter.js.map +0 -1
- package/dist/subsystems/particlesystem/CurlNoiseTexturePreview.js +0 -127
- package/dist/subsystems/particlesystem/CurlNoiseTexturePreview.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/CircleEmitter.js +0 -135
- package/dist/subsystems/particlesystem/Emitters/CircleEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/ConeEmitter.js +0 -192
- package/dist/subsystems/particlesystem/Emitters/ConeEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/CubeEmitter.js +0 -157
- package/dist/subsystems/particlesystem/Emitters/CubeEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/EdgeEmitter.js +0 -133
- package/dist/subsystems/particlesystem/Emitters/EdgeEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/Emitter.js +0 -107
- package/dist/subsystems/particlesystem/Emitters/Emitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/HemiSphereEmitter.js +0 -142
- package/dist/subsystems/particlesystem/Emitters/HemiSphereEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/MeshEmitter.js +0 -56
- package/dist/subsystems/particlesystem/Emitters/MeshEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/SphereEmitter.js +0 -142
- package/dist/subsystems/particlesystem/Emitters/SphereEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/Emitters/TorusEmitter.js +0 -159
- package/dist/subsystems/particlesystem/Emitters/TorusEmitter.js.map +0 -1
- package/dist/subsystems/particlesystem/ParticleSystem.js +0 -706
- package/dist/subsystems/particlesystem/ParticleSystem.js.map +0 -1
- package/dist/subsystems/particlesystem/Simulation.js +0 -475
- package/dist/subsystems/particlesystem/Simulation.js.map +0 -1
- package/dist/subsystems/particlesystem/Visualization.js +0 -518
- package/dist/subsystems/particlesystem/Visualization.js.map +0 -1
- package/dist/subsystems/particlesystem/shaders/noise/CurlNoiseTexturePreviewShader.js +0 -56
- package/dist/subsystems/particlesystem/shaders/noise/CurlNoiseTexturePreviewShader.js.map +0 -1
- package/dist/subsystems/particlesystem/utils.js +0 -115
- package/dist/subsystems/particlesystem/utils.js.map +0 -1
- package/dist/subsystems/scripting/ScriptEngine.js +0 -1074
- package/dist/subsystems/scripting/ScriptEngine.js.map +0 -1
- package/dist/subsystems/scripting/ScriptRunner.js +0 -153
- package/dist/subsystems/scripting/ScriptRunner.js.map +0 -1
- package/dist/subsystems/scripting/ScriptRuntime.js +0 -244
- package/dist/subsystems/scripting/ScriptRuntime.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtAudio.js +0 -37
- package/dist/subsystems/scripting/runtime/RtAudio.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtBase.js +0 -117
- package/dist/subsystems/scripting/runtime/RtBase.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtCanvas.js +0 -326
- package/dist/subsystems/scripting/runtime/RtCanvas.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtComposer.js +0 -58
- package/dist/subsystems/scripting/runtime/RtComposer.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtConsole.js +0 -51
- package/dist/subsystems/scripting/runtime/RtConsole.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtControllers.js +0 -52
- package/dist/subsystems/scripting/runtime/RtControllers.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtEvents.js +0 -46
- package/dist/subsystems/scripting/runtime/RtEvents.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtImGui.js +0 -410
- package/dist/subsystems/scripting/runtime/RtImGui.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtItem.js +0 -297
- package/dist/subsystems/scripting/runtime/RtItem.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtLoader.js +0 -77
- package/dist/subsystems/scripting/runtime/RtLoader.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtObject.js +0 -34
- package/dist/subsystems/scripting/runtime/RtObject.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtPhysics.js +0 -69
- package/dist/subsystems/scripting/runtime/RtPhysics.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtPointer.js +0 -45
- package/dist/subsystems/scripting/runtime/RtPointer.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtProject.js +0 -66
- package/dist/subsystems/scripting/runtime/RtProject.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtRenderer.js +0 -138
- package/dist/subsystems/scripting/runtime/RtRenderer.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtSceneEntry.js +0 -67
- package/dist/subsystems/scripting/runtime/RtSceneEntry.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtSceneObject.js +0 -666
- package/dist/subsystems/scripting/runtime/RtSceneObject.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtStorage.js +0 -64
- package/dist/subsystems/scripting/runtime/RtStorage.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtSystem.js +0 -85
- package/dist/subsystems/scripting/runtime/RtSystem.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtTools.js +0 -37
- package/dist/subsystems/scripting/runtime/RtTools.js.map +0 -1
- package/dist/subsystems/scripting/runtime/RtVariables.js +0 -57
- package/dist/subsystems/scripting/runtime/RtVariables.js.map +0 -1
- package/dist/subsystems/scripting/runtime/items/RtCanvasTexture.js +0 -101
- package/dist/subsystems/scripting/runtime/items/RtCanvasTexture.js.map +0 -1
- package/dist/subsystems/scripting/runtime/items/RtMaterial.js +0 -34
- package/dist/subsystems/scripting/runtime/items/RtMaterial.js.map +0 -1
- package/dist/subsystems/scripting/runtime/items/RtMesh.js +0 -34
- package/dist/subsystems/scripting/runtime/items/RtMesh.js.map +0 -1
- package/dist/subsystems/scripting/runtime/items/RtTexture.js +0 -34
- package/dist/subsystems/scripting/runtime/items/RtTexture.js.map +0 -1
- package/dist/subsystems/scripting/runtime/items/RtVideo.js +0 -56
- package/dist/subsystems/scripting/runtime/items/RtVideo.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgAudio.js +0 -59
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgAudio.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgCamera.js +0 -134
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgCamera.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgMesh.js +0 -99
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgMesh.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgNavMesh.js +0 -114
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgNavMesh.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgParticles.js +0 -576
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgParticles.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgPositionalAudio.js +0 -56
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgPositionalAudio.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgRibbon.js +0 -42
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgRibbon.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgScriptedMesh.js +0 -65
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgScriptedMesh.js.map +0 -1
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgVehicle.js +0 -60
- package/dist/subsystems/scripting/runtime/sceneobjects/RtSgVehicle.js.map +0 -1
- package/dist/tools/AsyncInterval.js +0 -55
- package/dist/tools/AsyncInterval.js.map +0 -1
- package/dist/tools/Converters.js +0 -41
- package/dist/tools/Converters.js.map +0 -1
- package/dist/tools/DebugTools.js +0 -91
- package/dist/tools/DebugTools.js.map +0 -1
- package/dist/tools/FontTools.js +0 -43
- package/dist/tools/FontTools.js.map +0 -1
- package/dist/tools/FsShader.js +0 -112
- package/dist/tools/FsShader.js.map +0 -1
- package/dist/tools/GeometryTools.js +0 -373
- package/dist/tools/GeometryTools.js.map +0 -1
- package/dist/tools/ItemTools.js +0 -139
- package/dist/tools/ItemTools.js.map +0 -1
- package/dist/tools/MathHelpers.js +0 -125
- package/dist/tools/MathHelpers.js.map +0 -1
- package/dist/tools/Profiler.js +0 -174
- package/dist/tools/Profiler.js.map +0 -1
- package/dist/tools/Random.js +0 -48
- package/dist/tools/Random.js.map +0 -1
- package/dist/tools/RtDebugger.js +0 -84
- package/dist/tools/RtDebugger.js.map +0 -1
- package/dist/tools/StringExtensions.js +0 -72
- package/dist/tools/StringExtensions.js.map +0 -1
- package/dist/tools/TextureTools.js +0 -444
- package/dist/tools/TextureTools.js.map +0 -1
- package/dist/tools/Timer.js +0 -52
- package/dist/tools/Timer.js.map +0 -1
- package/dist/tools/audioVisualizers/WavyAudioVisualizer.js +0 -59
- package/dist/tools/audioVisualizers/WavyAudioVisualizer.js.map +0 -1
- /package/dist/renderers/{forwardrenderer.d.ts → ForwardRenderer.d.ts} +0 -0
- /package/dist/subsystems/imgui/{imgui.d.ts → ImGui.d.ts} +0 -0
- /package/dist/subsystems/importer/{imageconverter.d.ts → ImageConverter.d.ts} +0 -0
- /package/dist/subsystems/scripting/{scriptrunner.d.ts → ScriptRunner.d.ts} +0 -0
- /package/dist/subsystems/scripting/{scriptruntime.d.ts → ScriptRuntime.d.ts} +0 -0
- /package/dist/subsystems/scripting/runtime/{rtAudio.d.ts → RtAudio.d.ts} +0 -0
- /package/dist/subsystems/scripting/runtime/{rtComposer.d.ts → RtComposer.d.ts} +0 -0
- /package/dist/subsystems/scripting/runtime/{rtObject.d.ts → RtObject.d.ts} +0 -0
|
@@ -1,857 +0,0 @@
|
|
|
1
|
-
// -----------------------------------------------------------------------------------------------------------
|
|
2
|
-
// __ ______ __ __ ______ __ __ ______ ______ ______
|
|
3
|
-
// /\ \ /\ ___\ /\ "-./ \ /\ __ \ /\ "-.\ \ /\ __ \ /\__ _\ /\ ___\
|
|
4
|
-
// \ \ \____ \ \ __\ \ \ \-./\ \ \ \ \/\ \ \ \ \-. \ \ \ __ \ \/_/\ \/ \ \ __\
|
|
5
|
-
// \ \_____\ \ \_____\ \ \_\ \ \_\ \ \_____\ \ \_\\"\_\ \ \_\ \_\ \ \_\ \ \_____\
|
|
6
|
-
// \/_____/ \/_____/ \/_/ \/_/ \/_____/ \/_/ \/_/ \/_/\/_/ \/_/ \/_____/
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
// Copyright 2023- Luminocity AG
|
|
10
|
-
//
|
|
11
|
-
// "I am Error." - The Legend of Zelda: Majora’s Mask (2000)
|
|
12
|
-
//
|
|
13
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
14
|
-
// and associated documentation files (the “Software”), to deal in the Software without restriction,
|
|
15
|
-
// including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
16
|
-
// and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
17
|
-
// subject to the following conditions:
|
|
18
|
-
//
|
|
19
|
-
// The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
20
|
-
// portions of the Software.
|
|
21
|
-
//
|
|
22
|
-
// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
23
|
-
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
24
|
-
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
25
|
-
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
26
|
-
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
27
|
-
// -----------------------------------------------------------------------------------------------------------
|
|
28
|
-
import { Item, ItemState } from './Item';
|
|
29
|
-
import { ListEntry } from './helpers/ListEntry';
|
|
30
|
-
import { LoadingState } from "@/LoadingState";
|
|
31
|
-
import { Vector3 } from "three";
|
|
32
|
-
import { MaxLayerCount } from "@/Renderer";
|
|
33
|
-
import tools from '../Tools.js';
|
|
34
|
-
import { WaitMode } from "@/Engine";
|
|
35
|
-
export class ProjectData {
|
|
36
|
-
scenes = new Map();
|
|
37
|
-
sceneListEntries = new Map();
|
|
38
|
-
variableSets = new Map();
|
|
39
|
-
variableSetListEntries = new Map();
|
|
40
|
-
canvasFonts = new Map();
|
|
41
|
-
canvasFontListEntries = new Map();
|
|
42
|
-
}
|
|
43
|
-
export class ProjectItem extends Item {
|
|
44
|
-
project;
|
|
45
|
-
withinSetPrimaryScene = false;
|
|
46
|
-
getType() {
|
|
47
|
-
return "Project";
|
|
48
|
-
}
|
|
49
|
-
getObject() {
|
|
50
|
-
return this.project;
|
|
51
|
-
}
|
|
52
|
-
init() {
|
|
53
|
-
this.project = new ProjectData();
|
|
54
|
-
}
|
|
55
|
-
addVariableSet(itemId) {
|
|
56
|
-
// todo: add variable set to project
|
|
57
|
-
}
|
|
58
|
-
getGravity() {
|
|
59
|
-
return this.getFieldValueVec3("Gravity");
|
|
60
|
-
}
|
|
61
|
-
setGravity(value) {
|
|
62
|
-
this.setFieldValue("Gravity", value);
|
|
63
|
-
this.engine.physics.setGravity(new Vector3(value.x, value.y, value.z));
|
|
64
|
-
}
|
|
65
|
-
getAspectRatio() {
|
|
66
|
-
const aspectRatio = this.getFieldValue("AspectRatio");
|
|
67
|
-
switch (aspectRatio) {
|
|
68
|
-
case "Not defined": return null;
|
|
69
|
-
case "Standard (4:3)": return 4 / 3;
|
|
70
|
-
case "Widescreen (16:9)": return 16 / 9;
|
|
71
|
-
case "Ultrawide (21:9)": return 21 / 9;
|
|
72
|
-
case "Custom": return this.getFieldValue("CustomAspect");
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
getExecutionWaitMode() {
|
|
76
|
-
const value = this.getFieldValue("StartExecution");
|
|
77
|
-
switch (value) {
|
|
78
|
-
case "After loading minimum LOD":
|
|
79
|
-
return WaitMode.Ready;
|
|
80
|
-
case "After loading everything":
|
|
81
|
-
return WaitMode.Finished;
|
|
82
|
-
case "Right away":
|
|
83
|
-
default:
|
|
84
|
-
return WaitMode.None;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
getSceneListEntries() {
|
|
88
|
-
if (!this.project) {
|
|
89
|
-
throw new Error("Project not set.");
|
|
90
|
-
}
|
|
91
|
-
return this.project.sceneListEntries;
|
|
92
|
-
}
|
|
93
|
-
getSceneListEntryByName(name) {
|
|
94
|
-
if (!this.project) {
|
|
95
|
-
throw new Error("Project not set.");
|
|
96
|
-
}
|
|
97
|
-
for (const entry of this.project.sceneListEntries.values()) {
|
|
98
|
-
const id = entry.getId();
|
|
99
|
-
const scene = this.project.scenes.get(id);
|
|
100
|
-
if (scene && scene.getName() == name)
|
|
101
|
-
return entry;
|
|
102
|
-
}
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
async play() {
|
|
106
|
-
const physicsEnabled = this.getFieldValue("PhysicsEnabled");
|
|
107
|
-
if (physicsEnabled) {
|
|
108
|
-
const gravity = this.getFieldValue("Gravity");
|
|
109
|
-
this.engine.physics.setGravity(new Vector3(gravity.x, gravity.y, gravity.z));
|
|
110
|
-
this.engine.physics.start();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
async stop() {
|
|
114
|
-
const physicsEnabled = this.getFieldValue("PhysicsEnabled");
|
|
115
|
-
if (physicsEnabled) {
|
|
116
|
-
this.engine.physics.stop();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
_enumerateChildren() {
|
|
120
|
-
let itemChildren = [];
|
|
121
|
-
if (this.project) {
|
|
122
|
-
// Enumerate all scenes
|
|
123
|
-
// ---------------------------------------------------------------------
|
|
124
|
-
for (const entry of this.project.sceneListEntries.values()) {
|
|
125
|
-
const load = entry.getFieldValue("Load");
|
|
126
|
-
if (load) {
|
|
127
|
-
const id = entry.getId();
|
|
128
|
-
const scene = this.project.scenes.get(id);
|
|
129
|
-
if (scene)
|
|
130
|
-
itemChildren.push(scene);
|
|
131
|
-
else
|
|
132
|
-
itemChildren.push({ _id: id, load: true });
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// Enumerate all variable sets
|
|
136
|
-
// ---------------------------------------------------------------------
|
|
137
|
-
for (const entry of this.project.variableSetListEntries.values()) {
|
|
138
|
-
const id = entry.getId();
|
|
139
|
-
const variableSet = this.project.variableSets.get(id);
|
|
140
|
-
if (variableSet)
|
|
141
|
-
itemChildren.push(variableSet);
|
|
142
|
-
else
|
|
143
|
-
itemChildren.push({ _id: id, load: true });
|
|
144
|
-
}
|
|
145
|
-
// Enumerate all fonts
|
|
146
|
-
// ---------------------------------------------------------------------
|
|
147
|
-
for (const entry of this.project.canvasFontListEntries.values()) {
|
|
148
|
-
const id = entry.getId();
|
|
149
|
-
const font = this.project.canvasFonts.get(id);
|
|
150
|
-
if (font)
|
|
151
|
-
itemChildren.push(font);
|
|
152
|
-
else
|
|
153
|
-
itemChildren.push({ _id: id, load: true });
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return itemChildren;
|
|
157
|
-
}
|
|
158
|
-
isReadyForUse() {
|
|
159
|
-
if (!this.project)
|
|
160
|
-
return false;
|
|
161
|
-
for (const entry of this.project.sceneListEntries.values()) {
|
|
162
|
-
const load = entry.getFieldValue("Load");
|
|
163
|
-
if (load) {
|
|
164
|
-
const id = entry.getId();
|
|
165
|
-
const scene = this.project.scenes.get(id);
|
|
166
|
-
if (!scene)
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
for (const entry of this.project.variableSetListEntries.values()) {
|
|
171
|
-
const id = entry.getId();
|
|
172
|
-
const vs = this.project.variableSets.get(id);
|
|
173
|
-
if (!vs)
|
|
174
|
-
return false;
|
|
175
|
-
}
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
async create() {
|
|
179
|
-
await this.destroy();
|
|
180
|
-
this.state = ItemState.Created;
|
|
181
|
-
this.init();
|
|
182
|
-
return this;
|
|
183
|
-
}
|
|
184
|
-
async load() {
|
|
185
|
-
this._loadingManagerProgress(LoadingState.IMPORTING);
|
|
186
|
-
this.updateLayerNames();
|
|
187
|
-
this.updateCollisionMatrix();
|
|
188
|
-
this.updateAutomaticPointerLock();
|
|
189
|
-
await Promise.all([
|
|
190
|
-
this._updateScenes(),
|
|
191
|
-
this._updateVariableSets(),
|
|
192
|
-
this._updateCanvasFonts()
|
|
193
|
-
]);
|
|
194
|
-
this._loadingManagerProgress(LoadingState.DONE);
|
|
195
|
-
}
|
|
196
|
-
updateLayerNames() {
|
|
197
|
-
const layers = this.getFieldValue("LayerNames");
|
|
198
|
-
if (layers.length > MaxLayerCount) {
|
|
199
|
-
layers.splice(MaxLayerCount - 1);
|
|
200
|
-
}
|
|
201
|
-
if (layers.length < MaxLayerCount) {
|
|
202
|
-
while (layers.length < MaxLayerCount) {
|
|
203
|
-
layers.push("");
|
|
204
|
-
}
|
|
205
|
-
this.setFieldValue("LayerNames", layers);
|
|
206
|
-
}
|
|
207
|
-
try {
|
|
208
|
-
this.engine.renderer.setLayers(layers);
|
|
209
|
-
}
|
|
210
|
-
catch (err) {
|
|
211
|
-
console.log(layers);
|
|
212
|
-
console.error(err);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
updateCollisionMatrix() {
|
|
216
|
-
const collisionMatrix = this.getFieldValue("CollisionMatrix");
|
|
217
|
-
this.engine.physics.setCollisionMatrix(collisionMatrix);
|
|
218
|
-
}
|
|
219
|
-
updateAutomaticPointerLock() {
|
|
220
|
-
const automaticPointerLock = this.getFieldValue("AutomaticPointerLock") || false;
|
|
221
|
-
this.engine.renderer.setAutomaticPointerLock(automaticPointerLock);
|
|
222
|
-
}
|
|
223
|
-
_updateState() {
|
|
224
|
-
if (this.state < ItemState.Finished) {
|
|
225
|
-
if (this.isReadyForUse())
|
|
226
|
-
this.state = ItemState.Finished;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
async destroy() {
|
|
230
|
-
this.project = undefined;
|
|
231
|
-
this.state = ItemState.Destroyed;
|
|
232
|
-
}
|
|
233
|
-
// ------------------------------------------------------------------------------------------------------
|
|
234
|
-
// SCENES
|
|
235
|
-
// ------------------------------------------------------------------------------------------------------
|
|
236
|
-
async _updateScenes() {
|
|
237
|
-
if (!this.project) {
|
|
238
|
-
throw new Error("Project not set.");
|
|
239
|
-
}
|
|
240
|
-
const scenes = this.getField("Scenes");
|
|
241
|
-
if (scenes) {
|
|
242
|
-
// Create or update any blocks to new list entries
|
|
243
|
-
// ----------------------------------------------------------------------
|
|
244
|
-
for (const block of scenes.blocks) {
|
|
245
|
-
const listEntry = this.project.sceneListEntries.get(block.id);
|
|
246
|
-
if (!listEntry) {
|
|
247
|
-
const entry = new ListEntry(this, block, this.engine);
|
|
248
|
-
this.project.sceneListEntries.set(block.id, entry);
|
|
249
|
-
entry.$on('listentry:update', (entry, field, value) => {
|
|
250
|
-
this._onSceneListEntryUpdate(entry, field, value);
|
|
251
|
-
});
|
|
252
|
-
await this._processSceneEntry(entry);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
// Check which blocks disappeared
|
|
256
|
-
// ----------------------------------------------------------------------
|
|
257
|
-
const deletedEntries = [];
|
|
258
|
-
for (const id of this.project.sceneListEntries.keys()) {
|
|
259
|
-
let found = false;
|
|
260
|
-
for (const block of scenes.blocks) {
|
|
261
|
-
if (block.id === id) {
|
|
262
|
-
found = true;
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
if (!found) {
|
|
267
|
-
deletedEntries.push(id);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
for (const id of deletedEntries) {
|
|
271
|
-
const listEntry = this.project.sceneListEntries.get(id);
|
|
272
|
-
if (listEntry)
|
|
273
|
-
this._destroySceneEntry(listEntry);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
_onSceneListEntryUpdate(entry, field, value) {
|
|
278
|
-
switch (field) {
|
|
279
|
-
case "Scene": {
|
|
280
|
-
this._unloadScene(entry);
|
|
281
|
-
if (typeof value === 'string') {
|
|
282
|
-
this._loadSceneItem(entry, value).catch(function (err) {
|
|
283
|
-
console.error(err);
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
else if (value) {
|
|
287
|
-
this._loadScene(entry).catch(function (err) {
|
|
288
|
-
console.error(err);
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
break;
|
|
292
|
-
}
|
|
293
|
-
case "Load": {
|
|
294
|
-
this._processSceneEntry(entry).catch((err) => {
|
|
295
|
-
console.error(err);
|
|
296
|
-
});
|
|
297
|
-
break;
|
|
298
|
-
}
|
|
299
|
-
case "Active": {
|
|
300
|
-
this._updateSceneActive(entry);
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
case "Transform": {
|
|
304
|
-
this._updateSceneTransform(entry);
|
|
305
|
-
break;
|
|
306
|
-
}
|
|
307
|
-
case "Primary":
|
|
308
|
-
this._setPrimaryScene(entry, value);
|
|
309
|
-
break;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
async _processSceneEntry(entry) {
|
|
313
|
-
if (!this.project) {
|
|
314
|
-
throw new Error("Project not set.");
|
|
315
|
-
}
|
|
316
|
-
const load = entry.getFieldValue("Load");
|
|
317
|
-
const sceneItem = entry.getFieldValue("Scene");
|
|
318
|
-
const id = entry.getId();
|
|
319
|
-
const scene = this.project.scenes.get(id);
|
|
320
|
-
if (load && !scene && sceneItem) {
|
|
321
|
-
if (typeof sceneItem === 'string') {
|
|
322
|
-
// sceneItem is just a string so the item has not yet been loaded. We need to do that first, the
|
|
323
|
-
// actual scene loading will then be triggered by an update event once the item is loaded
|
|
324
|
-
await this._loadSceneItem(entry, sceneItem);
|
|
325
|
-
}
|
|
326
|
-
else {
|
|
327
|
-
// we have the scene item already, directly load the scene
|
|
328
|
-
await this._loadScene(entry);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
else if (!load && scene) {
|
|
332
|
-
this._unloadScene(entry);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
_destroySceneEntry(entry) {
|
|
336
|
-
if (!this.project) {
|
|
337
|
-
throw new Error("Project not set.");
|
|
338
|
-
}
|
|
339
|
-
const id = entry.getId();
|
|
340
|
-
this._unloadScene(entry);
|
|
341
|
-
entry.destroy();
|
|
342
|
-
this.project.sceneListEntries.delete(id);
|
|
343
|
-
}
|
|
344
|
-
_ensureSceneIsUnique(sceneItem) {
|
|
345
|
-
if (!this.project) {
|
|
346
|
-
throw new Error("Project not set.");
|
|
347
|
-
}
|
|
348
|
-
for (const scene of this.project.scenes.values()) {
|
|
349
|
-
if (scene.getId() === sceneItem._id) {
|
|
350
|
-
console.warn("Scene is already in use in the project. Cannot load it more than once!");
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
return true;
|
|
355
|
-
}
|
|
356
|
-
async _loadSceneItem(entry, sceneItemId) {
|
|
357
|
-
return this.engine.itemRepo.loadItem(sceneItemId, { recursive: true }).then(function (sceneItem) {
|
|
358
|
-
const sceneField = entry.getField("Scene");
|
|
359
|
-
if (sceneField)
|
|
360
|
-
sceneField.value = sceneItem;
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
async _loadScene(entry) {
|
|
364
|
-
if (!this.project) {
|
|
365
|
-
throw new Error("Project not set.");
|
|
366
|
-
}
|
|
367
|
-
const sceneItem = entry.getFieldValue("Scene");
|
|
368
|
-
if (!this._ensureSceneIsUnique(sceneItem))
|
|
369
|
-
return;
|
|
370
|
-
return this.engine.loadingManager.loadScene(this.getId(), sceneItem)
|
|
371
|
-
.then((sceneItem) => {
|
|
372
|
-
this.project.scenes.set(entry.getId(), sceneItem);
|
|
373
|
-
this._updateSceneActive(entry);
|
|
374
|
-
this._loadingManagerUpdateInfo();
|
|
375
|
-
this._updateState();
|
|
376
|
-
this.engine.eventBus.$emit('project:sceneLoaded', sceneItem);
|
|
377
|
-
}).catch(err => {
|
|
378
|
-
console.error(`Error loading scene ${sceneItem}: ${err}`);
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
_unloadScene(entry) {
|
|
382
|
-
if (!this.project) {
|
|
383
|
-
throw new Error("Project not set.");
|
|
384
|
-
}
|
|
385
|
-
const sceneItem = this.project.scenes.get(entry.getId());
|
|
386
|
-
if (sceneItem) {
|
|
387
|
-
this._deactivateScene(entry);
|
|
388
|
-
this.engine.loadingManager.unload(this.getId(), sceneItem);
|
|
389
|
-
this.project.scenes.delete(entry.getId());
|
|
390
|
-
this.engine.eventBus.$emit('project:sceneUnloaded', sceneItem);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
_isSceneLoaded(entry) {
|
|
394
|
-
if (!this.project) {
|
|
395
|
-
throw new Error("Project not set.");
|
|
396
|
-
}
|
|
397
|
-
return this.project.scenes.has(entry.getId());
|
|
398
|
-
}
|
|
399
|
-
_updateSceneLoaded(entry) {
|
|
400
|
-
const isLoaded = this._isSceneLoaded(entry);
|
|
401
|
-
const load = entry.getFieldValue("Load");
|
|
402
|
-
if (isLoaded && !load)
|
|
403
|
-
this._unloadScene(entry);
|
|
404
|
-
else if (!isLoaded && load)
|
|
405
|
-
this._loadScene(entry);
|
|
406
|
-
}
|
|
407
|
-
_updateSceneActive(entry) {
|
|
408
|
-
const active = entry.getFieldValue("Active");
|
|
409
|
-
if (active) {
|
|
410
|
-
this._activateScene(entry);
|
|
411
|
-
}
|
|
412
|
-
else {
|
|
413
|
-
this._deactivateScene(entry);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
_updateSceneTransform(entry) {
|
|
417
|
-
if (!this.project) {
|
|
418
|
-
throw new Error("Project not set.");
|
|
419
|
-
}
|
|
420
|
-
const transform = entry.getFieldValue("Transform");
|
|
421
|
-
const scene = this.project.scenes.get(entry.getId());
|
|
422
|
-
if (scene) {
|
|
423
|
-
const sceneGraph = scene.getSceneGraph();
|
|
424
|
-
if (sceneGraph) {
|
|
425
|
-
this.engine.activeSceneGraphCollection.setSceneGraphTransform(sceneGraph, transform);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
_activateScene(entry) {
|
|
430
|
-
if (!this.project) {
|
|
431
|
-
throw new Error("Project not set.");
|
|
432
|
-
}
|
|
433
|
-
const id = entry.getId();
|
|
434
|
-
const scene = this.project.scenes.get(id);
|
|
435
|
-
if (scene) {
|
|
436
|
-
const transform = entry.getFieldValue("Transform");
|
|
437
|
-
const primary = entry.getFieldValue("Primary");
|
|
438
|
-
const sceneGraph = this.engine.activeSceneGraphCollection.addSceneItem(scene, true, transform);
|
|
439
|
-
if (sceneGraph) {
|
|
440
|
-
sceneGraph.root.setActive(true);
|
|
441
|
-
this.engine.eventBus.$emit('project:sceneActivated', sceneGraph.getId());
|
|
442
|
-
if (primary) {
|
|
443
|
-
this._setPrimaryScene(entry);
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
_setPrimaryScene(entry, value) {
|
|
449
|
-
if (!this.project) {
|
|
450
|
-
throw new Error("Project not set.");
|
|
451
|
-
}
|
|
452
|
-
if (this.withinSetPrimaryScene)
|
|
453
|
-
return;
|
|
454
|
-
try {
|
|
455
|
-
this.withinSetPrimaryScene = true;
|
|
456
|
-
const id = entry.getId();
|
|
457
|
-
if (!value) {
|
|
458
|
-
// instead of disabling this entry, search for another one to enable that is NOT this entry
|
|
459
|
-
// because we ALWAYS need to have a primary scene. If we cannot find any, we sadly cannot
|
|
460
|
-
// remove this entry from beeing primary scene.
|
|
461
|
-
for (const e of this.project.sceneListEntries.values()) {
|
|
462
|
-
const scene = this.project.scenes.get(e.getId());
|
|
463
|
-
if (scene) {
|
|
464
|
-
if (e.getId() !== id) {
|
|
465
|
-
entry = e;
|
|
466
|
-
break;
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
// Enable the entry as new primary scene and disable all others
|
|
472
|
-
for (const e of this.project.sceneListEntries.values()) {
|
|
473
|
-
const scene = this.project.scenes.get(e.getId());
|
|
474
|
-
if (scene) {
|
|
475
|
-
const sceneGraph = scene.getSceneGraph();
|
|
476
|
-
if (sceneGraph) {
|
|
477
|
-
if (e.getId() === id) {
|
|
478
|
-
if (scene.composition)
|
|
479
|
-
this.engine.renderer.activeComposition = scene.composition; // set the active composition to the primary scene
|
|
480
|
-
// Always listen for future composition updates
|
|
481
|
-
this.engine.eventBus.$on('item:contentUpdated', (updatedScene) => {
|
|
482
|
-
const primarySceneID = this.engine.activeSceneGraphCollection.getPrimarySceneItem().getId();
|
|
483
|
-
if (updatedScene.getId() === primarySceneID) {
|
|
484
|
-
this.engine.renderer.activeComposition = updatedScene.composition;
|
|
485
|
-
}
|
|
486
|
-
});
|
|
487
|
-
this.engine.activeSceneGraphCollection.setPrimarySceneGraph(sceneGraph);
|
|
488
|
-
e.setFieldValue("Primary", true);
|
|
489
|
-
}
|
|
490
|
-
else {
|
|
491
|
-
e.setFieldValue("Primary", false);
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
catch (err) {
|
|
498
|
-
console.error(err);
|
|
499
|
-
}
|
|
500
|
-
finally {
|
|
501
|
-
this.withinSetPrimaryScene = false;
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
_deactivateScene(entry) {
|
|
505
|
-
if (!this.project) {
|
|
506
|
-
throw new Error("Project not set.");
|
|
507
|
-
}
|
|
508
|
-
const id = entry.getId();
|
|
509
|
-
const scene = this.project.scenes.get(id);
|
|
510
|
-
if (scene) {
|
|
511
|
-
const sceneGraph = scene.getSceneGraph();
|
|
512
|
-
if (sceneGraph) {
|
|
513
|
-
sceneGraph.root.setActive(false);
|
|
514
|
-
this.engine.activeSceneGraphCollection.remove(sceneGraph);
|
|
515
|
-
this.engine.eventBus.$emit('project:sceneDeactivated', sceneGraph.getId());
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
// ------------------------------------------------------------------------------------------------------
|
|
520
|
-
// VARIABLE SETS
|
|
521
|
-
// ------------------------------------------------------------------------------------------------------
|
|
522
|
-
async _updateVariableSets() {
|
|
523
|
-
if (!this.project) {
|
|
524
|
-
throw new Error("Project not set.");
|
|
525
|
-
}
|
|
526
|
-
const variableSets = this.getField("VariableSets");
|
|
527
|
-
// field does not exist. maybe an old project version
|
|
528
|
-
if (!variableSets)
|
|
529
|
-
return;
|
|
530
|
-
// Create or update any blocks to new list entries
|
|
531
|
-
// ----------------------------------------------------------------------
|
|
532
|
-
for (const block of variableSets.blocks) {
|
|
533
|
-
const listEntry = this.project.variableSetListEntries.get(block.id);
|
|
534
|
-
if (!listEntry) {
|
|
535
|
-
const entry = new ListEntry(this, block, this.engine);
|
|
536
|
-
this.project.variableSetListEntries.set(block.id, entry);
|
|
537
|
-
entry.$on('listentry:update', (entry, field, value) => {
|
|
538
|
-
this._onVariableSetListEntryUpdate(entry, field, value);
|
|
539
|
-
});
|
|
540
|
-
await this._processVariableSetEntry(entry);
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
// Check which blocks disappeared
|
|
544
|
-
// ----------------------------------------------------------------------
|
|
545
|
-
const deletedEntries = [];
|
|
546
|
-
for (const id of this.project.variableSetListEntries.keys()) {
|
|
547
|
-
let found = false;
|
|
548
|
-
for (const block of variableSets.blocks) {
|
|
549
|
-
if (block.id === id) {
|
|
550
|
-
found = true;
|
|
551
|
-
break;
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
if (!found) {
|
|
555
|
-
deletedEntries.push(id);
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
for (const id of deletedEntries) {
|
|
559
|
-
const listEntry = this.project.variableSetListEntries.get(id);
|
|
560
|
-
if (listEntry)
|
|
561
|
-
this._destroyVariableSetEntry(listEntry);
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
_onVariableSetListEntryUpdate(entry, field, value) {
|
|
565
|
-
switch (field) {
|
|
566
|
-
case "VariableSet": {
|
|
567
|
-
if (!value) {
|
|
568
|
-
this._unloadVariableSet(entry);
|
|
569
|
-
}
|
|
570
|
-
else if (typeof value === 'string') {
|
|
571
|
-
this._loadVariableSetItem(entry, value).catch((err) => {
|
|
572
|
-
console.error(err);
|
|
573
|
-
});
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
this._loadVariableSet(entry).catch((err) => {
|
|
577
|
-
console.error(err);
|
|
578
|
-
});
|
|
579
|
-
}
|
|
580
|
-
break;
|
|
581
|
-
}
|
|
582
|
-
case "Name": {
|
|
583
|
-
this._renameVariableSet(entry);
|
|
584
|
-
break;
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
async _processVariableSetEntry(entry) {
|
|
589
|
-
if (!this.project) {
|
|
590
|
-
throw new Error("Project not set.");
|
|
591
|
-
}
|
|
592
|
-
const variableSetItem = entry.getFieldValue("VariableSet");
|
|
593
|
-
const id = entry.getId();
|
|
594
|
-
const variableSet = this.project.variableSets.get(id);
|
|
595
|
-
if (!variableSet && variableSetItem) {
|
|
596
|
-
if (typeof variableSetItem === 'string') {
|
|
597
|
-
// variableSetItem is just a string so the item has not yet been loaded. We need to do that first, the
|
|
598
|
-
// actual loading will then be triggered by an update event once the item is loaded
|
|
599
|
-
await this._loadVariableSetItem(entry, variableSetItem);
|
|
600
|
-
}
|
|
601
|
-
else {
|
|
602
|
-
// we have the variable set item already, directly load the variable set
|
|
603
|
-
await this._loadVariableSet(entry);
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
else if (variableSet) {
|
|
607
|
-
this._unloadVariableSet(entry);
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
_destroyVariableSetEntry(entry) {
|
|
611
|
-
if (!this.project) {
|
|
612
|
-
throw new Error("Project not set.");
|
|
613
|
-
}
|
|
614
|
-
const id = entry.getId();
|
|
615
|
-
this._unloadVariableSet(entry);
|
|
616
|
-
entry.destroy();
|
|
617
|
-
this.project.variableSetListEntries.delete(id);
|
|
618
|
-
}
|
|
619
|
-
async _loadVariableSetItem(entry, variableSetItemId) {
|
|
620
|
-
if (!this.project) {
|
|
621
|
-
throw new Error("Project not set.");
|
|
622
|
-
}
|
|
623
|
-
return this.engine.itemRepo.loadItem(variableSetItemId, { recursive: true }).then((variableSetItem) => {
|
|
624
|
-
const variableSetField = entry.getField("VariableSet");
|
|
625
|
-
if (variableSetField)
|
|
626
|
-
variableSetField.value = variableSetItem;
|
|
627
|
-
});
|
|
628
|
-
}
|
|
629
|
-
async _loadVariableSet(entry) {
|
|
630
|
-
if (!this.project) {
|
|
631
|
-
throw new Error("Project not set.");
|
|
632
|
-
}
|
|
633
|
-
const variableSetItem = entry.getFieldValue("VariableSet");
|
|
634
|
-
return this.engine.loadingManager.loadVariableSet(this.getId(), variableSetItem).then((variableSetItem) => {
|
|
635
|
-
this.project.variableSets.set(entry.getId(), variableSetItem);
|
|
636
|
-
this._registerVariableSet(entry);
|
|
637
|
-
this._loadingManagerUpdateInfo();
|
|
638
|
-
this._updateState();
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
_unloadVariableSet(entry) {
|
|
642
|
-
if (!this.project) {
|
|
643
|
-
throw new Error("Project not set.");
|
|
644
|
-
}
|
|
645
|
-
const variableSetItem = this.project.variableSets.get(entry.getId());
|
|
646
|
-
if (variableSetItem) {
|
|
647
|
-
this._unregisterVariableSet(entry);
|
|
648
|
-
this.engine.loadingManager.unload(this.getId(), variableSetItem);
|
|
649
|
-
this.project.variableSets.delete(entry.getId());
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
_registerVariableSet(entry) {
|
|
653
|
-
if (!this.project) {
|
|
654
|
-
throw new Error("Project not set.");
|
|
655
|
-
}
|
|
656
|
-
const id = entry.getId();
|
|
657
|
-
const name = entry.getFieldValue("Name");
|
|
658
|
-
const variableSet = this.project.variableSets.get(id);
|
|
659
|
-
if (variableSet) {
|
|
660
|
-
this.engine.variables.registerVariableSet(name, variableSet);
|
|
661
|
-
variableSet.$on('item:objectUpdated', this._variableSetItemUpdated);
|
|
662
|
-
}
|
|
663
|
-
}
|
|
664
|
-
_unregisterVariableSet(entry) {
|
|
665
|
-
if (!this.project) {
|
|
666
|
-
throw new Error("Project not set.");
|
|
667
|
-
}
|
|
668
|
-
const id = entry.getId();
|
|
669
|
-
const variableSet = this.project.variableSets.get(id);
|
|
670
|
-
if (variableSet) {
|
|
671
|
-
variableSet.$off('item:objectUpdated', this._variableSetItemUpdated);
|
|
672
|
-
}
|
|
673
|
-
const name = entry.getFieldValue("Name");
|
|
674
|
-
this.engine.variables.unregisterVariableSet(name);
|
|
675
|
-
}
|
|
676
|
-
_variableSetItemUpdated = (variableSet) => {
|
|
677
|
-
if (!this.project) {
|
|
678
|
-
throw new Error("Project not set.");
|
|
679
|
-
}
|
|
680
|
-
const id = tools.findKeyInMap(this.project.variableSets, variableSet);
|
|
681
|
-
if (id) {
|
|
682
|
-
const entry = this.project.variableSetListEntries.get(id);
|
|
683
|
-
if (entry) {
|
|
684
|
-
const name = entry.getFieldValue("Name");
|
|
685
|
-
this.engine.variables.registerVariableSet(name, variableSet);
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
};
|
|
689
|
-
_renameVariableSet(entry) {
|
|
690
|
-
if (!this.project) {
|
|
691
|
-
throw new Error("Project not set.");
|
|
692
|
-
}
|
|
693
|
-
const id = entry.getId();
|
|
694
|
-
const name = entry.getFieldValue("Name");
|
|
695
|
-
const variableSet = this.project.variableSets.get(id);
|
|
696
|
-
if (variableSet) {
|
|
697
|
-
this.engine.variables.renameVariableSet(name, variableSet);
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
// ------------------------------------------------------------------------------------------------------
|
|
701
|
-
// FONTS
|
|
702
|
-
// ------------------------------------------------------------------------------------------------------
|
|
703
|
-
async _updateCanvasFonts() {
|
|
704
|
-
if (!this.project) {
|
|
705
|
-
throw new Error("Project not set.");
|
|
706
|
-
}
|
|
707
|
-
const canvasFonts = this.getField("CanvasFonts");
|
|
708
|
-
// field does not exist. maybe an old project version
|
|
709
|
-
if (!canvasFonts)
|
|
710
|
-
return;
|
|
711
|
-
// Create or update any blocks to new list entries
|
|
712
|
-
// ----------------------------------------------------------------------
|
|
713
|
-
for (const block of canvasFonts.blocks) {
|
|
714
|
-
const listEntry = this.project.canvasFontListEntries.get(block.id);
|
|
715
|
-
if (!listEntry) {
|
|
716
|
-
const entry = new ListEntry(this, block, this.engine);
|
|
717
|
-
this.project.canvasFontListEntries.set(block.id, entry);
|
|
718
|
-
entry.$on('listentry:update', (entry, field, value) => {
|
|
719
|
-
this._onCanvasFontListEntryUpdate(entry, field, value);
|
|
720
|
-
});
|
|
721
|
-
await this._processCanvasFontEntry(entry);
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
// Check which blocks disappeared
|
|
725
|
-
// ----------------------------------------------------------------------
|
|
726
|
-
const deletedEntries = [];
|
|
727
|
-
for (const id of this.project.canvasFontListEntries.keys()) {
|
|
728
|
-
let found = false;
|
|
729
|
-
for (const block of canvasFonts.blocks) {
|
|
730
|
-
if (block.id === id) {
|
|
731
|
-
found = true;
|
|
732
|
-
break;
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
if (!found) {
|
|
736
|
-
deletedEntries.push(id);
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
for (const id of deletedEntries) {
|
|
740
|
-
const listEntry = this.project.canvasFontListEntries.get(id);
|
|
741
|
-
if (listEntry)
|
|
742
|
-
this._destroyCanvasFontEntry(listEntry);
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
_onCanvasFontListEntryUpdate(entry, field, value) {
|
|
746
|
-
switch (field) {
|
|
747
|
-
case "Font": {
|
|
748
|
-
if (!value) {
|
|
749
|
-
this._unloadCanvasFont(entry);
|
|
750
|
-
}
|
|
751
|
-
else if (typeof value === 'string') {
|
|
752
|
-
this._loadCanvasFontItem(entry, value).catch(function (err) {
|
|
753
|
-
console.error(err);
|
|
754
|
-
});
|
|
755
|
-
}
|
|
756
|
-
else {
|
|
757
|
-
this._loadCanvasFont(entry).catch(function (err) {
|
|
758
|
-
console.error(err);
|
|
759
|
-
});
|
|
760
|
-
}
|
|
761
|
-
break;
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
async _processCanvasFontEntry(entry) {
|
|
766
|
-
if (!this.project) {
|
|
767
|
-
throw new Error("Project not set.");
|
|
768
|
-
}
|
|
769
|
-
const canvasFontItem = entry.getFieldValue("Font");
|
|
770
|
-
const id = entry.getId();
|
|
771
|
-
const canvasFont = this.project.canvasFonts.get(id);
|
|
772
|
-
if (!canvasFont && canvasFontItem) {
|
|
773
|
-
if (typeof canvasFontItem === 'string') {
|
|
774
|
-
// canvasFontItem is just a string so the item has not yet been loaded. We need to do that first, the
|
|
775
|
-
// actual loading will then be triggered by an update event once the item is loaded
|
|
776
|
-
await this._loadCanvasFontItem(entry, canvasFontItem);
|
|
777
|
-
}
|
|
778
|
-
else {
|
|
779
|
-
// we have the font item already, directly load the font
|
|
780
|
-
await this._loadCanvasFont(entry);
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
else if (canvasFont) {
|
|
784
|
-
this._unloadCanvasFont(entry);
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
_destroyCanvasFontEntry(entry) {
|
|
788
|
-
if (!this.project) {
|
|
789
|
-
throw new Error("Project not set.");
|
|
790
|
-
}
|
|
791
|
-
const id = entry.getId();
|
|
792
|
-
this._unloadCanvasFont(entry);
|
|
793
|
-
entry.destroy();
|
|
794
|
-
this.project.canvasFontListEntries.delete(id);
|
|
795
|
-
}
|
|
796
|
-
async _loadCanvasFontItem(entry, canvasFontItemId) {
|
|
797
|
-
return this.engine.itemRepo.loadItem(canvasFontItemId, { recursive: true }).then(function (fontItem) {
|
|
798
|
-
const fontField = entry.getField("Font");
|
|
799
|
-
if (fontField)
|
|
800
|
-
fontField.value = fontItem;
|
|
801
|
-
});
|
|
802
|
-
}
|
|
803
|
-
async _loadCanvasFont(entry) {
|
|
804
|
-
if (!this.project) {
|
|
805
|
-
throw new Error("Project not set.");
|
|
806
|
-
}
|
|
807
|
-
const fontItem = entry.getFieldValue("Font");
|
|
808
|
-
return this.engine.loadingManager.loadFont(this.getId(), fontItem).then((fontItem) => {
|
|
809
|
-
this.project.canvasFonts.set(entry.getId(), fontItem);
|
|
810
|
-
this._loadingManagerUpdateInfo();
|
|
811
|
-
this._updateState();
|
|
812
|
-
});
|
|
813
|
-
}
|
|
814
|
-
_unloadCanvasFont(entry) {
|
|
815
|
-
if (!this.project) {
|
|
816
|
-
throw new Error("Project not set.");
|
|
817
|
-
}
|
|
818
|
-
const canvasFontItem = this.project.canvasFonts.get(entry.getId());
|
|
819
|
-
if (canvasFontItem) {
|
|
820
|
-
this.engine.loadingManager.unload(this.getId(), canvasFontItem);
|
|
821
|
-
this.project.canvasFonts.delete(entry.getId());
|
|
822
|
-
}
|
|
823
|
-
}
|
|
824
|
-
updateEvent(field, value, type) {
|
|
825
|
-
switch (field) {
|
|
826
|
-
case "Scenes":
|
|
827
|
-
this._updateScenes().catch(function (err) {
|
|
828
|
-
console.error(err);
|
|
829
|
-
});
|
|
830
|
-
break;
|
|
831
|
-
case "VariableSets":
|
|
832
|
-
this._updateVariableSets().catch(function (err) {
|
|
833
|
-
console.error(err);
|
|
834
|
-
});
|
|
835
|
-
break;
|
|
836
|
-
case "CanvasFonts":
|
|
837
|
-
this._updateCanvasFonts().catch(function (err) {
|
|
838
|
-
console.error(err);
|
|
839
|
-
});
|
|
840
|
-
break;
|
|
841
|
-
case "LayerNames":
|
|
842
|
-
this.updateLayerNames();
|
|
843
|
-
break;
|
|
844
|
-
case "CollisionMatrix":
|
|
845
|
-
this.updateCollisionMatrix();
|
|
846
|
-
break;
|
|
847
|
-
case "AutomaticPointerLock":
|
|
848
|
-
this.updateAutomaticPointerLock();
|
|
849
|
-
break;
|
|
850
|
-
case "AspectRatio":
|
|
851
|
-
case "CustomAspect":
|
|
852
|
-
this.engine.eventBus.$emit('project:aspectRatioChanged', this);
|
|
853
|
-
break;
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
//# sourceMappingURL=ProjectItem.js.map
|