@hology/core 0.0.252 → 0.0.254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/effects/sequence/sequencer.js +1 -1
  2. package/dist/gameplay/actors/actor.d.ts +9 -0
  3. package/dist/gameplay/actors/actor.js +1 -1
  4. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts +2 -0
  5. package/dist/gameplay/actors/builtin/components/character/character-movement.js +1 -1
  6. package/dist/gameplay/actors/controller/actor-controller.d.ts +21 -0
  7. package/dist/gameplay/actors/controller/actor-controller.js +1 -1
  8. package/dist/gameplay/actors/controller/game-state.d.ts +8 -0
  9. package/dist/gameplay/actors/controller/game-state.js +4 -0
  10. package/dist/gameplay/actors/index.d.ts +1 -0
  11. package/dist/gameplay/actors/index.js +1 -1
  12. package/dist/gameplay/game-mode.d.ts +34 -0
  13. package/dist/gameplay/game-mode.js +4 -0
  14. package/dist/gameplay/index.d.ts +8 -1
  15. package/dist/gameplay/index.js +1 -1
  16. package/dist/gameplay/initiate.d.ts +180 -85
  17. package/dist/gameplay/initiate.js +1 -1
  18. package/dist/gameplay/net/browser/index.d.ts +4 -1
  19. package/dist/gameplay/net/browser/index.js +1 -1
  20. package/dist/gameplay/net/index.d.ts +3 -0
  21. package/dist/gameplay/net/index.js +1 -1
  22. package/dist/gameplay/net/net-connection.d.ts +4 -0
  23. package/dist/gameplay/net/net-session.d.ts +3 -0
  24. package/dist/gameplay/net/player-session.d.ts +40 -0
  25. package/dist/gameplay/net/player-session.js +4 -0
  26. package/dist/gameplay/net/service/net-decorator.js +1 -1
  27. package/dist/gameplay/net/service/net-serializer.js +1 -1
  28. package/dist/gameplay/net/service/net-service.d.ts +41 -0
  29. package/dist/gameplay/net/service/net-service.js +1 -1
  30. package/dist/gameplay/network-travel-coordinator.d.ts +27 -0
  31. package/dist/gameplay/network-travel-coordinator.js +4 -0
  32. package/dist/gameplay/player-lifecycle-coordinator.d.ts +29 -0
  33. package/dist/gameplay/player-lifecycle-coordinator.js +4 -0
  34. package/dist/gameplay/player-runtime.d.ts +24 -0
  35. package/dist/gameplay/player-runtime.js +4 -0
  36. package/dist/gameplay/rendering-host.d.ts +40 -0
  37. package/dist/gameplay/rendering-host.js +4 -0
  38. package/dist/gameplay/services/physics/physics-system.js +1 -1
  39. package/dist/gameplay/services/render.d.ts +1 -1
  40. package/dist/gameplay/services/render.js +1 -1
  41. package/dist/gameplay/services/scene-transition.d.ts +19 -0
  42. package/dist/gameplay/services/scene-transition.js +4 -0
  43. package/dist/gameplay/services/world.d.ts +16 -6
  44. package/dist/gameplay/services/world.js +1 -1
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.js +1 -1
  47. package/dist/rendering/graphics-runtime.d.ts +8 -0
  48. package/dist/rendering/graphics-runtime.js +4 -0
  49. package/dist/rendering/intersection-observer.d.ts +5 -0
  50. package/dist/rendering/intersection-observer.js +4 -0
  51. package/dist/rendering/webgpu-experimental-backend.d.ts +12 -1
  52. package/dist/rendering/webgpu-experimental-backend.js +1 -1
  53. package/dist/rendering.d.ts +18 -3
  54. package/dist/rendering.js +1 -1
  55. package/dist/scene/bootstrap.d.ts +2 -0
  56. package/dist/scene/bootstrap.js +1 -1
  57. package/dist/scene/custom-param-runtime-types.js +1 -1
  58. package/dist/scene/materializer.d.ts +3 -1
  59. package/dist/scene/materializer.js +1 -1
  60. package/dist/scene/model.d.ts +2 -1
  61. package/dist/scene/model.js +1 -1
  62. package/dist/scene/objects/prefab.d.ts +3 -0
  63. package/dist/scene/objects/prefab.js +1 -1
  64. package/dist/scene/scene-ref.d.ts +18 -0
  65. package/dist/scene/scene-ref.js +4 -0
  66. package/dist/shader/parameter.d.ts +2 -1
  67. package/dist/test/graphics-runtime.test.d.ts +2 -0
  68. package/dist/test/graphics-runtime.test.js +4 -0
  69. package/dist/test/intersection-observer.test.d.ts +2 -0
  70. package/dist/test/intersection-observer.test.js +4 -0
  71. package/dist/test/net-player-registry.test.d.ts +2 -0
  72. package/dist/test/net-player-registry.test.js +4 -0
  73. package/dist/test/net-serializer.test.d.ts +2 -0
  74. package/dist/test/net-serializer.test.js +4 -0
  75. package/dist/test/player-controller.test.d.ts +2 -0
  76. package/dist/test/player-controller.test.js +4 -0
  77. package/dist/test/rendering-host.test.d.ts +2 -0
  78. package/dist/test/rendering-host.test.js +4 -0
  79. package/dist/test/world-lifecycle.test.js +1 -1
  80. package/dist/test/world-prefab-spawn.test.js +1 -1
  81. package/package.json +1 -1
  82. package/tsconfig.tsbuildinfo +1 -1
