|
@@ -1,4 +1,4 @@
|
|
-//const log$3 = new Logger("xverse-room");
|
|
|
|
|
|
+//const logger = new Logger("xverse-room");
|
|
import XverseAvatarManager from "./XverseAvatarManager.js"
|
|
import XverseAvatarManager from "./XverseAvatarManager.js"
|
|
import {logger} from "./Logger.js"
|
|
import {logger} from "./Logger.js"
|
|
import Codes from "./enum/Codes.js"
|
|
import Codes from "./enum/Codes.js"
|
|
@@ -10,6 +10,7 @@ import Signal from "./Signal.js"
|
|
import ModelManager from "./ModelManager.js"
|
|
import ModelManager from "./ModelManager.js"
|
|
import {reporter} from "./Reporter.js"
|
|
import {reporter} from "./Reporter.js"
|
|
import util from "./util.js"
|
|
import util from "./util.js"
|
|
|
|
+import XverseEffectManager from "./XverseEffectManager.js"
|
|
import TimeoutError from "./error/TimeoutError.js"
|
|
import TimeoutError from "./error/TimeoutError.js"
|
|
import ParamError from "./error/ParamError.js"
|
|
import ParamError from "./error/ParamError.js"
|
|
import MotionType from "./enum/MotionType.js"
|
|
import MotionType from "./enum/MotionType.js"
|
|
@@ -17,47 +18,106 @@ import NetworkController from "./NetworkController.js"
|
|
import InitNetworkTimeoutError from "./error/InitNetworkTimeoutError.js"
|
|
import InitNetworkTimeoutError from "./error/InitNetworkTimeoutError.js"
|
|
import InitConfigTimeoutError from "./error/InitConfigTimeoutError.js"
|
|
import InitConfigTimeoutError from "./error/InitConfigTimeoutError.js"
|
|
import InitDecoderTimeoutError from "./error/InitDecoderTimeoutError.js"
|
|
import InitDecoderTimeoutError from "./error/InitDecoderTimeoutError.js"
|
|
|
|
+import {eventsManager} from "./EventsManager.js"
|
|
|
|
|
|
export default class Xverse_Room extends EventEmitter {
|
|
export default class Xverse_Room extends EventEmitter {
|
|
constructor(e) {
|
|
constructor(e) {
|
|
super();
|
|
super();
|
|
- this.disableAutoTurn = !1
|
|
|
|
- this._currentNetworkOptions = null
|
|
|
|
- this.lastSkinId = null
|
|
|
|
- this.debug = null
|
|
|
|
- this.isFirstDataUsed = !1
|
|
|
|
- this.userId = null
|
|
|
|
- this.pathManager = new PathManager
|
|
|
|
- this.networkController = null
|
|
|
|
- this._startTime = Date.now()
|
|
|
|
- this.canvas = null
|
|
|
|
- this.eventsController = null
|
|
|
|
- this.panorama = null
|
|
|
|
- this.engineProxy = null
|
|
|
|
- this._id = null
|
|
|
|
- this.skinList = []
|
|
|
|
- this.isHost = !1
|
|
|
|
- this.avatarManager = new XverseAvatarManager(this)
|
|
|
|
- this.effectManager = new XverseAvatarManager(this)
|
|
|
|
- this.sceneManager = null
|
|
|
|
- this.scene = null
|
|
|
|
- this.breathPointManager = null
|
|
|
|
- this._currentState = null
|
|
|
|
- this.joined = !1
|
|
|
|
- this.disableRotate = !1
|
|
|
|
- this.isPano = !1
|
|
|
|
- this.movingByClick = !0
|
|
|
|
- this.camera = new Camera(this);
|
|
|
|
- this.stats = new Stats(this)
|
|
|
|
- this.isUpdatedRawYUVData = !1
|
|
|
|
- this.actionsHandler = new ActionsHandler(this);
|
|
|
|
- this._currentClickingState = null
|
|
|
|
- this.signal = new Signal(this);
|
|
|
|
- this.firstFrameTimestamp = null
|
|
|
|
- this.moveToExtra = '';
|
|
|
|
- this.options = e;
|
|
|
|
-
|
|
|
|
- this.options.wsServerUrl || (this.options.wsServerUrl = SERVER_URLS.DEV);
|
|
|
|
|
|
+ E(this, "disableAutoTurn", !1);
|
|
|
|
+ E(this, "options");
|
|
|
|
+ E(this, "_currentNetworkOptions");
|
|
|
|
+ E(this, "lastSkinId");
|
|
|
|
+ E(this, "debug");
|
|
|
|
+ E(this, "isFirstDataUsed", !1);
|
|
|
|
+ E(this, "userId", null);
|
|
|
|
+ E(this, "pathManager", new PathManager);
|
|
|
|
+ E(this, "networkController");
|
|
|
|
+ E(this, "_startTime", Date.now());
|
|
|
|
+ E(this, "canvas");
|
|
|
|
+ E(this, "modelManager");
|
|
|
|
+ E(this, "eventsController");
|
|
|
|
+ E(this, "panorama");
|
|
|
|
+ E(this, "engineProxy");
|
|
|
|
+ E(this, "_id");
|
|
|
|
+ E(this, "skinList", []);
|
|
|
|
+ E(this, "isHost", !1);
|
|
|
|
+ E(this, "avatarManager", new XverseAvatarManager(this));
|
|
|
|
+ E(this, "effectManager", new XverseEffectManager(this));
|
|
|
|
+ E(this, "sceneManager");
|
|
|
|
+ E(this, "scene");
|
|
|
|
+ E(this, "breathPointManager");
|
|
|
|
+ E(this, "_currentState");
|
|
|
|
+ E(this, "joined", !1);
|
|
|
|
+ E(this, "disableRotate", !1);
|
|
|
|
+ E(this, "isPano", !1);
|
|
|
|
+ E(this, "movingByClick", !0);
|
|
|
|
+ E(this, "camera", new Camera(this));
|
|
|
|
+ E(this, "stats", new Stats(this));
|
|
|
|
+ E(this, "isUpdatedRawYUVData", !1);
|
|
|
|
+ E(this, "actionsHandler", new ActionsHandler(this));
|
|
|
|
+ E(this, "_currentClickingState", null);
|
|
|
|
+ E(this, "signal", new Signal(this));
|
|
|
|
+ E(this, "firstFrameTimestamp");
|
|
|
|
+ E(this, "receiveRtcData", async()=>{
|
|
|
|
+ logger.info("Invoke receiveRtcData");
|
|
|
|
+ let e = !1
|
|
|
|
+ , t = !1
|
|
|
|
+ , r = !1
|
|
|
|
+ , n = !1;
|
|
|
|
+ return this.viewMode === "serverless" ? (logger.warn("set view mode to serverless"),
|
|
|
|
+ this.setViewMode("observer").then(()=>this, ()=>this)) : new Promise(o=>{
|
|
|
|
+ const a = this.networkController.rtcp.workers;
|
|
|
|
+ a.registerFunction("signal", s=>{
|
|
|
|
+ this.signal.handleSignal(s)
|
|
|
|
+ }
|
|
|
|
+ ),
|
|
|
|
+ a.registerFunction("stream", s=>{
|
|
|
|
+ var l;
|
|
|
|
+ if (this.emit("streamTimestamp", {
|
|
|
|
+ timestamp: Date.now()
|
|
|
|
+ }),
|
|
|
|
+ t || (t = !0,
|
|
|
|
+ logger.info("Invoke stream event")),
|
|
|
|
+ s.stream) {
|
|
|
|
+ r || (r = !0,
|
|
|
|
+ logger.info("Invoke updateRawYUVData")),
|
|
|
|
+ this.isUpdatedRawYUVData = !1;
|
|
|
|
+ const u = (l = this._currentState.skin) == null ? void 0 : l.fov;
|
|
|
|
+ this.sceneManager.materialComponent.updateRawYUVData(s.stream, s.width, s.height, u),
|
|
|
|
+ this.isUpdatedRawYUVData = !0
|
|
|
|
+ }
|
|
|
|
+ e || (logger.info("Invoke isAfterRenderRegistered"),
|
|
|
|
+ e = !0,
|
|
|
|
+ this.scene.registerAfterRender(()=>{
|
|
|
|
+ this.engineProxy.frameRenderNumber >= 2 && (n || (n = !0,
|
|
|
|
+ logger.info("Invoke registerAfterRender")),
|
|
|
|
+ this.isFirstDataUsed || (logger.info("Invoke isStreamAvailable"),
|
|
|
|
+ this.isFirstDataUsed = !0,
|
|
|
|
+ this.firstFrameTimestamp = Date.now(),
|
|
|
|
+ o(this),
|
|
|
|
+ this.afterJoinRoom()))
|
|
|
|
+ }
|
|
|
|
+ ))
|
|
|
|
+ }
|
|
|
|
+ ),
|
|
|
|
+ this.panorama.bindListener(()=>{
|
|
|
|
+ o(this),
|
|
|
|
+ this.afterJoinRoom()
|
|
|
|
+ }
|
|
|
|
+ ),
|
|
|
|
+ a.registerFunction("reconnectedFrame", ()=>{}
|
|
|
|
+ ),
|
|
|
|
+ logger.info("Invoke decoderWorker.postMessage"),
|
|
|
|
+ a.decoderWorker.postMessage({
|
|
|
|
+ t: 5
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ E(this, "moveToExtra", "");
|
|
|
|
+ this.options = e,
|
|
|
|
+ this.options.wsServerUrl || (this.options.wsServerUrl = SERVER_URLS.DEV),
|
|
this.modelManager = ModelManager.getInstance(e.appId, e.releaseId),
|
|
this.modelManager = ModelManager.getInstance(e.appId, e.releaseId),
|
|
this.updateReporter();
|
|
this.updateReporter();
|
|
const n = e
|
|
const n = e
|
|
@@ -72,63 +132,6 @@ export default class Xverse_Room extends EventEmitter {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
- async receiveRtcData(){
|
|
|
|
- logger.info("Invoke receiveRtcData");
|
|
|
|
- let e = !1
|
|
|
|
- , t = !1
|
|
|
|
- , r = !1
|
|
|
|
- , n = !1;
|
|
|
|
- return this.viewMode === "serverless" ? (logger.warn("set view mode to serverless"),
|
|
|
|
- this.setViewMode("observer").then(()=>this, ()=>this)) : new Promise(o=>{
|
|
|
|
- const a = this.networkController.rtcp.workers;
|
|
|
|
- a.registerFunction("signal", s=>{
|
|
|
|
- this.signal.handleSignal(s)
|
|
|
|
- }
|
|
|
|
- ),
|
|
|
|
- a.registerFunction("stream", s=>{
|
|
|
|
- var l;
|
|
|
|
- if (this.emit("streamTimestamp", {
|
|
|
|
- timestamp: Date.now()
|
|
|
|
- }),
|
|
|
|
- t || (t = !0,
|
|
|
|
- logger.info("Invoke stream event")),
|
|
|
|
- s.stream) {
|
|
|
|
- r || (r = !0,
|
|
|
|
- logger.info("Invoke updateRawYUVData")),
|
|
|
|
- this.isUpdatedRawYUVData = !1;
|
|
|
|
- const u = (l = this._currentState.skin) == null ? void 0 : l.fov;
|
|
|
|
- this.sceneManager.materialComponent.updateRawYUVData(s.stream, s.width, s.height, u),
|
|
|
|
- this.isUpdatedRawYUVData = !0
|
|
|
|
- }
|
|
|
|
- e || (logger.info("Invoke isAfterRenderRegistered"),
|
|
|
|
- e = !0,
|
|
|
|
- this.scene.registerAfterRender(()=>{
|
|
|
|
- this.engineProxy.frameRenderNumber >= 2 && (n || (n = !0,
|
|
|
|
- logger.info("Invoke registerAfterRender")),
|
|
|
|
- this.isFirstDataUsed || (logger.info("Invoke isStreamAvailable"),
|
|
|
|
- this.isFirstDataUsed = !0,
|
|
|
|
- this.firstFrameTimestamp = Date.now(),
|
|
|
|
- o(this),
|
|
|
|
- this.afterJoinRoom()))
|
|
|
|
- }
|
|
|
|
- ))
|
|
|
|
- }
|
|
|
|
- ),
|
|
|
|
- this.panorama.bindListener(()=>{
|
|
|
|
- o(this),
|
|
|
|
- this.afterJoinRoom()
|
|
|
|
- }
|
|
|
|
- ),
|
|
|
|
- a.registerFunction("reconnectedFrame", ()=>{}
|
|
|
|
- ),
|
|
|
|
- logger.info("Invoke decoderWorker.postMessage"),
|
|
|
|
- a.decoderWorker.postMessage({
|
|
|
|
- t: 5
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
get currentNetworkOptions() {
|
|
get currentNetworkOptions() {
|
|
return this._currentNetworkOptions
|
|
return this._currentNetworkOptions
|
|
}
|
|
}
|