var gdjs;(function(n){const h=new n.Logger("RuntimeScene"),c=new n.Logger("RuntimeScene (setup warnings)");class u extends n.RuntimeInstanceContainer{constructor(e){super(e);this._eventsFunction=null;this._idToCallbackMap=null;this._lastId=0;this._name="";this._gameStopRequested=!1;this._requestedScene="";this._resourcesUnloading="inherit";this._asyncTasksManager=new n.AsyncTasksManager;this._isLoaded=!1;this._isJustResumed=!1;this._backgroundColor=0;this._clearCanvas=!0;this._profiler=null;this._onProfilerStopped=null;this.networkId=null;this._runtimeGame=e,this._variables=new n.VariablesContainer,this._variablesByExtensionName=new Map,this._timeManager=new n.TimeManager,this._requestedChange=d.CONTINUE,this._cachedGameResolutionWidth=e?e.getGameResolutionWidth():0,this._cachedGameResolutionHeight=e?e.getGameResolutionHeight():0,this._renderer=new n.RuntimeSceneRenderer(this,e?e.getRenderer():null),this._debuggerRenderer=new n.DebuggerRenderer(this),this.onGameResolutionResized()}addLayer(e){const t=new n.Layer(e,this);this._layers.put(e.name,t),this._orderedLayers.push(t)}onGameResolutionResized(){const e=this.getViewportOriginX(),t=this.getViewportOriginY();this._cachedGameResolutionWidth=this._runtimeGame?this._runtimeGame.getGameResolutionWidth():0,this._cachedGameResolutionHeight=this._runtimeGame?this._runtimeGame.getGameResolutionHeight():0;for(const r in this._layers.items)this._layers.items.hasOwnProperty(r)&&this._layers.items[r].onGameResolutionResized(e,t);this._renderer.onGameResolutionResized()}loadFromScene(e,t){if(!e){h.error("loadFromScene was called without a scene");return}const{sceneData:r,usedExtensionsWithVariablesData:s}=e;this._isLoaded&&this.unloadScene(),this._runtimeGame&&this._runtimeGame.getRenderer().setWindowTitle(r.title),this._name=r.name,this._resourcesUnloading=r.resourcesUnloading||"inherit",this.setBackgroundColor(r.r,r.v,r.b);for(let i=0,o=r.layers.length;ii[2]||o.min[1]>i[3]||o.max[0]{const l=i.getNetworkSyncData(e);l&&(s[o]=l)}),t!==void 0&&t!==1&&!this.networkId)return null;const a={var:r,extVar:s,id:this.getOrCreateNetworkId()};if(e.syncSceneVisualProps&&(a.color=this._backgroundColor),e.syncLayers){const i={};for(const o in this._layers.items)i[o]=this._layers.items[o].getNetworkSyncData();a.layers=i}return e.syncSceneTimers&&(a.time=this._timeManager.getNetworkSyncData()),e.syncOnceTriggers&&(a.once=this._onceTriggers.getNetworkSyncData()),n.callbacksRuntimeSceneGetSyncData.forEach(i=>{i(this,a,e)}),e.syncAsyncTasks&&(a.async=this._asyncTasksManager.getNetworkSyncData(e)),a}updateFromNetworkSyncData(e,t){if(e.color!==void 0&&(this._backgroundColor=e.color),e.layers)for(const r in e.layers){const s=e.layers[r];this.hasLayer(r)&&this.getLayer(r).updateFromNetworkSyncData(s)}if(e.var&&this._variables.updateFromNetworkSyncData(e.var,t),e.extVar)for(const r in e.extVar){if(!e.extVar.hasOwnProperty(r))continue;const s=e.extVar[r],a=this._variablesByExtensionName.get(r);a&&a.updateFromNetworkSyncData(s,t)}e.time&&this._timeManager.updateFromNetworkSyncData(e.time),e.once&&this._onceTriggers.updateNetworkSyncData(e.once),n.callbacksRuntimeSceneUpdateFromSyncData.forEach(r=>{r(this,e,t)}),e.async&&this._idToCallbackMap&&this._asyncTasksManager.updateFromNetworkSyncData(e.async,this._idToCallbackMap,this,t)}getOrCreateNetworkId(){if(!this.networkId){const e=n.makeUuid().substring(0,8);this.networkId=e}return this.networkId}}n.RuntimeScene=u;let d;(function(i){i[i.CONTINUE=0]="CONTINUE",i[i.PUSH_SCENE=1]="PUSH_SCENE",i[i.POP_SCENE=2]="POP_SCENE",i[i.REPLACE_SCENE=3]="REPLACE_SCENE",i[i.CLEAR_SCENES=4]="CLEAR_SCENES",i[i.STOP_GAME=5]="STOP_GAME"})(d=n.SceneChangeRequest||(n.SceneChangeRequest={}))})(gdjs||(gdjs={})); //# sourceMappingURL=runtimescene.js.map