@@ -1,4 +1,4 @@
1
- import{Color as e,Euler as r,Material as t,Object3D as n,Texture as u,Vector2 as o,Vector3 as a,Vector4 as c,AnimationClip as l}from"three";import{BooleanNode as i,FloatNode as s,RgbNode as f,Sampler2DNode as y,Texture2dLookupNode as p,Vec2Node as m,Vec3Node as d,Vec4Node as b}from"three-shader-graph";import{getParameterDefinitionId as A,getParameterDefinitionType as g,isParameterDefinitionStructAssignableTo as S}from"../shader/parameter.js";import{Curve2 as N}from"../utils/curve.js";import{isSequenceData as V}from"../effects/sequence/sequence-data.js";import{SerializedParamType as v}from"./model.js";export const applyRuntimeParamTypeInference=!0;export function convertConfiguredParamsToRuntimeTypes(e,r={}){const t={},n=[],u=Object.entries(e),o=r.applyRuntimeParamTypeInference??true;if(0===u.length||!o)return o?{params:t,skipped:n}:{params:e,skipped:n};const a=getRuntimeParameterTypeHints(e,r);for(const[e,r]of u){const u=a.get(e),o=P(r,u);if(null==o)continue;if(!1===o.override){t[e]=o;continue}const c=null!=u?convertConfiguredParamValueToRuntimeType(o,u):o;null!=c?t[e]=c:n.push({key:e,sourceType:o.type,targetType:u.type})}return{params:t,skipped:n}}function P(e,r){return function(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)&&"number"==typeof e.type&&"value"in e}(e)?e:r?.type===v.SequenceData&&V(e)?{type:v.SequenceData,value:e}:null}export function getRuntimeParameterTypeHints(e,r={}){const t=new Map,n=Object.keys(e).filter(r=>!1!==e[r]?.override);if(0===n.length)return t;const u=new Set(n),o=r.parameterTarget??function(e){if(null==e)return null;try{return new e}catch{return null}}(r.parameterType),a=function(e,r){if(null!=r.propertyParams)return r.propertyParams;if(null==r.extractPropertyParameters)return[];if(null!=r.parameterType)return R(r.parameterType,r.extractPropertyParameters);if(null!=e)return R(e.constructor,r.extractPropertyParameters);return[]}(o,r);for(const e of a){if(!u.has(e.name))continue;const n=D(e,r.toSerializedParamType);null!=n&&t.set(e.name,n);const a=inferRuntimeSerializedParamTypeHint(w(o,e.name))??inferRuntimeSerializedParamTypeHint(e.options.defaultValue);null!=a&&t.set(e.name,j(a,n))}if(null!=o)for(const e of n){const r=inferRuntimeSerializedParamTypeHint(w(o,e));if(null!=r){const n=t.get(e);t.set(e,j(r,n))}}return t}const T=new WeakMap,h=new WeakMap,C=Symbol("noCachedSerializedParamType");function R(e,r){let t=T.get(r);null==t&&(t=new WeakMap,T.set(r,t));const n=t.get(e);if(null!=n)return n;const u=function(e,r){try{return r(e)}catch{return[]}}(e,r);return t.set(e,u),u}function w(e,r){return null!=e?e[r]:void 0}function D(e,r){const t=function(e,r){if(null==e||null==r)return;const t=function(e,r){const t=h.get(r);if(null==t||!t.has(e))return C;const n=t.get(e);return null===n?void 0:n}(e,r);if(t!==C)return t;try{const t=r(e);return x(e,r,t),t}catch{return void x(e,r,void 0)}}(e.type,r),n=t===v.Struct?A(e.type):void 0;return!0===e.options.array?{type:v.Array,...null!=t?{element:t}:{},...null!=n?{elementStruct:n}:{}}:null!=t?{type:t,...null!=n?{struct:n}:{}}:void 0}function x(e,r,t){let n=h.get(r);null==n&&(n=new WeakMap,h.set(r,n)),n.set(e,t??null)}function j(e,r){return e.type!==v.Array?e:{type:v.Array,element:e.element??r?.element,elementStruct:e.elementStruct??r?.elementStruct}}export function inferRuntimeSerializedParamTypeHint(g){if(null==g)return;if(Array.isArray(g)){const e=g.map(e=>inferRuntimeSerializedParamTypeHint(e)).find(e=>null!=e);return{type:v.Array,...null!=e&&e.type!==v.Array?{element:e.type}:{},...null!=e?.struct?{elementStruct:e.struct}:{}}}switch(typeof g){case"number":return{type:v.Number};case"boolean":return{type:v.Boolean};case"string":return{type:v.String}}const S=function(e){const r=e;if(e instanceof s||"function"==typeof r?.isFloat||!0===r?.isFloat)return v.FloatNode;if(e instanceof i||"function"==typeof r?.isBool||!0===r?.isBool)return v.BooleanNode;if(e instanceof f||"function"==typeof r?.isRgb||!0===r?.isRgb)return v.RgbNode;if(e instanceof m||"function"==typeof r?.isVec2||!0===r?.isVec2)return v.Vec2Node;if(e instanceof d||"function"==typeof r?.isVec3||!0===r?.isVec3)return v.Vec3Node;if(e instanceof b||"function"==typeof r?.isVec4||!0===r?.isVec4)return v.Vec4Node;if(e instanceof y||e instanceof p||"function"==typeof r?.isSampler2D||!0===r?.isSampler2D)return v.Sampler2DNode;return}(g);if(null!=S)return{type:S};if(g instanceof o)return{type:v.Vector2};if(g instanceof a)return{type:v.Vector3};if(g instanceof c)return{type:v.Vector4};if(g instanceof e)return{type:v.Color};if(g instanceof r)return{type:v.Euler};if(g instanceof u)return{type:v.Texture};if(g instanceof t)return{type:v.Material};if(g instanceof n)return{type:v.Object3D};if("undefined"!=typeof AudioBuffer&&g instanceof AudioBuffer)return{type:v.AudioBuffer};if(X(g,"VisualEffect"))return{type:v.VisualEffect};if(X(g,"PrefabOf"))return{type:v.PrefabActor};if(X(g,"Prefab"))return{type:v.Prefab};if(X(g,"DataAssetRef"))return{type:v.DataAsset};if(g instanceof N)return{type:v.Curve};if(X(g,"ColorLayer"))return{type:v.ColorLayer};if(X(g,"MaskLayer"))return{type:v.MaskLayer};if(g instanceof l)return{type:v.AnimationClip};if(X(g,"Sequence"))return{type:v.Sequence};if(V(g))return{type:v.SequenceData};const P=A(g.constructor);return null!=P?{type:v.Struct,struct:P}:void 0}export function convertConfiguredParamValueToRuntimeType(e,r){if(null==e||null==r)return e;if(e.type===v.Array||r.type===v.Array)return function(e,r){if(r.type===v.Array){const t=B(e),n=r.element??(t?e.element:e.type);if(null==n)return t?e:null;const u=t?e.element:e.type,o=(t?Array.isArray(e.value)?e.value:[]:[e.value]).map(e=>M(e,u,n));return o.some(e=>e===q)?null:{...e,type:v.Array,element:n,...F(e,r),value:o}}if(!B(e))return null;const t=Array.isArray(e.value)?e.value[0]:void 0;if(null==t)return null;const n=M(t,e.element,r.type);if(n===q)return null;return{...e,type:r.type,...k(e,r),value:n}}(e,r);const t=M(e.value,e.type,r.type);return t===q?null:{...e,type:r.type,...k(e,r),value:t}}function B(e){return e.type===v.Array}function k(e,r){if(r.type!==v.Struct&&e.type!==v.Struct)return{};const t=function(e,r){if(null==r)return e;if(null==e)return r;if(e===r||S(e,r))return e;const t=g(e),n=g(r);if(null==t||null==n)return e;return r}(e.type===v.Struct?e.struct:void 0,r.struct);return null!=t?{struct:t}:{}}function F(e,r){if(r.type!==v.Array)return{};const t=B(e)?e.elementStruct:void 0,n=r.elementStruct??t;return null!=n?{elementStruct:n}:{}}const q=Symbol("skippedParamValue");function M(e,r,t){if(function(e,r){if(e===r)return!0;const t=L(e);return null!=t&&t===L(r)}(r,t)&&function(e,r){switch(r){case v.Number:return"number"==typeof e||"string"==typeof e&&Number.isFinite(parseFloat(e));case v.FloatNode:return"number"==typeof e||"string"==typeof e&&Number.isFinite(parseFloat(e))||function(e){if(null==e||"object"!=typeof e||Array.isArray(e))return!1;const r=e;return"particle"===r.time&&"string"==typeof r.easing&&null!=H(r.a)&&null!=H(r.b)}(e);case v.Boolean:case v.BooleanNode:return"boolean"==typeof e;case v.Vector2:case v.Vec2Node:return z(e,2);case v.Vector3:case v.Vec3Node:return z(e,3);case v.Vector4:case v.Vec4Node:return z(e,4);case v.Euler:return Array.isArray(e)&&e.length>=3&&null!=O(e,3);case v.Color:case v.RgbNode:return null!=I(e);case v.String:return"string"==typeof e;case v.Array:return Array.isArray(e);case v.Texture:case v.Sampler2DNode:case v.BaseActor:case v.Object3D:case v.Material:case v.AudioBuffer:case v.VisualEffect:case v.Prefab:case v.PrefabActor:case v.DataAsset:case v.AnimationClip:case v.Sequence:return null==e||"string"==typeof e||"object"==typeof e;case v.SequenceData:return null==e||V(e);case v.Struct:return null!=e&&"object"==typeof e&&!Array.isArray(e);case v.Curve:case v.ColorLayer:case v.MaskLayer:return null!=e}return!0}(e,t))return e;switch(t){case v.Number:case v.FloatNode:{const r=H(e);return null!=r?r:q}case v.Boolean:case v.BooleanNode:{const r=function(e){if("boolean"==typeof e)return e;if("number"==typeof e)return 0!==e;if("string"==typeof e){const r=e.trim().toLowerCase();if(["true","1","yes","on"].includes(r))return!0;if(["false","0","no","off"].includes(r))return!1}return null}(e);return null!=r?r:q}case v.Vector2:case v.Vec2Node:return E(e,2,r)??q;case v.Vector3:case v.Vec3Node:return E(e,3,r)??q;case v.Vector4:case v.Vec4Node:return E(e,4,r)??q;case v.Color:case v.RgbNode:return function(e,r){if(r===v.Color||r===v.RgbNode)return"string"==typeof e||"number"==typeof e?e:W(e);return W(e)}(e,r)??q;case v.Euler:return function(e,r){if(Array.isArray(e)){const r=O(e,3);if(null==r)return null;const t="string"==typeof e[3]?e[3]:"XYZ";return[r[0],r[1],r[2],t]}const t=E(e,3,r);return null!=t?[t[0],t[1],t[2],"XYZ"]:null}(e,r)??q;case v.String:return"string"==typeof e?e:String(e);case v.Texture:case v.Sampler2DNode:case v.BaseActor:case v.Object3D:case v.Material:case v.AudioBuffer:case v.VisualEffect:case v.Curve:case v.ColorLayer:case v.MaskLayer:case v.Prefab:case v.PrefabActor:case v.DataAsset:case v.AnimationClip:case v.Sequence:case v.SequenceData:case v.Struct:return t===v.SequenceData&&V(e)?e:q}return q}function z(e,r){if(Array.isArray(e))return e.length>=r&&null!=O(e,r);if(null!=e&&"object"==typeof e){const t=e;return["x","y","z","w"].slice(0,r).every(e=>null!=H(t[e]))}return!1}function L(e){switch(e){case v.Number:case v.FloatNode:return"number";case v.Boolean:case v.BooleanNode:return"boolean";case v.Vector2:case v.Vec2Node:return"vector2";case v.Vector3:case v.Vec3Node:return"vector3";case v.Vector4:case v.Vec4Node:return"vector4";case v.Color:case v.RgbNode:return"color";case v.Texture:case v.Sampler2DNode:return"texture";case v.Prefab:case v.PrefabActor:return"prefab";case v.DataAsset:return"dataAsset";case v.Struct:return"struct"}}function H(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e){const r=parseFloat(e);return Number.isFinite(r)?r:null}if("boolean"==typeof e)return e?1:0;if(Array.isArray(e))return H(e[0]);if(null!=e&&"object"==typeof e){const r=e;return H(r.x??r.r??r.value)}return null}function E(e,r,t){if(t===v.Color||t===v.RgbNode){const t=I(e);if(null!=t)return O(t.toArray(),r,4===r?1:0)}if(Array.isArray(e))return O(e,r);if("number"==typeof e||"string"==typeof e||"boolean"==typeof e){const t=H(e);return null!=t?new Array(r).fill(t):null}if(null!=e&&"object"==typeof e){const t=e,n=["x","y","z","w"].slice(0,r).map(e=>t[e]);if(n.some(e=>null!=e))return O(n,r);const u=["r","g","b","a"].slice(0,r).map(e=>t[e]);if(u.some(e=>null!=e))return O(u,r,4===r?1:0)}return null}function O(e,r,t=0){const n=[];for(let u=0;u<r;u++){const r=H(e[u]??t);if(null==r)return null;n.push(r)}return n}function W(e){const r=I(e);return null!=r?"#"+r.getHexString():null}function I(r){try{if(r instanceof e)return r.clone();if("string"==typeof r)return function(e){return/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e.trim())||/^(rgb|hsl)a?\(/i.test(e.trim())}(r)?new e(r):null;if("number"==typeof r)return Number.isInteger(r)&&r>=0?new e(r):null;if(Array.isArray(r)){const t=O(r,3);return null!=t?(new e).fromArray(t):null}if(null!=r&&"object"==typeof r){const t=r;if(null!=t.r||null!=t.g||null!=t.b){const r=O([t.r,t.g,t.b],3);return null!=r?(new e).fromArray(r):null}if(null!=t.x||null!=t.y||null!=t.z){const r=O([t.x,t.y,t.z],3);return null!=r?(new e).fromArray(r):null}}}catch{return null}return null}function X(e,r){return null!=e&&"object"==typeof e&&e.constructor?.name===r}/*
1
+ import{Color as e,Euler as r,Material as t,Object3D as n,Texture as u,Vector2 as o,Vector3 as a,Vector4 as c,AnimationClip as l}from"three";import{BooleanNode as i,FloatNode as s,RgbNode as f,Sampler2DNode as y,Texture2dLookupNode as p,Vec2Node as m,Vec3Node as d,Vec4Node as b}from"three-shader-graph";import{getParameterDefinitionId as A,getParameterDefinitionType as g,isParameterDefinitionStructAssignableTo as S}from"../shader/parameter.js";import{Curve2 as N}from"../utils/curve.js";import{isSequenceData as V}from"../effects/sequence/sequence-data.js";import{SerializedParamType as v}from"./model.js";export const applyRuntimeParamTypeInference=!0;export function convertConfiguredParamsToRuntimeTypes(e,r={}){const t={},n=[],u=Object.entries(e),o=r.applyRuntimeParamTypeInference??true;if(0===u.length||!o)return o?{params:t,skipped:n}:{params:e,skipped:n};const a=getRuntimeParameterTypeHints(e,r);for(const[e,r]of u){const u=a.get(e),o=P(r,u);if(null==o)continue;if(!1===o.override){t[e]=o;continue}const c=null!=u?convertConfiguredParamValueToRuntimeType(o,u):o;null!=c?t[e]=c:n.push({key:e,sourceType:o.type,targetType:u.type})}return{params:t,skipped:n}}function P(e,r){return function(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)&&"number"==typeof e.type&&"value"in e}(e)?e:r?.type===v.SequenceData&&V(e)?{type:v.SequenceData,value:e}:null}export function getRuntimeParameterTypeHints(e,r={}){const t=new Map,n=Object.keys(e).filter(r=>!1!==e[r]?.override);if(0===n.length)return t;const u=new Set(n),o=r.parameterTarget??function(e){if(null==e)return null;try{return new e}catch{return null}}(r.parameterType),a=function(e,r){if(null!=r.propertyParams)return r.propertyParams;if(null==r.extractPropertyParameters)return[];if(null!=r.parameterType)return R(r.parameterType,r.extractPropertyParameters);if(null!=e)return R(e.constructor,r.extractPropertyParameters);return[]}(o,r);for(const e of a){if(!u.has(e.name))continue;const n=w(e,r.toSerializedParamType);null!=n&&t.set(e.name,n);const a=inferRuntimeSerializedParamTypeHint(j(o,e.name))??inferRuntimeSerializedParamTypeHint(e.options.defaultValue);null!=a&&t.set(e.name,x(a,n))}if(null!=o)for(const e of n){const r=inferRuntimeSerializedParamTypeHint(j(o,e));if(null!=r){const n=t.get(e);t.set(e,x(r,n))}}return t}const T=new WeakMap,h=new WeakMap,C=Symbol("noCachedSerializedParamType");function R(e,r){let t=T.get(r);null==t&&(t=new WeakMap,T.set(r,t));const n=t.get(e);if(null!=n)return n;const u=function(e,r){try{return r(e)}catch{return[]}}(e,r);return t.set(e,u),u}function j(e,r){return null!=e?e[r]:void 0}function w(e,r){const t=function(e,r){if(null==e||null==r)return;const t=function(e,r){const t=h.get(r);if(null==t||!t.has(e))return C;const n=t.get(e);return null===n?void 0:n}(e,r);if(t!==C)return t;try{const t=r(e);return D(e,r,t),t}catch{return void D(e,r,void 0)}}(e.type,r),n=t===v.Struct?A(e.type):void 0;return!0===e.options.array?{type:v.Array,...null!=t?{element:t}:{},...null!=n?{elementStruct:n}:{}}:null!=t?{type:t,...null!=n?{struct:n}:{}}:void 0}function D(e,r,t){let n=h.get(r);null==n&&(n=new WeakMap,h.set(r,n)),n.set(e,t??null)}function x(e,r){return e.type!==v.Array?e:{type:v.Array,element:e.element??r?.element,elementStruct:e.elementStruct??r?.elementStruct}}export function inferRuntimeSerializedParamTypeHint(g){if(null==g)return;if(Array.isArray(g)){const e=g.map(e=>inferRuntimeSerializedParamTypeHint(e)).find(e=>null!=e);return{type:v.Array,...null!=e&&e.type!==v.Array?{element:e.type}:{},...null!=e?.struct?{elementStruct:e.struct}:{}}}switch(typeof g){case"number":return{type:v.Number};case"boolean":return{type:v.Boolean};case"string":return{type:v.String}}const S=function(e){const r=e;if(e instanceof s||"function"==typeof r?.isFloat||!0===r?.isFloat)return v.FloatNode;if(e instanceof i||"function"==typeof r?.isBool||!0===r?.isBool)return v.BooleanNode;if(e instanceof f||"function"==typeof r?.isRgb||!0===r?.isRgb)return v.RgbNode;if(e instanceof m||"function"==typeof r?.isVec2||!0===r?.isVec2)return v.Vec2Node;if(e instanceof d||"function"==typeof r?.isVec3||!0===r?.isVec3)return v.Vec3Node;if(e instanceof b||"function"==typeof r?.isVec4||!0===r?.isVec4)return v.Vec4Node;if(e instanceof y||e instanceof p||"function"==typeof r?.isSampler2D||!0===r?.isSampler2D)return v.Sampler2DNode;return}(g);if(null!=S)return{type:S};if(g instanceof o)return{type:v.Vector2};if(g instanceof a)return{type:v.Vector3};if(g instanceof c)return{type:v.Vector4};if(g instanceof e)return{type:v.Color};if(g instanceof r)return{type:v.Euler};if(g instanceof u)return{type:v.Texture};if(g instanceof t)return{type:v.Material};if(g instanceof n)return{type:v.Object3D};if("undefined"!=typeof AudioBuffer&&g instanceof AudioBuffer)return{type:v.AudioBuffer};if(X(g,"VisualEffect"))return{type:v.VisualEffect};if(X(g,"PrefabOf"))return{type:v.PrefabActor};if(X(g,"Prefab"))return{type:v.Prefab};if(X(g,"DataAssetRef"))return{type:v.DataAsset};if(g instanceof N)return{type:v.Curve};if(X(g,"ColorLayer"))return{type:v.ColorLayer};if(X(g,"MaskLayer"))return{type:v.MaskLayer};if(g instanceof l)return{type:v.AnimationClip};if(X(g,"Sequence"))return{type:v.Sequence};if(V(g))return{type:v.SequenceData};const P=A(g.constructor);return null!=P?{type:v.Struct,struct:P}:void 0}export function convertConfiguredParamValueToRuntimeType(e,r){if(null==e||null==r)return e;if(e.type===v.Array||r.type===v.Array)return function(e,r){if(r.type===v.Array){const t=B(e),n=r.element??(t?e.element:e.type);if(null==n)return t?e:null;const u=t?e.element:e.type,o=(t?Array.isArray(e.value)?e.value:[]:[e.value]).map(e=>M(e,u,n));return o.some(e=>e===q)?null:{...e,type:v.Array,element:n,...F(e,r),value:o}}if(!B(e))return null;const t=Array.isArray(e.value)?e.value[0]:void 0;if(null==t)return null;const n=M(t,e.element,r.type);if(n===q)return null;return{...e,type:r.type,...k(e,r),value:n}}(e,r);const t=M(e.value,e.type,r.type);return t===q?null:{...e,type:r.type,...k(e,r),value:t}}function B(e){return e.type===v.Array}function k(e,r){if(r.type!==v.Struct&&e.type!==v.Struct)return{};const t=function(e,r){if(null==r)return e;if(null==e)return r;if(e===r||S(e,r))return e;const t=g(e),n=g(r);if(null==t||null==n)return e;return r}(e.type===v.Struct?e.struct:void 0,r.struct);return null!=t?{struct:t}:{}}function F(e,r){if(r.type!==v.Array)return{};const t=B(e)?e.elementStruct:void 0,n=r.elementStruct??t;return null!=n?{elementStruct:n}:{}}const q=Symbol("skippedParamValue");function M(e,r,t){if(function(e,r){if(e===r)return!0;const t=L(e);return null!=t&&t===L(r)}(r,t)&&function(e,r){switch(r){case v.Number:return"number"==typeof e||"string"==typeof e&&Number.isFinite(parseFloat(e));case v.FloatNode:return"number"==typeof e||"string"==typeof e&&Number.isFinite(parseFloat(e))||function(e){if(null==e||"object"!=typeof e||Array.isArray(e))return!1;const r=e;return"particle"===r.time&&"string"==typeof r.easing&&null!=H(r.a)&&null!=H(r.b)}(e);case v.Boolean:case v.BooleanNode:return"boolean"==typeof e;case v.Vector2:case v.Vec2Node:return z(e,2);case v.Vector3:case v.Vec3Node:return z(e,3);case v.Vector4:case v.Vec4Node:return z(e,4);case v.Euler:return Array.isArray(e)&&e.length>=3&&null!=O(e,3);case v.Color:case v.RgbNode:return null!=I(e);case v.String:return"string"==typeof e;case v.Scene:return null!=e&&"object"==typeof e&&"string"==typeof e.id;case v.Array:return Array.isArray(e);case v.Texture:case v.Sampler2DNode:case v.BaseActor:case v.Object3D:case v.Material:case v.AudioBuffer:case v.VisualEffect:case v.Prefab:case v.PrefabActor:case v.DataAsset:case v.AnimationClip:case v.Sequence:return null==e||"string"==typeof e||"object"==typeof e;case v.SequenceData:return null==e||V(e);case v.Struct:return null!=e&&"object"==typeof e&&!Array.isArray(e);case v.Curve:case v.ColorLayer:case v.MaskLayer:return null!=e}return!0}(e,t))return e;switch(t){case v.Number:case v.FloatNode:{const r=H(e);return null!=r?r:q}case v.Boolean:case v.BooleanNode:{const r=function(e){if("boolean"==typeof e)return e;if("number"==typeof e)return 0!==e;if("string"==typeof e){const r=e.trim().toLowerCase();if(["true","1","yes","on"].includes(r))return!0;if(["false","0","no","off"].includes(r))return!1}return null}(e);return null!=r?r:q}case v.Vector2:case v.Vec2Node:return E(e,2,r)??q;case v.Vector3:case v.Vec3Node:return E(e,3,r)??q;case v.Vector4:case v.Vec4Node:return E(e,4,r)??q;case v.Color:case v.RgbNode:return function(e,r){if(r===v.Color||r===v.RgbNode)return"string"==typeof e||"number"==typeof e?e:W(e);return W(e)}(e,r)??q;case v.Euler:return function(e,r){if(Array.isArray(e)){const r=O(e,3);if(null==r)return null;const t="string"==typeof e[3]?e[3]:"XYZ";return[r[0],r[1],r[2],t]}const t=E(e,3,r);return null!=t?[t[0],t[1],t[2],"XYZ"]:null}(e,r)??q;case v.String:return"string"==typeof e?e:String(e);case v.Scene:return"string"==typeof e?{id:e,name:e}:null!=e&&"object"==typeof e&&"string"==typeof e.id?e:q;case v.Texture:case v.Sampler2DNode:case v.BaseActor:case v.Object3D:case v.Material:case v.AudioBuffer:case v.VisualEffect:case v.Curve:case v.ColorLayer:case v.MaskLayer:case v.Prefab:case v.PrefabActor:case v.DataAsset:case v.AnimationClip:case v.Sequence:case v.SequenceData:case v.Struct:return t===v.SequenceData&&V(e)?e:q}return q}function z(e,r){if(Array.isArray(e))return e.length>=r&&null!=O(e,r);if(null!=e&&"object"==typeof e){const t=e;return["x","y","z","w"].slice(0,r).every(e=>null!=H(t[e]))}return!1}function L(e){switch(e){case v.Number:case v.FloatNode:return"number";case v.Boolean:case v.BooleanNode:return"boolean";case v.Vector2:case v.Vec2Node:return"vector2";case v.Vector3:case v.Vec3Node:return"vector3";case v.Vector4:case v.Vec4Node:return"vector4";case v.Color:case v.RgbNode:return"color";case v.Texture:case v.Sampler2DNode:return"texture";case v.Prefab:case v.PrefabActor:return"prefab";case v.DataAsset:return"dataAsset";case v.Struct:return"struct"}}function H(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e){const r=parseFloat(e);return Number.isFinite(r)?r:null}if("boolean"==typeof e)return e?1:0;if(Array.isArray(e))return H(e[0]);if(null!=e&&"object"==typeof e){const r=e;return H(r.x??r.r??r.value)}return null}function E(e,r,t){if(t===v.Color||t===v.RgbNode){const t=I(e);if(null!=t)return O(t.toArray(),r,4===r?1:0)}if(Array.isArray(e))return O(e,r);if("number"==typeof e||"string"==typeof e||"boolean"==typeof e){const t=H(e);return null!=t?new Array(r).fill(t):null}if(null!=e&&"object"==typeof e){const t=e,n=["x","y","z","w"].slice(0,r).map(e=>t[e]);if(n.some(e=>null!=e))return O(n,r);const u=["r","g","b","a"].slice(0,r).map(e=>t[e]);if(u.some(e=>null!=e))return O(u,r,4===r?1:0)}return null}function O(e,r,t=0){const n=[];for(let u=0;u<r;u++){const r=H(e[u]??t);if(null==r)return null;n.push(r)}return n}function W(e){const r=I(e);return null!=r?"#"+r.getHexString():null}function I(r){try{if(r instanceof e)return r.clone();if("string"==typeof r)return function(e){return/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e.trim())||/^(rgb|hsl)a?\(/i.test(e.trim())}(r)?new e(r):null;if("number"==typeof r)return Number.isInteger(r)&&r>=0?new e(r):null;if(Array.isArray(r)){const t=O(r,3);return null!=t?(new e).fromArray(t):null}if(null!=r&&"object"==typeof r){const t=r;if(null!=t.r||null!=t.g||null!=t.b){const r=O([t.r,t.g,t.b],3);return null!=r?(new e).fromArray(r):null}if(null!=t.x||null!=t.y||null!=t.z){const r=O([t.x,t.y,t.z],3);return null!=r?(new e).fromArray(r):null}}}catch{return null}return null}function X(e,r){return null!=e&&"object"==typeof e&&e.constructor?.name===r}/*
2
2
  * Copyright (©) 2026 Hology Interactive AB. All rights reserved.
3
3
  * See the LICENSE.md file for details.
4
4
  */
@@ -385,6 +385,8 @@ export declare class SceneMaterializer {
385
385
  private readonly livePrefabInstances;
386
386
  resolveSceneActor(sceneObjectId: SceneObjectId): BaseActor | undefined;
387
387
  private originalFog;
388
+ private sceneSettingsActive;
389
+ private originalGlobalLight?;
388
390
  private assets;
389
391
  detailTier: DetailTier;
390
392
  constructor(scene: Scene, dataProvider: SceneDataProvider, assetsService: AssetsProvider, assetManagerService: AssetResourceLoader, renderingView: RenderingView, shaders: ShaderImpl[], actorTypes: ActorImpl[], actorProvider: ActorProvider, componentTypes?: ClassImpl<ActorComponent>[]);
@@ -617,7 +619,7 @@ export declare class SceneMaterializer {
617
619
  private loadSpotLightMap;
618
620
  private applyDirectionalAmbientLight;
619
621
  private applyDirectionalLight;
620
- dispose(): void;
622
+ dispose(retainedActors?: ReadonlySet<BaseActor>): void;
621
623
  private announcePrefabEventGraphs;
622
624
  private removePrefabEventGraphs;
623
625
  }