"use strict";console.log("XR+ API 2023 09 08");var _apiParams={};class XRAPI_V1{constructor(e){var n=this;n.isReady=!1,n.app=null,n.compEngine=null,n.trackingEngine=null,e&&(_apiParams=e),document.addEventListener("API_init",(function(){console.log("xrplus-api.js got message API_INIT"),n.init()}),!1),"undefined"!=typeof _app&&_app&&_app.compEngine&&_app.trackingEngine&&(console.log(" API_INIT hack"),n.init())}init(){var e=this;console.log("API_INIT"),e.app=_app,e.compEngine=_app.compEngine,e.trackingEngine=_app.trackingEngine,e.isReady=!0,void 0!==_apiParams.startSceneIndex&&null!==_apiParams.startSceneIndex&&e.setStartingSceneIndex(_apiParams.startSceneIndex)}setStartingSceneIndex(e){console.log("API: set starting scene");var n=_app.compEngine;e--,n.data.composition[e]||(e=0),n.settings.pagination.startPage=e,n.startSceneIndex=e,n.startSceneUid=n.data.composition[e].uid}getIsLibraryLoaded(){return!!this.isReady&&this.compEngine.library.isLoaded}getIsReady(){return!!this.isReady&&(this.compEngine||console.log("no compEngine"),!!this.compEngine&&this.compEngine.isReady)}getIsStarted(){return!!this.isReady&&this.app.started}getProjectDetails(){var e=_mainData.projectData;return{name:e.name,url:e.url,trackingMode:e.tracking.trackingMode,version:1*e.v}}getThreejsScene(){return _app.compEngine.scene3}getCompositionParent(){var e=this;return e.isReady&&e.compEngine&&e.compEngine.rootComposition?e.compEngine.rootComposition:null}getCompositionChildren(){var e=this;return e.isReady&&e.compEngine&&e.compEngine.rootComposition?e.compEngine.rootComposition.children:null}getCompositionItemByName(e){var n=this,t=null;return n.isReady&&n.compEngine&&n.compEngine.rootComposition?(n.compEngine.rootComposition.traverse((function(n){t||n.name==e&&(t=n)})),t):null}getLibraryImageSrcByUid(e){return e*=1,this.compEngine.getters.getLibImageSrcByUid(e)}getLibraryItemByUid(e){return e*=1,this.compEngine.getters.getLibItemByUid(e)}getDesktopScreenDomElement(){return document.getElementById("desktop")}getLoadingScreenDomElement(){return document.getElementById("loadingScreen")}getStartScreenDomElement(){return document.getElementById("startScreen")}getMainScreenDomElement(){return document.getElementById("mainScreen")}applyEnvironmentMap(){this.compEngine.setupEnvMap()}goToScene(e){e--,this.compEngine.changeScene(e)}goToState(e){e--;var n=this.compEngine.modulesEngine.statesModule;if(n){var t=n.moduleData.states[e].uid;this.goToStateByUid(t)}}goToStateByUid(e){var n={type:"switchState",stateUid:1*e};new c_action(this.compEngine,n,!1)}setOverlayByUid(e){var n={type:"changeOverlay",overlayUid:1*e};new c_action(this.compEngine,n,!1)}getGamingVariableValueByUid(e){e*=1;var n=this.compEngine.modulesEngine.gamingModule;if(n){var t=n.getVarByUid(e);if(null!==t)return t.value;console.warn("XR+ API: no variable found with uid ",e)}}getGamingTimerStartValueByUid(e){e*=1;var n=this.compEngine.modulesEngine.gamingModule;if(n){var t=n.getTimerByUid(e);if(null!==t)return 1*t.timerData.start;console.warn("XR+ API: no timer found with uid ",e)}}getGamingTimerValueByUid(e){e*=1;var n=this.compEngine.modulesEngine.gamingModule;if(n){var t=n.getTimerByUid(e);if(null!==t)return 1*t.currentValue;console.warn("XR+ API: no timer found with uid ",e)}}setGamingVariableValueByUid(e,n){e*=1;var t=this.compEngine.modulesEngine.gamingModule;if(t||console.log("no gaming module"),t){if(t.setVarByUid(e,n))return!0;console.warn("XR+ API: no variable found with uid ",e)}}}