@needle-tools/engine 4.8.3-next.1a41273 → 4.8.3-next.30abed3
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/{gltf-progressive-Do1XJNMG.js → gltf-progressive-B3JW4cAu.js} +247 -248
- package/dist/gltf-progressive-DorC035H.min.js +8 -0
- package/dist/{gltf-progressive-CHV7_60B.umd.cjs → gltf-progressive-PB_58h1b.umd.cjs} +6 -6
- package/dist/{needle-engine.bundle-CcYGQALb.umd.cjs → needle-engine.bundle-Dfge2eam.umd.cjs} +27 -17
- package/dist/{needle-engine.bundle-CvDGadt9.min.js → needle-engine.bundle-hqzbYg51.min.js} +38 -28
- package/dist/{needle-engine.bundle-DbnDoLkt.js → needle-engine.bundle-rCfjUm0B.js} +171 -162
- package/dist/needle-engine.js +3 -3
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{vendor-CGONwIc0.js → vendor-B_ytQUuR.js} +6 -6
- package/dist/{vendor-BlSxe9JJ.min.js → vendor-C31T0mYm.min.js} +2 -2
- package/dist/{vendor-Cty8Dnri.umd.cjs → vendor-D51IT5ns.umd.cjs} +9 -9
- package/lib/engine/engine_context.d.ts +1 -1
- package/lib/engine/engine_context.js +5 -12
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_networking_streams.js +7 -2
- package/lib/engine/engine_networking_streams.js.map +1 -1
- package/lib/engine/webcomponents/buttons.js +6 -2
- package/lib/engine/webcomponents/buttons.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +10 -0
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +1 -0
- package/lib/engine-components/OrbitControls.js +6 -0
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/package.json +3 -3
- package/plugins/vite/peer.js +60 -2
- package/plugins/vite/poster-client.js +35 -51
- package/plugins/vite/poster.js +2 -3
- package/src/engine/engine_context.ts +7 -12
- package/src/engine/engine_networking_streams.ts +8 -4
- package/src/engine/webcomponents/buttons.ts +6 -2
- package/src/engine/webcomponents/needle menu/needle-menu.ts +10 -0
- package/src/engine/webcomponents/needle-engine.loading.ts +1 -1
- package/src/engine-components/OrbitControls.ts +5 -0
- package/dist/gltf-progressive-B--ZfCTJ.min.js +0 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Vector2 as J, Vector3 as b, Vector4 as de, Quaternion as $, PlaneGeometry as Nn, WebGLRenderer as dr, PerspectiveCamera as pe, OrthographicCamera as Md, Scene as bi, Mesh as H, Texture as Te, Uniform$1 as Ui, Color as se, ShaderMaterial as jn, Box3 as yi, ShadowMaterial as ab, Euler as Tt, MeshStandardMaterial as ct, Box3Helper as qw, GridHelper as rm, Object3D as M, Material as _e, Matrix3 as lb, Matrix4 as te, Layers as lo, Ray as co, MathUtils as gs, AxesHelper as _i, MeshBasicMaterial as we, DoubleSide as vi, BufferGeometry as In, Group as no, CylinderGeometry as cb, SphereGeometry as Rd, BoxGeometry as la, SpriteMaterial as Xw, Sprite as Qw, Shape as Yw, ExtrudeGeometry as Kw, Fog as hb, DirectionalLight as Zf, PointLight as am, EdgesGeometry as Zw, LineSegments as db, LineBasicMaterial as ub, Line as Zl, BufferAttribute as ht, Raycaster as Td, Sphere as Ed, ArrayCamera as Jw, Plane as ir, SkinnedMesh as ys, InterleavedBufferAttribute as fb, Skeleton as ex, Bone as tx, Source as ix, WebGLCubeRenderTarget as nx, CubeCamera as sx, AnimationClip as so, FileLoader as lm, TextureLoader as Qr, PropertyBinding as ca, LinearSRGBColorSpace as Ss, ShaderChunk as Vt, UniformsLib as ox, DataTexture as cm, RGBAFormat as Ad, EquirectangularReflectionMapping as _s, SRGBColorSpace as Cs, Clock as rx, NeutralToneMapping as ha, AgXToneMapping as Id, ACESFilmicToneMapping as Ld, NoToneMapping as Vh, PCFSoftShadowMap$1 as ax, BasicNodeLibrary as lx, WebGLRenderTarget as Bn, DepthTexture as pb, NearestFilter as Hh, LoopRepeat as cx, LoopOnce as Jf, AnimationMixer as hm, CompressedTexture as hx, FrontSide as ho, Camera as dx, Frustum as Gg, AudioListener as ux, PositionalAudio as fx, AudioLoader as ep, EventDispatcher as dm, BackSide as Dd, MeshDepthMaterial as px, CustomBlending as mx, MaxEquation as gx, AmbientLight as yx, HemisphereLight as _x, AlwaysStencilFunc as bx, GreaterEqualStencilFunc as vx, NotEqualStencilFunc as wx, GreaterStencilFunc as xx, LessEqualStencilFunc as Sx, EqualStencilFunc as Cx, LessStencilFunc as Px, NeverStencilFunc as qg, InvertStencilOp as Ox, DecrementWrapStencilOp as kx, IncrementWrapStencilOp as Mx, DecrementStencilOp as Rx, IncrementStencilOp as Tx, ReplaceStencilOp as Ex, ZeroStencilOp as Ax, KeepStencilOp as Ix, RawShaderMaterial as mb, GLSL3 as Lx, AlwaysDepth as Dx, GreaterEqualDepth as jx, GreaterDepth as Bx, LessEqualDepth as Fx, LessDepth as zx, NotEqualDepth as Ux, EqualDepth as Nx, BatchedMesh as Xg, MeshPhysicalMaterial as tp, LinearFilter as Gh, UnsignedByteType as $x, RingGeometry as Wx, Line3 as Vx, AdditiveBlending as gb, BoxHelper as Hx, SpotLight as Gx, DirectionalLightHelper as qx, CameraHelper as Xx, LOD as Qx, Triangle as Yx, NormalBlending as Kx, ReinhardToneMapping as um, LinearToneMapping as fm, HalfFloatType as Nu, VideoTexture as Zx, CubeTexture as Jx, CompressedCubeTexture as eS, EquirectangularRefractionMapping as tS, VectorKeyframeTrack as iS, QuaternionKeyframeTrack as nS, Audio as sS, ShaderLib as qh, UniformsUtils as yb, MirroredRepeatWrapping as Qg, MeshNormalMaterial as oS, AudioContext as rS, PMREMGenerator$1 as aS } from "./three-DrqIzZTH.js";
|
|
2
|
-
import { createLoaders as pm, getRaycastMesh as _b, LODsManager as Io, NEEDLE_progressive as We, addDracoAndKTX2Loaders as lS, configureLoader as cS, setKTX2TranscoderLocation as hS, setDracoDecoderLocation as dS } from "./gltf-progressive-
|
|
2
|
+
import { createLoaders as pm, getRaycastMesh as _b, LODsManager as Io, NEEDLE_progressive as We, addDracoAndKTX2Loaders as lS, configureLoader as cS, setKTX2TranscoderLocation as hS, setDracoDecoderLocation as dS } from "./gltf-progressive-B3JW4cAu.js";
|
|
3
3
|
import { GroundedSkybox as da, Font as uS, TextGeometry as fS, FontLoader as pS, GLTFLoader as Ps, TransformControlsGizmo as bb, EXRLoader as Xh, RGBELoader as ip, Stats as mS, nodeFrame as gS, OrbitControls as vb, PositionalAudioHelper as yS, HorizontalBlurShader as _S, VerticalBlurShader as bS, GLTFExporter as wb, strToU8 as xb, zipSync as vS, XRControllerModelFactory as wS, XRHandMeshModel as xS, Line2 as SS, LineGeometry as CS, LineMaterial as PS, KTX2Loader as OS, TransformControls as kS, InteractiveGroup as MS, HTMLMesh as RS, VertexNormalsHelper as TS, OBJLoader as mm, FBXLoader as Sb, mergeVertices as ES } from "./three-examples-BIuXQPSf.js";
|
|
4
|
-
import { fetchProfile as AS, MotionController as IS, $70d766613f57b014$export$2e2bcd8739ae039 as Yg, ByteBuffer as LS, v5 as Kg, md5 as Zg, SIZE_PREFIX_LENGTH as Cb, Builder as gm, createNoise4D as DS, Matrix4 as $u, BatchedParticleRenderer as jS, ParticleSystem as BS, RenderMode as as, ConstantColor as FS, Vector4 as zS, ConstantValue as US, TrailParticle as Jg, WorkerBase as NS, MeshBVH as $S } from "./vendor-
|
|
4
|
+
import { fetchProfile as AS, MotionController as IS, $70d766613f57b014$export$2e2bcd8739ae039 as Yg, ByteBuffer as LS, v5 as Kg, md5 as Zg, SIZE_PREFIX_LENGTH as Cb, Builder as gm, createNoise4D as DS, Matrix4 as $u, BatchedParticleRenderer as jS, ParticleSystem as BS, RenderMode as as, ConstantColor as FS, Vector4 as zS, ConstantValue as US, TrailParticle as Jg, WorkerBase as NS, MeshBVH as $S } from "./vendor-B_ytQUuR.js";
|
|
5
5
|
import { __webpack_exports__default as Ce, __webpack_exports__Text as Pb, __webpack_exports__Block as Ob, __webpack_exports__update as WS, SimpleStateBehavior as VS, __webpack_exports__Inline as Wu, __webpack_exports__FontLibrary as ey, ThreeMeshUI as ty } from "./three-mesh-ui-D6Mz5Yl7.js";
|
|
6
6
|
import { EffectAttribute as HS } from "./postprocessing-DddlM3CK.js";
|
|
7
7
|
const Vu = /* @__PURE__ */ new Map();
|
|
@@ -1582,14 +1582,14 @@ function Wb(s, ...e) {
|
|
|
1582
1582
|
}
|
|
1583
1583
|
}
|
|
1584
1584
|
const GC = w("nodevlogs");
|
|
1585
|
-
function
|
|
1585
|
+
function Be(s, e = Ni.Log) {
|
|
1586
1586
|
kn(e, s);
|
|
1587
1587
|
}
|
|
1588
1588
|
function me(s) {
|
|
1589
|
-
|
|
1589
|
+
Be(s, Ni.Warn);
|
|
1590
1590
|
}
|
|
1591
1591
|
function Nd(s) {
|
|
1592
|
-
|
|
1592
|
+
Be(s, Ni.Error);
|
|
1593
1593
|
}
|
|
1594
1594
|
let cp, Yu;
|
|
1595
1595
|
function L() {
|
|
@@ -1787,9 +1787,9 @@ po('if(!globalThis["NEEDLE_PROJECT_BUILD_TIME"]) globalThis["NEEDLE_PROJECT_BUIL
|
|
|
1787
1787
|
po('if(!globalThis["NEEDLE_PUBLIC_KEY"]) globalThis["NEEDLE_PUBLIC_KEY"] = "unknown";');
|
|
1788
1788
|
po('globalThis["__NEEDLE_ENGINE_VERSION__"] = "4.8.3";');
|
|
1789
1789
|
po('globalThis["__NEEDLE_ENGINE_GENERATOR__"] = "undefined";');
|
|
1790
|
-
po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon Aug 18 2025
|
|
1790
|
+
po('globalThis["__NEEDLE_PROJECT_BUILD_TIME__"] = "Mon Aug 18 2025 15:24:11 GMT+0000 (Coordinated Universal Time)";');
|
|
1791
1791
|
po('globalThis["__NEEDLE_PUBLIC_KEY__"] = "' + NEEDLE_PUBLIC_KEY + '";');
|
|
1792
|
-
const Ln = "4.8.3", wm = "undefined", Qb = "Mon Aug 18 2025
|
|
1792
|
+
const Ln = "4.8.3", wm = "undefined", Qb = "Mon Aug 18 2025 15:24:11 GMT+0000 (Coordinated Universal Time)";
|
|
1793
1793
|
Xb && console.log(`Engine version: ${Ln} (generator: ${wm})
|
|
1794
1794
|
Project built at ${Qb}`);
|
|
1795
1795
|
const vl = NEEDLE_PUBLIC_KEY, ro = "needle_isActiveInHierarchy", jr = "builtin_components", Oh = "needle_editor_guid";
|
|
@@ -1911,7 +1911,7 @@ function o1(s) {
|
|
|
1911
1911
|
pa[e](s);
|
|
1912
1912
|
}
|
|
1913
1913
|
const tt = w("debuginput");
|
|
1914
|
-
var Pm = /* @__PURE__ */ ((s) => (s.Mouse = "mouse", s.Touch = "touch", s.Controller = "controller", s.Hand = "hand", s))(Pm || {}),
|
|
1914
|
+
var Pm = /* @__PURE__ */ ((s) => (s.Mouse = "mouse", s.Touch = "touch", s.Controller = "controller", s.Hand = "hand", s))(Pm || {}), De = /* @__PURE__ */ ((s) => (s.PointerDown = "pointerdown", s.PointerUp = "pointerup", s.PointerMove = "pointermove", s.KeyDown = "keydown", s.KeyUp = "keyup", s.KeyPressed = "keypress", s))(De || {});
|
|
1915
1915
|
class Vs extends PointerEvent {
|
|
1916
1916
|
/**
|
|
1917
1917
|
* Spatial input data
|
|
@@ -2396,13 +2396,13 @@ class r1 {
|
|
|
2396
2396
|
createInputEvent(e) {
|
|
2397
2397
|
switch (e.type) {
|
|
2398
2398
|
case "pointerdown":
|
|
2399
|
-
tt &&
|
|
2399
|
+
tt && Be("Create Pointer down"), this.onDownButton(e.deviceIndex, e.button), this.onDown(e);
|
|
2400
2400
|
break;
|
|
2401
2401
|
case "pointermove":
|
|
2402
|
-
tt &&
|
|
2402
|
+
tt && Be("Create Pointer move"), this.onMove(e);
|
|
2403
2403
|
break;
|
|
2404
2404
|
case "pointerup":
|
|
2405
|
-
tt &&
|
|
2405
|
+
tt && Be("Create Pointer up"), this.onUp(e), this.onReleaseButton(e.deviceIndex, e.button);
|
|
2406
2406
|
break;
|
|
2407
2407
|
}
|
|
2408
2408
|
}
|
|
@@ -2496,7 +2496,7 @@ class r1 {
|
|
|
2496
2496
|
if (this.context.isInAR || this.canReceiveInput(e) === !1) return;
|
|
2497
2497
|
e.target instanceof HTMLElement && e.target.setPointerCapture(e.pointerId);
|
|
2498
2498
|
const t = this.getPointerId(e);
|
|
2499
|
-
tt &&
|
|
2499
|
+
tt && Be(`pointer down #${t}, identifier:${e.pointerId}`);
|
|
2500
2500
|
const i = this.getAndUpdateSpatialObjectForScreenPosition(t, e.clientX, e.clientY), n = new Vs("pointerdown", e, { origin: this, mode: "screen", deviceIndex: 0, pointerId: t, button: e.button, clientX: e.clientX, clientY: e.clientY, pointerType: e.pointerType, buttonName: this.getButtonName(e), device: i, pressure: e.pressure });
|
|
2501
2501
|
this.onDown(n);
|
|
2502
2502
|
};
|
|
@@ -3178,16 +3178,16 @@ Pinch: ${this.getGesture("pinch")?.value.toFixed(3)}`), n += `
|
|
|
3178
3178
|
if (!this.emitPointerDownEvent || this.inputSource !== e.inputSource) return;
|
|
3179
3179
|
this.onUpdateFrame(e.frame), this._hasSelectEvent = !0;
|
|
3180
3180
|
const t = this._layout?.selectComponentId, i = this._layout?.components[t]?.gamepadIndices?.button;
|
|
3181
|
-
i !== void 0 && (this._selectButtonIndex = i), !Xc && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 16711680, 10), this.emitPointerEvent(
|
|
3181
|
+
i !== void 0 && (this._selectButtonIndex = i), !Xc && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 16711680, 10), this.emitPointerEvent(De.PointerDown, this._selectButtonIndex || 0, "xr-standard-trigger", !0, e));
|
|
3182
3182
|
};
|
|
3183
3183
|
onSelectEnd = (e) => {
|
|
3184
|
-
this.emitPointerUpEvent && (Xc || this.inputSource === e.inputSource && this.emitPointerEvent(
|
|
3184
|
+
this.emitPointerUpEvent && (Xc || this.inputSource === e.inputSource && this.emitPointerEvent(De.PointerUp, this._selectButtonIndex || 0, "xr-standard-trigger", !0, e));
|
|
3185
3185
|
};
|
|
3186
3186
|
onSequeezeStart = (e) => {
|
|
3187
|
-
this.emitPointerDownEvent && this.inputSource === e.inputSource && (this._squeezeButtonIndex = this._layout?.components["xr-standard-squeeze"]?.gamepadIndices?.button, this._squeezeButtonIndex !== void 0 && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 255, 10), this.emitPointerEvent(
|
|
3187
|
+
this.emitPointerDownEvent && this.inputSource === e.inputSource && (this._squeezeButtonIndex = this._layout?.components["xr-standard-squeeze"]?.gamepadIndices?.button, this._squeezeButtonIndex !== void 0 && (Yn && F.DrawDirection(this.rayWorldPosition, G(0, 0.01, 1).applyQuaternion(this.rayWorldQuaternion), 255, 10), this.emitPointerEvent(De.PointerDown, this._squeezeButtonIndex || 0, "xr-standard-squeeze", !0, e)));
|
|
3188
3188
|
};
|
|
3189
3189
|
onSequeezeEnd = (e) => {
|
|
3190
|
-
this.emitPointerUpEvent && this.inputSource === e.inputSource && this._squeezeButtonIndex !== void 0 && this.emitPointerEvent(
|
|
3190
|
+
this.emitPointerUpEvent && this.inputSource === e.inputSource && this._squeezeButtonIndex !== void 0 && this.emitPointerEvent(De.PointerUp, this._squeezeButtonIndex || 0, "xr-standard-squeeze", !0, e);
|
|
3191
3191
|
};
|
|
3192
3192
|
/** Index = button index */
|
|
3193
3193
|
states = {};
|
|
@@ -3252,7 +3252,7 @@ Pinch: ${this.getGesture("pinch")?.value.toFixed(3)}`), n += `
|
|
|
3252
3252
|
pointerInit;
|
|
3253
3253
|
emitPointerEvent(e, t, i, n, o = null, r) {
|
|
3254
3254
|
if (!this.emitEvents) {
|
|
3255
|
-
Yn && e !==
|
|
3255
|
+
Yn && e !== De.PointerMove && console.warn("Pointer events are disabled for this controller", this.index, e, t);
|
|
3256
3256
|
return;
|
|
3257
3257
|
}
|
|
3258
3258
|
if (this.xr.mode === "immersive-vr" || this.xr.isPassThrough) {
|
|
@@ -3474,7 +3474,7 @@ function m1(s, e) {
|
|
|
3474
3474
|
}, s ? new Yg(s, e) : new Yg(e);
|
|
3475
3475
|
}
|
|
3476
3476
|
async function Py() {
|
|
3477
|
-
const s = await import("./vendor-
|
|
3477
|
+
const s = await import("./vendor-B_ytQUuR.js").then((e) => e.bundler);
|
|
3478
3478
|
return console.log(s), s.default === void 0 ? s : s.default;
|
|
3479
3479
|
}
|
|
3480
3480
|
class g1 {
|
|
@@ -3887,7 +3887,7 @@ class w1 {
|
|
|
3887
3887
|
}
|
|
3888
3888
|
console.debug(`⊡ Connecting to networking backend on
|
|
3889
3889
|
` + Ti);
|
|
3890
|
-
const o = await import("./vendor-
|
|
3890
|
+
const o = await import("./vendor-B_ytQUuR.js").then((c) => c.index), r = o.default?.WebsocketBuilder ?? o.WebsocketBuilder, a = o.default?.ExponentialBackoff ?? o.ExponentialBackoff, l = new r(Ti).withMaxRetries(10).withBackoff(new a(2e3, 4)).onOpen(() => {
|
|
3891
3891
|
this._connectingToWebsocketPromise = null, this._ws = l, this.connected = !0, L() || ai ? console.log(`⊞ Connected to networking backend
|
|
3892
3892
|
` + Ti) : console.debug("⊞ Connected to networking backend", Ti), n(!0), this.onSendQueued(xn.OnConnection);
|
|
3893
3893
|
}).onClose((c) => {
|
|
@@ -4752,7 +4752,7 @@ class K {
|
|
|
4752
4752
|
a.onBeforeXR && a.onBeforeXR(e, t);
|
|
4753
4753
|
for (const a of this._sessionRequestStartListeners)
|
|
4754
4754
|
a({ mode: e, init: t });
|
|
4755
|
-
He &&
|
|
4755
|
+
He && Be("Requesting " + e + " session (" + Date.now() + ")"), this._currentSessionRequest = navigator.xr?.requestSession(e, t), this._currentSessionRequestMode = e;
|
|
4756
4756
|
const o = await this._currentSessionRequest?.catch((a) => {
|
|
4757
4757
|
console.error(a, "Code: " + a.code), a.code === 9 && me("Make sure your device has the required permissions (e.g. camera access)"), console.log("If the specified XR configuration is not supported (e.g. entering AR doesnt work) - make sure you access the website on a secure connection (HTTPS) and your device has the required permissions (e.g. camera access)"), location.protocol === "http:" && me("XR requires a secure connection (HTTPS)");
|
|
4758
4758
|
});
|
|
@@ -6008,7 +6008,7 @@ var ed;
|
|
|
6008
6008
|
s.runMeshBVHRaycast = e;
|
|
6009
6009
|
let t = !1, i = null, n = null, o = null, r = null;
|
|
6010
6010
|
function a() {
|
|
6011
|
-
t || (t = !0, import("./vendor-
|
|
6011
|
+
t || (t = !0, import("./vendor-B_ytQUuR.js").then((v) => v.index$1).then((v) => {
|
|
6012
6012
|
i = v.acceleratedRaycast, n = v.MeshBVH, o = v.StaticGeometryGenerator, r = v.computeBoundsTree;
|
|
6013
6013
|
}).catch((v) => {
|
|
6014
6014
|
(Wt || L()) && console.error("Failed to load BVH library...", v.message);
|
|
@@ -9238,13 +9238,15 @@ class Rn {
|
|
|
9238
9238
|
L() && window.location.href.includes("://localhost") && me("To access your website from another device in the same local network you have to use the IP address instead of localhost. The IP address is logged in your development server console when you start the server."), o();
|
|
9239
9239
|
});
|
|
9240
9240
|
async function o() {
|
|
9241
|
-
await a()
|
|
9242
|
-
const
|
|
9243
|
-
|
|
9244
|
-
const h =
|
|
9245
|
-
|
|
9241
|
+
await a();
|
|
9242
|
+
const c = document.body.querySelector("needle-engine") || document.body;
|
|
9243
|
+
c.appendChild(i);
|
|
9244
|
+
const h = n.getBoundingClientRect(), d = t.getBoundingClientRect();
|
|
9245
|
+
i.style.left = d.left + d.width * 0.5 - h.width * 0.5 + "px";
|
|
9246
|
+
const f = d.top < h.height, p = "1.3rem";
|
|
9247
|
+
f ? i.style.top = `calc(${d.bottom}px + ${i.style.padding} + 0.0rem)` : i.style.top = `calc(${d.top - h.height}px - ${i.style.padding} - ${p})`, i.style.opacity = "0", i.style.pointerEvents = "all", i.style.transition = "opacity 0.2s ease-in-out", setTimeout(() => {
|
|
9246
9248
|
i.style.opacity = "1", window.addEventListener("click", r, { once: !0 });
|
|
9247
|
-
}), window.addEventListener("resize", r), window.addEventListener("scroll", r), document.fullscreenElement ? document.fullscreenElement.appendChild(i) :
|
|
9249
|
+
}), window.addEventListener("resize", r), window.addEventListener("scroll", r), document.fullscreenElement ? document.fullscreenElement.appendChild(i) : c.appendChild(i);
|
|
9248
9250
|
}
|
|
9249
9251
|
function r() {
|
|
9250
9252
|
i.style.pointerEvents = "none", i.style.transition = "opacity 0.2s", i.style.opacity = "0", setTimeout(() => i.parentNode?.removeChild(i), 500), window.removeEventListener("click", r), window.removeEventListener("resize", r), window.removeEventListener("scroll", r);
|
|
@@ -9774,6 +9776,16 @@ class Xd extends HTMLElement {
|
|
|
9774
9776
|
const e = document.createElement("template");
|
|
9775
9777
|
e.innerHTML = `<style>
|
|
9776
9778
|
|
|
9779
|
+
/** Styling attributes that ensure the nested menu z-index does not cause it to overlay elements outside of <needle-engine> */
|
|
9780
|
+
:host {
|
|
9781
|
+
position: absolute;
|
|
9782
|
+
width: 100%;
|
|
9783
|
+
height: 100%;
|
|
9784
|
+
z-index: 0;
|
|
9785
|
+
top: 0;
|
|
9786
|
+
pointer-events: none;
|
|
9787
|
+
}
|
|
9788
|
+
|
|
9777
9789
|
#root {
|
|
9778
9790
|
position: absolute;
|
|
9779
9791
|
width: auto;
|
|
@@ -10983,13 +10995,13 @@ Start a coroutine from a component by calling "this.startCoroutine(myCoroutine()
|
|
|
10983
10995
|
get isVisibleToUser() {
|
|
10984
10996
|
if (this.isInXR) return !0;
|
|
10985
10997
|
if (!this._isVisible) return !1;
|
|
10986
|
-
if (this.
|
|
10987
|
-
this.
|
|
10998
|
+
if (!this._needsVisibleUpdate && this._lastStyleComputedResult !== void 0) return this._lastStyleComputedResult;
|
|
10999
|
+
this._needsVisibleUpdate = !1;
|
|
10988
11000
|
const e = getComputedStyle(this.domElement);
|
|
10989
11001
|
return this._lastStyleComputedResult = e.visibility !== "hidden" && e.display !== "none" && e.opacity !== "0", this._lastStyleComputedResult;
|
|
10990
11002
|
}
|
|
10991
|
-
|
|
10992
|
-
_lastStyleComputedResult =
|
|
11003
|
+
_needsVisibleUpdate = !0;
|
|
11004
|
+
_lastStyleComputedResult = void 0;
|
|
10993
11005
|
_createId = 0;
|
|
10994
11006
|
async internalOnCreate(e) {
|
|
10995
11007
|
const t = ++this._createId;
|
|
@@ -11141,7 +11153,7 @@ Possible solutions:
|
|
|
11141
11153
|
try {
|
|
11142
11154
|
this.internalStep(e, t), this._renderlooperrors = 0;
|
|
11143
11155
|
} catch (i) {
|
|
11144
|
-
this._renderlooperrors += 1, (L() || Xe) && (i instanceof Error || i instanceof TypeError) &&
|
|
11156
|
+
this._renderlooperrors += 1, (L() || Xe) && (i instanceof Error || i instanceof TypeError) && Be("Caught unhandled exception during render-loop - see console for details.", Ni.Error), console.error("Frame #" + this.time.frame + `
|
|
11145
11157
|
`, i), this._renderlooperrors >= 3 && (console.warn("Stopping render loop due to error"), this.renderer.setAnimationLoop(null)), this.domElement.dispatchEvent(new CustomEvent("error", { detail: i }));
|
|
11146
11158
|
}
|
|
11147
11159
|
else
|
|
@@ -11162,7 +11174,7 @@ Possible solutions:
|
|
|
11162
11174
|
this.internalOnBeforeRender(e, t) !== !1 && (this.internalOnRender(), this.internalOnAfterRender());
|
|
11163
11175
|
}
|
|
11164
11176
|
internalOnBeforeRender(e, t) {
|
|
11165
|
-
this.renderer.info.autoReset = !!t, this.renderer.info.autoReset === !1 && this.renderer.info.reset();
|
|
11177
|
+
this.renderer.info.autoReset = !!t, this.renderer.info.autoReset === !1 && this.renderer.info.reset(), this._needsVisibleUpdate = !0;
|
|
11166
11178
|
const i = t !== null && this._xrFrame === null;
|
|
11167
11179
|
if (this._xrFrame = t, i && this.domElement.dispatchEvent(new CustomEvent("xr-session-started", { detail: { context: this, session: this.xrSession, frame: t } })), this._currentFrameEvent = -1, this.isManagedExternally === !1 && this.isInXR === !1 && this.targetFrameRate !== void 0) {
|
|
11168
11180
|
this._lastTimestamp === 0 && (this._lastTimestamp = e), this._accumulatedTime += (e - this._lastTimestamp) / 1e3, this._lastTimestamp = e;
|
|
@@ -11194,28 +11206,26 @@ Possible solutions:
|
|
|
11194
11206
|
const o = this.scripts_earlyUpdate[n];
|
|
11195
11207
|
o.activeAndEnabled && o.earlyUpdate !== void 0 && (N.Current = this, o.earlyUpdate());
|
|
11196
11208
|
}
|
|
11197
|
-
|
|
11209
|
+
this.executeCoroutines(
|
|
11198
11210
|
0
|
|
11199
11211
|
/* EarlyUpdate */
|
|
11200
11212
|
), yn(
|
|
11201
11213
|
this,
|
|
11202
11214
|
0
|
|
11203
11215
|
/* EarlyUpdate */
|
|
11204
|
-
), this.
|
|
11205
|
-
this._currentFrameEvent = 1;
|
|
11216
|
+
), this._currentFrameEvent = 1;
|
|
11206
11217
|
for (let n = 0; n < this.scripts_update.length; n++) {
|
|
11207
11218
|
const o = this.scripts_update[n];
|
|
11208
11219
|
o.activeAndEnabled && o.update !== void 0 && (N.Current = this, o.update());
|
|
11209
11220
|
}
|
|
11210
|
-
|
|
11221
|
+
this.executeCoroutines(
|
|
11211
11222
|
1
|
|
11212
11223
|
/* Update */
|
|
11213
11224
|
), yn(
|
|
11214
11225
|
this,
|
|
11215
11226
|
1
|
|
11216
11227
|
/* Update */
|
|
11217
|
-
), this.
|
|
11218
|
-
this._currentFrameEvent = 2;
|
|
11228
|
+
), this._currentFrameEvent = 2;
|
|
11219
11229
|
for (let n = 0; n < this.scripts_lateUpdate.length; n++) {
|
|
11220
11230
|
const o = this.scripts_lateUpdate[n];
|
|
11221
11231
|
o.activeAndEnabled && o.lateUpdate !== void 0 && (N.Current = this, o.lateUpdate());
|
|
@@ -11227,8 +11237,7 @@ Possible solutions:
|
|
|
11227
11237
|
this,
|
|
11228
11238
|
2
|
|
11229
11239
|
/* LateUpdate */
|
|
11230
|
-
), this.
|
|
11231
|
-
if (this.isVisibleToUser || this.runInBackground) {
|
|
11240
|
+
), this.physicsSteps === void 0 && (this.physicsSteps = 1), this.physics.engine && this.physicsSteps > 0 && this.internalUpdatePhysics(this.physicsSteps), this.isVisibleToUser || this.runInBackground) {
|
|
11232
11241
|
this._currentFrameEvent = 3;
|
|
11233
11242
|
for (let n = 0; n < this.scripts_onBeforeRender.length; n++) {
|
|
11234
11243
|
const o = this.scripts_onBeforeRender[n];
|
|
@@ -14259,7 +14268,7 @@ const Lt = function(s, e) {
|
|
|
14259
14268
|
function UO(s, e, t, i, n) {
|
|
14260
14269
|
if (!n && !i && !s.onValidate) return;
|
|
14261
14270
|
if (t !== void 0) {
|
|
14262
|
-
console.error("Invalid usage of validate decorator. Only fields can be validated.", s, e, t),
|
|
14271
|
+
console.error("Invalid usage of validate decorator. Only fields can be validated.", s, e, t), Be("Invalid usage of validate decorator. Only fields can be validated. Property: " + e, Ni.Error);
|
|
14263
14272
|
return;
|
|
14264
14273
|
}
|
|
14265
14274
|
let o = "";
|
|
@@ -15485,10 +15494,10 @@ class ei extends T {
|
|
|
15485
15494
|
this.context.scene.getComponent(Sa) || this.context.scene.addComponent(Gi);
|
|
15486
15495
|
}
|
|
15487
15496
|
onEnable() {
|
|
15488
|
-
this.context.input.addEventListener(
|
|
15497
|
+
this.context.input.addEventListener(De.PointerDown, this.onPointerEvent), this.context.input.addEventListener(De.PointerUp, this.onPointerEvent), this.context.input.addEventListener(De.PointerMove, this.onPointerEvent);
|
|
15489
15498
|
}
|
|
15490
15499
|
onDisable() {
|
|
15491
|
-
this.context.input.removeEventListener(
|
|
15500
|
+
this.context.input.removeEventListener(De.PointerDown, this.onPointerEvent), this.context.input.removeEventListener(De.PointerUp, this.onPointerEvent), this.context.input.removeEventListener(De.PointerMove, this.onPointerEvent);
|
|
15492
15501
|
}
|
|
15493
15502
|
/**
|
|
15494
15503
|
* all pointers that have pressed something
|
|
@@ -15513,7 +15522,7 @@ class ei extends T {
|
|
|
15513
15522
|
onPointerEvent = (e) => {
|
|
15514
15523
|
if (e === void 0 || e.propagationStopped || e.defaultPrevented || e.used) return;
|
|
15515
15524
|
const t = new Zd(this.context.input, e);
|
|
15516
|
-
this._currentPointerEventName = e.type, t.inputSource = this.context.input, t.isClick = e.isClick, t.isDoubleClick = e.isDoubleClick, t.isDown = e.type ==
|
|
15525
|
+
this._currentPointerEventName = e.type, t.inputSource = this.context.input, t.isClick = e.isClick, t.isDoubleClick = e.isDoubleClick, t.isDown = e.type == De.PointerDown, t.isUp = e.type == De.PointerUp, t.isPressed = this.context.input.getPointerPressed(e.pointerId);
|
|
15517
15526
|
const i = new pr();
|
|
15518
15527
|
e.hasRay ? i.ray = e.ray : i.screenPoint = this.context.input.getPointerPositionRC(e.pointerId), i.allowSlowRaycastFallback = e.isClick || e.isDoubleClick;
|
|
15519
15528
|
const n = this.performRaycast(i);
|
|
@@ -15526,7 +15535,7 @@ class ei extends T {
|
|
|
15526
15535
|
hits: n
|
|
15527
15536
|
});
|
|
15528
15537
|
}
|
|
15529
|
-
Gs && t.isClick &&
|
|
15538
|
+
Gs && t.isClick && Be("EventSystem: " + t.pointerId + " - " + this.context.time.frame + " - Up:" + t.isUp + ", Down:" + t.isDown);
|
|
15530
15539
|
const o = {
|
|
15531
15540
|
sender: this,
|
|
15532
15541
|
args: t,
|
|
@@ -15745,7 +15754,7 @@ class ei extends T {
|
|
|
15745
15754
|
}
|
|
15746
15755
|
/** invoke the pointerMove event on all captured handlers */
|
|
15747
15756
|
invokePointerCapture(e) {
|
|
15748
|
-
if (e.event.type ===
|
|
15757
|
+
if (e.event.type === De.PointerMove) {
|
|
15749
15758
|
const t = e.pointerId, i = this._capturedPointer[t];
|
|
15750
15759
|
if (i) {
|
|
15751
15760
|
Gs && console.log("Captured", t, i);
|
|
@@ -16098,6 +16107,9 @@ class ge extends T {
|
|
|
16098
16107
|
afterHandleInput(e) {
|
|
16099
16108
|
e.detail.args.pointerId === 0 && (e.detail.args.isDown ? this._controls && this._eventSystem && (this._shouldDisable = this._eventSystem.hasActiveUI) : (!e.detail.args.isPressed || e.detail.args.isUp) && (this._shouldDisable = !1));
|
|
16100
16109
|
}
|
|
16110
|
+
onPausedChanged(e) {
|
|
16111
|
+
this._controls && e && (this._controls.enabled = !1);
|
|
16112
|
+
}
|
|
16101
16113
|
/** @internal */
|
|
16102
16114
|
onBeforeRender() {
|
|
16103
16115
|
if (!this._controls) return;
|
|
@@ -16716,7 +16728,7 @@ const qs = w("debugcam"), u_ = w("debugscreenpointtoray"), Dt = class Cl extends
|
|
|
16716
16728
|
if (typeof t._transparent == "boolean")
|
|
16717
16729
|
return t._transparent;
|
|
16718
16730
|
const i = t.environmentBlendMode;
|
|
16719
|
-
qs &&
|
|
16731
|
+
qs && Be("Environment blend mode: " + i + " on " + navigator.userAgent);
|
|
16720
16732
|
let n = i === "additive" || i === "alpha-blend";
|
|
16721
16733
|
return e.isInAR && i === "opaque" && (navigator.userAgent?.includes("OculusBrowser") || navigator.userAgent?.includes("Mozilla") && navigator.userAgent?.includes("Mobile WebXRViewer/v2")) && (n = !0), t._transparent = n, n;
|
|
16722
16734
|
}
|
|
@@ -17166,29 +17178,29 @@ fn([
|
|
|
17166
17178
|
], Ki.prototype, "rollOffMode", 2);
|
|
17167
17179
|
let hn = Ki;
|
|
17168
17180
|
const uk = w("debugavatar");
|
|
17169
|
-
class
|
|
17181
|
+
class je extends T {
|
|
17170
17182
|
static getAvatar(e) {
|
|
17171
|
-
return e >= 0 && e <
|
|
17183
|
+
return e >= 0 && e < je.instances.length ? je.instances[e] : null;
|
|
17172
17184
|
}
|
|
17173
17185
|
static instances = [];
|
|
17174
17186
|
static onAvatarMarkerCreated(e) {
|
|
17175
|
-
return
|
|
17187
|
+
return je._onNewAvatarMarkerAdded.push(e), e;
|
|
17176
17188
|
}
|
|
17177
17189
|
static onAvatarMarkerDestroyed(e) {
|
|
17178
|
-
return
|
|
17190
|
+
return je._onAvatarMarkerDestroyed.push(e), e;
|
|
17179
17191
|
}
|
|
17180
17192
|
static _onNewAvatarMarkerAdded = [];
|
|
17181
17193
|
static _onAvatarMarkerDestroyed = [];
|
|
17182
17194
|
connectionId;
|
|
17183
17195
|
avatar;
|
|
17184
17196
|
awake() {
|
|
17185
|
-
|
|
17186
|
-
for (const e of
|
|
17197
|
+
je.instances.push(this), uk && console.log(this);
|
|
17198
|
+
for (const e of je._onNewAvatarMarkerAdded)
|
|
17187
17199
|
e({ avatarMarker: this, gameObject: this.gameObject });
|
|
17188
17200
|
}
|
|
17189
17201
|
onDestroy() {
|
|
17190
|
-
|
|
17191
|
-
for (const e of
|
|
17202
|
+
je.instances.splice(je.instances.indexOf(this), 1);
|
|
17203
|
+
for (const e of je._onAvatarMarkerDestroyed)
|
|
17192
17204
|
e({ avatarMarker: this, gameObject: this.gameObject });
|
|
17193
17205
|
}
|
|
17194
17206
|
isLocalAvatar() {
|
|
@@ -17238,8 +17250,8 @@ class ud extends T {
|
|
|
17238
17250
|
_lookDuration = 0;
|
|
17239
17251
|
_lastPoiChangedTime = 0;
|
|
17240
17252
|
awake() {
|
|
17241
|
-
if (this.avatar = x.getComponentInParent(this.gameObject,
|
|
17242
|
-
const e = x.getComponentInParent(this.gameObject,
|
|
17253
|
+
if (this.avatar = x.getComponentInParent(this.gameObject, je), this.avatar) {
|
|
17254
|
+
const e = x.getComponentInParent(this.gameObject, je);
|
|
17243
17255
|
this._model = new o0(this.context.connection, this.guid), e?.isLocalAvatar && this._model.requestOwnership();
|
|
17244
17256
|
}
|
|
17245
17257
|
this.context.connection.beginListen("avatar-look-target-changed", (e) => {
|
|
@@ -17332,7 +17344,7 @@ class _k {
|
|
|
17332
17344
|
this.object = e, this.collider = t;
|
|
17333
17345
|
}
|
|
17334
17346
|
}
|
|
17335
|
-
const
|
|
17347
|
+
const Le = w("debugnetworkingstreams");
|
|
17336
17348
|
var ps = /* @__PURE__ */ ((s) => (s.Connected = "peer-user-connected", s.StreamReceived = "receive-stream", s.StreamEnded = "call-ended", s.Disconnected = "peer-user-disconnected", s.UserJoined = "user-joined", s))(ps || {});
|
|
17337
17349
|
class X0 {
|
|
17338
17350
|
type = "call-ended";
|
|
@@ -17386,7 +17398,7 @@ class xk extends dm {
|
|
|
17386
17398
|
}
|
|
17387
17399
|
constructor(e, t, i, n = null) {
|
|
17388
17400
|
super(), this.peerId = t.peer, this.userId = e, this.call = t, this.direction = i, this._stream = n, t.on("stream", (o) => {
|
|
17389
|
-
if (
|
|
17401
|
+
if (Le && console.log("Receive stream", `
|
|
17390
17402
|
Audio:`, o.getAudioTracks(), `
|
|
17391
17403
|
Video:`, o.getVideoTracks()), this._stream = o, i === "incoming") {
|
|
17392
17404
|
const r = new bk(e, o, this);
|
|
@@ -17420,7 +17432,7 @@ class to extends dm {
|
|
|
17420
17432
|
}
|
|
17421
17433
|
makeCall(e, t) {
|
|
17422
17434
|
if (!t?.id) {
|
|
17423
|
-
|
|
17435
|
+
Le ? console.warn("Can not make a call: mediastream has no id or is undefined") : console.debug("Can not make a call: mediastream has no id or is undefined");
|
|
17424
17436
|
return;
|
|
17425
17437
|
}
|
|
17426
17438
|
const i = {
|
|
@@ -17432,10 +17444,10 @@ class to extends dm {
|
|
|
17432
17444
|
}, n = this._peer?.call(e, t, i);
|
|
17433
17445
|
if (n) {
|
|
17434
17446
|
const o = this.registerCall(n, "outgoing", t);
|
|
17435
|
-
return
|
|
17447
|
+
return Le && console.warn(`📞 CALL ${e}`, `
|
|
17436
17448
|
Outgoing:`, this._outgoingCalls, `
|
|
17437
17449
|
Incoming:`, this._incomingCalls), o;
|
|
17438
|
-
} else
|
|
17450
|
+
} else Le && console.error("Failed to make call", e, t, this._peer);
|
|
17439
17451
|
}
|
|
17440
17452
|
closeAll() {
|
|
17441
17453
|
for (const e of this._incomingCalls)
|
|
@@ -17452,7 +17464,7 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17452
17464
|
for (let e = this._outgoingCalls.length - 1; e >= 0; e--) {
|
|
17453
17465
|
const t = this._outgoingCalls[e];
|
|
17454
17466
|
let i = !1;
|
|
17455
|
-
t.isClosed && !t.isOpening && (t.stream?.active ?
|
|
17467
|
+
t.isClosed && !t.isOpening && (t.stream?.active ? Le && console.warn("!!! Stream is still active, don't remove call", t.userId, "Your id: " + this.context.connection.connectionId) : (Le && console.warn("!!! Remove closed call", t.userId), i = !0)), this.context.connection.userIsInRoom(t.userId) === !1 && (Le && console.warn("!!! User is not in room anymore, remove call", t.userId), i = !0), i && (t.close(), this._outgoingCalls.splice(e, 1));
|
|
17456
17468
|
}
|
|
17457
17469
|
};
|
|
17458
17470
|
get peer() {
|
|
@@ -17468,10 +17480,11 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17468
17480
|
_peer;
|
|
17469
17481
|
constructor(e, t) {
|
|
17470
17482
|
super(), this.context = e, this.id = t, this.setupPeer();
|
|
17483
|
+
const i = Object.getOwnPropertyDescriptor(navigator, "getUserMedia")?.writable;
|
|
17471
17484
|
try {
|
|
17472
|
-
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
|
|
17473
|
-
} catch (
|
|
17474
|
-
|
|
17485
|
+
i ? navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia : Le && console.warn("[PeerJs] getUserMedia is not writable");
|
|
17486
|
+
} catch (n) {
|
|
17487
|
+
Le && console.error("[PeerJs] Error setting getUserMedia", n);
|
|
17475
17488
|
}
|
|
17476
17489
|
}
|
|
17477
17490
|
_enabled = !1;
|
|
@@ -17512,7 +17525,7 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17512
17525
|
* @param id ID of the peer
|
|
17513
17526
|
*/
|
|
17514
17527
|
onPeerConnect = (e) => {
|
|
17515
|
-
if (
|
|
17528
|
+
if (Le && console.log("PEER opened as", e), e === null) {
|
|
17516
17529
|
console.error("Peer connection failed", e);
|
|
17517
17530
|
return;
|
|
17518
17531
|
}
|
|
@@ -17520,17 +17533,17 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17520
17533
|
};
|
|
17521
17534
|
/** Emitted when the peer is destroyed and can no longer accept or create any new connections. At this time, the peer's connections will all be closed. */
|
|
17522
17535
|
onPeerClose = () => {
|
|
17523
|
-
|
|
17536
|
+
Le && console.log("PEER closed"), this.updateCalls();
|
|
17524
17537
|
};
|
|
17525
17538
|
/** Emitted when the peer is disconnected from the signalling server, either manually or because the connection to the signalling server was lost. */
|
|
17526
17539
|
onPeerDisconnected = () => {
|
|
17527
|
-
|
|
17540
|
+
Le && console.log("PEER disconnected"), this.updateCalls();
|
|
17528
17541
|
};
|
|
17529
17542
|
/**
|
|
17530
17543
|
* Errors on the peer are almost always fatal and will destroy the peer. Errors from the underlying socket and PeerConnections are forwarded here.
|
|
17531
17544
|
*/
|
|
17532
17545
|
onPeerError = (e) => {
|
|
17533
|
-
|
|
17546
|
+
Le && console.error("PEER error", e);
|
|
17534
17547
|
};
|
|
17535
17548
|
onPeerReceivingCall = (e) => {
|
|
17536
17549
|
e.answer(void 0, {
|
|
@@ -17541,12 +17554,12 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17541
17554
|
const n = e.metadata;
|
|
17542
17555
|
(!n || !n.userId) && console.error("Missing call metadata", e);
|
|
17543
17556
|
const o = n.userId;
|
|
17544
|
-
t === "incoming" &&
|
|
17557
|
+
t === "incoming" && Le ? console.warn("← Receive call from", e.metadata, e.connectionId) : Le && console.warn("→ Make call to", e.metadata);
|
|
17545
17558
|
const r = t === "incoming" ? this._incomingCalls : this._outgoingCalls, a = new xk(o, e, t, i);
|
|
17546
17559
|
return r.push(a), e.on("error", (l) => {
|
|
17547
17560
|
console.error("Call error", l);
|
|
17548
17561
|
}), e.on("close", () => {
|
|
17549
|
-
|
|
17562
|
+
Le && console.log("Call ended", e.metadata);
|
|
17550
17563
|
const l = r.indexOf(a);
|
|
17551
17564
|
l !== -1 && r.splice(l, 1), a.close(), this.dispatchEvent(new X0(o, t));
|
|
17552
17565
|
}), a.addEventListener("call-ended", (l) => {
|
|
@@ -17554,11 +17567,11 @@ Incoming:`, this._incomingCalls), o;
|
|
|
17554
17567
|
}), t === "incoming" && (a.addEventListener("receive-stream", (l) => {
|
|
17555
17568
|
this.dispatchEvent(l);
|
|
17556
17569
|
}), e.on("stream", () => {
|
|
17557
|
-
|
|
17570
|
+
Le && console.log("Received stream for call", e.metadata);
|
|
17558
17571
|
let l = 0;
|
|
17559
17572
|
const c = setInterval(() => {
|
|
17560
17573
|
const h = l === 0;
|
|
17561
|
-
!a.isOpen && h && (
|
|
17574
|
+
!a.isOpen && h && (Le && console.warn("Close call because stream is not active", e.metadata), l += 1, clearInterval(c), a.close());
|
|
17562
17575
|
}, 2e3);
|
|
17563
17576
|
})), a;
|
|
17564
17577
|
}
|
|
@@ -17591,7 +17604,7 @@ class Jd extends dm {
|
|
|
17591
17604
|
if (!(e instanceof N)) throw new Error("Failed to create NetworkedStreams because context is not an instance of Context");
|
|
17592
17605
|
} else throw new Error("Failed to create NetworkedStreams because context is undefined");
|
|
17593
17606
|
if (!t) throw new Error("Failed to create NetworkedStreams because peer is undefined");
|
|
17594
|
-
this.context = e, this.peer = t,
|
|
17607
|
+
this.context = e, this.peer = t, Le && (this.debug = !0);
|
|
17595
17608
|
}
|
|
17596
17609
|
startSendingStream(e) {
|
|
17597
17610
|
this._sendingStreams.has(e) ? console.warn("Received start sending stream with stream that is already being sent") : (this._sendingStreams.set(e, []), this.updateSendingCalls());
|
|
@@ -17653,7 +17666,7 @@ class Jd extends dm {
|
|
|
17653
17666
|
const t = this._sendingStreams.keys().next().value;
|
|
17654
17667
|
this.peer.makeCall(e.peerId, t);
|
|
17655
17668
|
} else
|
|
17656
|
-
|
|
17669
|
+
Le && console.log("Unknown user connected", e.guid, e.peerId);
|
|
17657
17670
|
};
|
|
17658
17671
|
onUserLeft = (e) => {
|
|
17659
17672
|
this.debug && console.log("User left room: " + e.userId), this.stopCallsToUsersThatAreNotInTheRoomAnymore();
|
|
@@ -17666,7 +17679,7 @@ class Jd extends dm {
|
|
|
17666
17679
|
if (n === e) continue;
|
|
17667
17680
|
const o = this.peer.getPeerIdFromUserId(n);
|
|
17668
17681
|
if (i.find((a) => a.peerId === o && a.direction === "outgoing" && !a.isClosed && a.stream?.active))
|
|
17669
|
-
|
|
17682
|
+
Le && console.debug("Already have a call with user " + n + " / peer " + o);
|
|
17670
17683
|
else {
|
|
17671
17684
|
const a = this.peer.makeCall(o, t);
|
|
17672
17685
|
a && i.push(a);
|
|
@@ -17697,7 +17710,7 @@ class Jd extends dm {
|
|
|
17697
17710
|
if (t)
|
|
17698
17711
|
for (let i = t.length - 1; i >= 0; i--) {
|
|
17699
17712
|
const n = t[i];
|
|
17700
|
-
this.context.connection.userIsInRoom(n.userId) ?
|
|
17713
|
+
this.context.connection.userIsInRoom(n.userId) ? Le && (this.context.connection.connectionId === n.userId ? console.warn(`You are still in the room [${i}] ${n.userId}`) : console.log(`User is still in room [${i}] ${n.userId}`)) : (Le && console.log(`Remove call ${[i]} to user that is not in room anymore ${n.userId}`), n.close(), t.splice(i, 1));
|
|
17701
17714
|
}
|
|
17702
17715
|
}
|
|
17703
17716
|
this.peer.updateCalls(), this.debug && this.debugLogCurrentState();
|
|
@@ -17895,7 +17908,7 @@ class eu extends T {
|
|
|
17895
17908
|
mouthChangeLength = 0;
|
|
17896
17909
|
awake() {
|
|
17897
17910
|
setTimeout(() => {
|
|
17898
|
-
this.voip = x.findObjectOfType(yr, this.context), this.marker || (this.marker = x.getComponentInParent(this.gameObject,
|
|
17911
|
+
this.voip = x.findObjectOfType(yr, this.context), this.marker || (this.marker = x.getComponentInParent(this.gameObject, je));
|
|
17899
17912
|
}, 3e3);
|
|
17900
17913
|
}
|
|
17901
17914
|
update() {
|
|
@@ -17953,7 +17966,7 @@ class Y0 extends T {
|
|
|
17953
17966
|
marker = null;
|
|
17954
17967
|
_startPosition = null;
|
|
17955
17968
|
awake() {
|
|
17956
|
-
this.voip = x.findObjectOfType(yr, this.context), this.marker = x.getComponentInParent(this.gameObject,
|
|
17969
|
+
this.voip = x.findObjectOfType(yr, this.context), this.marker = x.getComponentInParent(this.gameObject, je);
|
|
17957
17970
|
}
|
|
17958
17971
|
update() {
|
|
17959
17972
|
if (!this.voip || !this.marker || this.context.time.frameCount % 10 !== 0) return;
|
|
@@ -24576,7 +24589,7 @@ class La {
|
|
|
24576
24589
|
}
|
|
24577
24590
|
}
|
|
24578
24591
|
}
|
|
24579
|
-
var JM = Object.defineProperty,
|
|
24592
|
+
var JM = Object.defineProperty, Fe = (s, e, t, i) => {
|
|
24580
24593
|
for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
|
|
24581
24594
|
(r = s[o]) && (n = r(e, t, n) || n);
|
|
24582
24595
|
return n && JM(e, t, n), n;
|
|
@@ -24632,16 +24645,16 @@ class Da extends T {
|
|
|
24632
24645
|
}
|
|
24633
24646
|
}
|
|
24634
24647
|
}
|
|
24635
|
-
|
|
24648
|
+
Fe([
|
|
24636
24649
|
u(M)
|
|
24637
24650
|
], Da.prototype, "object");
|
|
24638
|
-
|
|
24651
|
+
Fe([
|
|
24639
24652
|
u(M)
|
|
24640
24653
|
], Da.prototype, "target");
|
|
24641
|
-
|
|
24654
|
+
Fe([
|
|
24642
24655
|
u()
|
|
24643
24656
|
], Da.prototype, "duration");
|
|
24644
|
-
|
|
24657
|
+
Fe([
|
|
24645
24658
|
u()
|
|
24646
24659
|
], Da.prototype, "relativeMotion");
|
|
24647
24660
|
const lu = class Ut extends T {
|
|
@@ -24736,13 +24749,13 @@ const lu = class Ut extends T {
|
|
|
24736
24749
|
return e;
|
|
24737
24750
|
}
|
|
24738
24751
|
};
|
|
24739
|
-
|
|
24752
|
+
Fe([
|
|
24740
24753
|
u(_e)
|
|
24741
24754
|
], lu.prototype, "materialToSwitch");
|
|
24742
|
-
|
|
24755
|
+
Fe([
|
|
24743
24756
|
u(_e)
|
|
24744
24757
|
], lu.prototype, "variantMaterial");
|
|
24745
|
-
|
|
24758
|
+
Fe([
|
|
24746
24759
|
u()
|
|
24747
24760
|
], lu.prototype, "fadeDuration");
|
|
24748
24761
|
let Iv = lu;
|
|
@@ -24825,16 +24838,16 @@ const Sc = class Ae extends T {
|
|
|
24825
24838
|
this.gameObject[Ae.wasVisible] !== void 0 && (this.gameObject.visible = this.gameObject[Ae.wasVisible], delete this.gameObject[Ae.wasVisible]), this.target && this.target[Ae.wasVisible] !== void 0 && (this.target.visible = this.target[Ae.wasVisible], delete this.target[Ae.wasVisible]), delete this.gameObject[Ae.toggleClone], delete this.gameObject[Ae.reverseToggleClone];
|
|
24826
24839
|
}
|
|
24827
24840
|
};
|
|
24828
|
-
|
|
24841
|
+
Fe([
|
|
24829
24842
|
u(M)
|
|
24830
24843
|
], Sc.prototype, "target");
|
|
24831
|
-
|
|
24844
|
+
Fe([
|
|
24832
24845
|
u()
|
|
24833
24846
|
], Sc.prototype, "toggleOnClick");
|
|
24834
|
-
|
|
24847
|
+
Fe([
|
|
24835
24848
|
u()
|
|
24836
24849
|
], Sc.prototype, "targetState");
|
|
24837
|
-
|
|
24850
|
+
Fe([
|
|
24838
24851
|
u()
|
|
24839
24852
|
], Sc.prototype, "hideSelf");
|
|
24840
24853
|
let Lv = Sc;
|
|
@@ -24882,13 +24895,13 @@ class Cc extends T {
|
|
|
24882
24895
|
afterCreateDocument(e, t) {
|
|
24883
24896
|
}
|
|
24884
24897
|
}
|
|
24885
|
-
|
|
24898
|
+
Fe([
|
|
24886
24899
|
u()
|
|
24887
24900
|
], Cc.prototype, "target");
|
|
24888
|
-
|
|
24901
|
+
Fe([
|
|
24889
24902
|
u()
|
|
24890
24903
|
], Cc.prototype, "duration");
|
|
24891
|
-
|
|
24904
|
+
Fe([
|
|
24892
24905
|
u()
|
|
24893
24906
|
], Cc.prototype, "motionType");
|
|
24894
24907
|
class or extends T {
|
|
@@ -24947,13 +24960,13 @@ class or extends T {
|
|
|
24947
24960
|
}
|
|
24948
24961
|
}
|
|
24949
24962
|
}
|
|
24950
|
-
|
|
24963
|
+
Fe([
|
|
24951
24964
|
u(hn)
|
|
24952
24965
|
], or.prototype, "target");
|
|
24953
|
-
|
|
24966
|
+
Fe([
|
|
24954
24967
|
u(URL)
|
|
24955
24968
|
], or.prototype, "clip");
|
|
24956
|
-
|
|
24969
|
+
Fe([
|
|
24957
24970
|
u()
|
|
24958
24971
|
], or.prototype, "toggleOnClick");
|
|
24959
24972
|
const lg = class bn extends T {
|
|
@@ -25155,10 +25168,10 @@ const lg = class bn extends T {
|
|
|
25155
25168
|
n && (this.animationSequence = n.animationSequence, this.animationLoopAfterSequence = n.animationLoopAfterSequence, this.randomOffsetNormalized = n.randomTimeOffset, this.stateAnimationModel = t);
|
|
25156
25169
|
}
|
|
25157
25170
|
};
|
|
25158
|
-
|
|
25171
|
+
Fe([
|
|
25159
25172
|
u(It)
|
|
25160
25173
|
], lg.prototype, "animator");
|
|
25161
|
-
|
|
25174
|
+
Fe([
|
|
25162
25175
|
u()
|
|
25163
25176
|
], lg.prototype, "stateName");
|
|
25164
25177
|
let gd = lg;
|
|
@@ -25169,13 +25182,13 @@ class Pc extends T {
|
|
|
25169
25182
|
getDuration() {
|
|
25170
25183
|
}
|
|
25171
25184
|
}
|
|
25172
|
-
|
|
25185
|
+
Fe([
|
|
25173
25186
|
u(M)
|
|
25174
25187
|
], Pc.prototype, "target");
|
|
25175
25188
|
class cu extends T {
|
|
25176
25189
|
target;
|
|
25177
25190
|
}
|
|
25178
|
-
|
|
25191
|
+
Fe([
|
|
25179
25192
|
u(Pc)
|
|
25180
25193
|
], cu.prototype, "target");
|
|
25181
25194
|
class hu extends Pc {
|
|
@@ -25193,10 +25206,10 @@ class hu extends Pc {
|
|
|
25193
25206
|
return this.duration;
|
|
25194
25207
|
}
|
|
25195
25208
|
}
|
|
25196
|
-
|
|
25209
|
+
Fe([
|
|
25197
25210
|
u()
|
|
25198
25211
|
], hu.prototype, "type");
|
|
25199
|
-
|
|
25212
|
+
Fe([
|
|
25200
25213
|
u()
|
|
25201
25214
|
], hu.prototype, "duration");
|
|
25202
25215
|
class Dv extends cu {
|
|
@@ -25283,7 +25296,7 @@ class tr {
|
|
|
25283
25296
|
const e = "https://oculus.com/open_url/?url=", t = document.createElement("button");
|
|
25284
25297
|
return this._sendToQuestButton = t, t.dataset.needle = "webxr-sendtoquest-button", t.innerText = "Open on Quest", t.prepend(Rt("share_windows")), t.title = "Click to send this page to the Oculus Browser on your Quest", t.addEventListener("click", () => {
|
|
25285
25298
|
const i = encodeURIComponent(window.location.href), n = e + i;
|
|
25286
|
-
window.open(n) == null &&
|
|
25299
|
+
window.open(n) == null && Be("This page doesn't allow popups. Please paste " + n + " into your browser.");
|
|
25287
25300
|
}), this.listenToXRSessionState(t), this.hideElementDuringXRSession(t), q.isMozillaXR() || navigator.xr?.addEventListener("devicechange", () => {
|
|
25288
25301
|
navigator.xr?.isSessionSupported("immersive-vr") ? t.style.display = "none" : t.style.display = "";
|
|
25289
25302
|
}), t;
|
|
@@ -26400,12 +26413,12 @@ class ar extends T {
|
|
|
26400
26413
|
rl && console.warn("AVATAR ENTER XR", this.guid, this.sourceId, this, this.activeAndEnabled), this._syncTransforms && (this._syncTransforms.length = 0), await this.prepareAvatar();
|
|
26401
26414
|
const t = En.getFor(this);
|
|
26402
26415
|
if (t?.owner) {
|
|
26403
|
-
const i = this.gameObject.addComponent(
|
|
26416
|
+
const i = this.gameObject.addComponent(je);
|
|
26404
26417
|
i.avatar = this.gameObject, i.connectionId = t.owner;
|
|
26405
26418
|
} else this.context.connection.isConnected ? console.error("No player state found for avatar", this) : t && !this.context.connection.isConnected && (t.dontDestroy = !0);
|
|
26406
26419
|
}
|
|
26407
26420
|
onLeaveXR(e) {
|
|
26408
|
-
const t = this.gameObject.getComponent(
|
|
26421
|
+
const t = this.gameObject.getComponent(je);
|
|
26409
26422
|
t && t.destroy();
|
|
26410
26423
|
}
|
|
26411
26424
|
onUpdateXR(e) {
|
|
@@ -29027,11 +29040,11 @@ const si = class Wp extends T {
|
|
|
29027
29040
|
/** @internal */
|
|
29028
29041
|
onEnable() {
|
|
29029
29042
|
const e = q.supportsQuickLookAR(), t = q.isiOS() || q.isiPad();
|
|
29030
|
-
!this.button && (oi || e || t) && (this.allowCreateQuicklookButton && (this.button = this.createQuicklookButton()), this.lastCallback = this.quicklookCallback.bind(this), this.link = j_(this.context, e), this.link.addEventListener("message", this.lastCallback)), oi &&
|
|
29043
|
+
!this.button && (oi || e || t) && (this.allowCreateQuicklookButton && (this.button = this.createQuicklookButton()), this.lastCallback = this.quicklookCallback.bind(this), this.link = j_(this.context, e), this.link.addEventListener("message", this.lastCallback)), oi && Be("USDZ Exporter enabled: " + this.name), document.getElementById("open-in-ar")?.addEventListener("click", this.onClickedOpenInARElement), ic.registerExporter(this);
|
|
29031
29044
|
}
|
|
29032
29045
|
/** @internal */
|
|
29033
29046
|
onDisable() {
|
|
29034
|
-
this.button?.remove(), this.link?.removeEventListener("message", this.lastCallback), oi &&
|
|
29047
|
+
this.button?.remove(), this.link?.removeEventListener("message", this.lastCallback), oi && Be("USDZ Exporter disabled: " + this.name), document.getElementById("open-in-ar")?.removeEventListener("click", this.onClickedOpenInARElement), ic.unregisterExporter(this);
|
|
29035
29048
|
}
|
|
29036
29049
|
onClickedOpenInARElement = (e) => {
|
|
29037
29050
|
e.preventDefault(), this.exportAndOpen();
|
|
@@ -29103,7 +29116,7 @@ const si = class Wp extends T {
|
|
|
29103
29116
|
}));
|
|
29104
29117
|
}
|
|
29105
29118
|
}
|
|
29106
|
-
oi &&
|
|
29119
|
+
oi && Be("Progressive Loading: " + n.length), await Promise.all(n), oi && Be("Progressive Loading: done"), le.end("export-usdz-textures");
|
|
29107
29120
|
const r = Jt.Global.Mask;
|
|
29108
29121
|
Jt.Global.Set(us.AR);
|
|
29109
29122
|
const a = new jM(), l = new ag(this.quickLookCompatible);
|
|
@@ -29186,7 +29199,7 @@ const si = class Wp extends T {
|
|
|
29186
29199
|
const i = new URLSearchParams(this.link.href);
|
|
29187
29200
|
if (i) {
|
|
29188
29201
|
const n = i.get("callToActionURL");
|
|
29189
|
-
oi &&
|
|
29202
|
+
oi && Be("Quicklook url: " + n), n && (bs() ? globalThis.open(n, "_blank") : console.warn("Quicklook closed: custom redirects require a Needle Engine Pro license: https://needle.tools/pricing", n));
|
|
29190
29203
|
}
|
|
29191
29204
|
}
|
|
29192
29205
|
}
|
|
@@ -31509,7 +31522,7 @@ class ow {
|
|
|
31509
31522
|
), this.particleSystem.worldSpace || i.multiplyMatrices(this._emitterMatrix, i), this.subParticleSystem.emit(t, e.emissionState, i);
|
|
31510
31523
|
}
|
|
31511
31524
|
}
|
|
31512
|
-
var oT = Object.defineProperty,
|
|
31525
|
+
var oT = Object.defineProperty, ze = (s, e, t, i) => {
|
|
31513
31526
|
for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
|
|
31514
31527
|
(r = s[o]) && (n = r(e, t, n) || n);
|
|
31515
31528
|
return n && oT(e, t, n), n;
|
|
@@ -31559,28 +31572,28 @@ class mn extends T {
|
|
|
31559
31572
|
return new H(t, this.getMaterial());
|
|
31560
31573
|
}
|
|
31561
31574
|
}
|
|
31562
|
-
|
|
31575
|
+
ze([
|
|
31563
31576
|
u()
|
|
31564
31577
|
], mn.prototype, "renderMode");
|
|
31565
|
-
|
|
31578
|
+
ze([
|
|
31566
31579
|
u(_e)
|
|
31567
31580
|
], mn.prototype, "particleMaterial");
|
|
31568
|
-
|
|
31581
|
+
ze([
|
|
31569
31582
|
u(_e)
|
|
31570
31583
|
], mn.prototype, "trailMaterial");
|
|
31571
|
-
|
|
31584
|
+
ze([
|
|
31572
31585
|
u()
|
|
31573
31586
|
], mn.prototype, "maxParticleSize");
|
|
31574
|
-
|
|
31587
|
+
ze([
|
|
31575
31588
|
u()
|
|
31576
31589
|
], mn.prototype, "minParticleSize");
|
|
31577
|
-
|
|
31590
|
+
ze([
|
|
31578
31591
|
u()
|
|
31579
31592
|
], mn.prototype, "velocityScale");
|
|
31580
|
-
|
|
31593
|
+
ze([
|
|
31581
31594
|
u()
|
|
31582
31595
|
], mn.prototype, "cameraVelocityScale");
|
|
31583
|
-
|
|
31596
|
+
ze([
|
|
31584
31597
|
u()
|
|
31585
31598
|
], mn.prototype, "lengthScale");
|
|
31586
31599
|
class vh {
|
|
@@ -32217,49 +32230,49 @@ const jt = class Uh extends T {
|
|
|
32217
32230
|
}
|
|
32218
32231
|
}
|
|
32219
32232
|
};
|
|
32220
|
-
|
|
32233
|
+
ze([
|
|
32221
32234
|
u(Cg)
|
|
32222
32235
|
], jt.prototype, "colorOverLifetime");
|
|
32223
|
-
|
|
32236
|
+
ze([
|
|
32224
32237
|
u(Qt)
|
|
32225
32238
|
], jt.prototype, "main");
|
|
32226
|
-
|
|
32239
|
+
ze([
|
|
32227
32240
|
u(Co)
|
|
32228
32241
|
], jt.prototype, "emission");
|
|
32229
|
-
|
|
32242
|
+
ze([
|
|
32230
32243
|
u(Va)
|
|
32231
32244
|
], jt.prototype, "sizeOverLifetime");
|
|
32232
|
-
|
|
32245
|
+
ze([
|
|
32233
32246
|
u(iw)
|
|
32234
32247
|
], jt.prototype, "shape");
|
|
32235
|
-
|
|
32248
|
+
ze([
|
|
32236
32249
|
u(ve)
|
|
32237
32250
|
], jt.prototype, "noise");
|
|
32238
|
-
|
|
32251
|
+
ze([
|
|
32239
32252
|
u(Ne)
|
|
32240
32253
|
], jt.prototype, "trails");
|
|
32241
|
-
|
|
32254
|
+
ze([
|
|
32242
32255
|
u(Ve)
|
|
32243
32256
|
], jt.prototype, "velocityOverLifetime");
|
|
32244
|
-
|
|
32257
|
+
ze([
|
|
32245
32258
|
u(yt)
|
|
32246
32259
|
], jt.prototype, "limitVelocityOverLifetime");
|
|
32247
|
-
|
|
32260
|
+
ze([
|
|
32248
32261
|
u(sw)
|
|
32249
32262
|
], jt.prototype, "inheritVelocity");
|
|
32250
|
-
|
|
32263
|
+
ze([
|
|
32251
32264
|
u(Ic)
|
|
32252
32265
|
], jt.prototype, "colorBySpeed");
|
|
32253
|
-
|
|
32266
|
+
ze([
|
|
32254
32267
|
u(Yt)
|
|
32255
32268
|
], jt.prototype, "textureSheetAnimation");
|
|
32256
|
-
|
|
32269
|
+
ze([
|
|
32257
32270
|
u(Gn)
|
|
32258
32271
|
], jt.prototype, "rotationOverLifetime");
|
|
32259
|
-
|
|
32272
|
+
ze([
|
|
32260
32273
|
u(pn)
|
|
32261
32274
|
], jt.prototype, "rotationBySpeed");
|
|
32262
|
-
|
|
32275
|
+
ze([
|
|
32263
32276
|
u(Oi)
|
|
32264
32277
|
], jt.prototype, "sizeBySpeed");
|
|
32265
32278
|
let bd = jt;
|
|
@@ -32308,7 +32321,7 @@ class uc extends T {
|
|
|
32308
32321
|
const e = x.getComponentInParent(this.gameObject, En);
|
|
32309
32322
|
if (e && e.owner)
|
|
32310
32323
|
return this._didAssignPlayerColor = !0, this.assignUserColor(e.owner), !0;
|
|
32311
|
-
const t = x.getComponentInParent(this.gameObject,
|
|
32324
|
+
const t = x.getComponentInParent(this.gameObject, je);
|
|
32312
32325
|
return t?.connectionId ? (this._didAssignPlayerColor = !0, this.assignUserColor(t.connectionId), !0) : !1;
|
|
32313
32326
|
};
|
|
32314
32327
|
assignUserColor(e) {
|
|
@@ -33593,7 +33606,7 @@ class Dc extends T {
|
|
|
33593
33606
|
/** @internal */
|
|
33594
33607
|
awake() {
|
|
33595
33608
|
Bo && (console.log("PostprocessingManager Awake", this), console.log("Press P to toggle post processing"), window.addEventListener("keydown", (e) => {
|
|
33596
|
-
e.key === "p" && (this.enabled = !this.enabled,
|
|
33609
|
+
e.key === "p" && (this.enabled = !this.enabled, Be("Toggle PostProcessing " + this.name + ": Enabled=" + this.enabled), this.markDirty());
|
|
33597
33610
|
})), this.sharedProfile?.__init(this);
|
|
33598
33611
|
}
|
|
33599
33612
|
_componentEnabledTime = -1;
|
|
@@ -33791,7 +33804,7 @@ class Ze extends T {
|
|
|
33791
33804
|
}
|
|
33792
33805
|
/** @internal */
|
|
33793
33806
|
async onEnable() {
|
|
33794
|
-
if (globalThis.addEventListener("popstate", this.onPopState), this.context.input.addEventListener(
|
|
33807
|
+
if (globalThis.addEventListener("popstate", this.onPopState), this.context.input.addEventListener(De.KeyDown, this.onInputKeyDown), this.context.input.addEventListener(De.PointerMove, this.onInputPointerMove), this.context.input.addEventListener(De.PointerUp, this.onInputPointerUp), this._engineElementOverserver || (this._engineElementOverserver = new MutationObserver((e) => {
|
|
33795
33808
|
for (const t of e)
|
|
33796
33809
|
if (t.type === "attributes" && t.attributeName === $h) {
|
|
33797
33810
|
const i = this.context.domElement.getAttribute($h);
|
|
@@ -33823,7 +33836,7 @@ class Ze extends T {
|
|
|
33823
33836
|
}
|
|
33824
33837
|
/** @internal */
|
|
33825
33838
|
onDisable() {
|
|
33826
|
-
if (globalThis.removeEventListener("popstate", this.onPopState), this.context.input.removeEventListener(
|
|
33839
|
+
if (globalThis.removeEventListener("popstate", this.onPopState), this.context.input.removeEventListener(De.KeyDown, this.onInputKeyDown), this.context.input.removeEventListener(De.PointerMove, this.onInputPointerMove), this.context.input.removeEventListener(De.PointerUp, this.onInputPointerUp), this._preloadScheduler?.stop(), this._menuButtons) {
|
|
33827
33840
|
for (const e of this._menuButtons)
|
|
33828
33841
|
e.remove();
|
|
33829
33842
|
this._menuButtons = void 0;
|
|
@@ -35860,7 +35873,7 @@ class Lg extends T {
|
|
|
35860
35873
|
*/
|
|
35861
35874
|
setAvatarFlagsBeforeRender() {
|
|
35862
35875
|
const e = this._mode === 0;
|
|
35863
|
-
for (const t of
|
|
35876
|
+
for (const t of je.instances)
|
|
35864
35877
|
if (t.avatar && "isLocalAvatar" in t.avatar && "flags" in t.avatar) {
|
|
35865
35878
|
let i = us.All;
|
|
35866
35879
|
this.isSpectatingSelf && (i = e && t.avatar.isLocalAvatar ? us.FirstPerson : us.ThirdPerson);
|
|
@@ -35874,7 +35887,7 @@ class Lg extends T {
|
|
|
35874
35887
|
* Restores avatar visibility flags after spectator rendering
|
|
35875
35888
|
*/
|
|
35876
35889
|
resetAvatarFlags() {
|
|
35877
|
-
for (const e of
|
|
35890
|
+
for (const e of je.instances)
|
|
35878
35891
|
if (e.avatar && "flags" in e.avatar) {
|
|
35879
35892
|
const t = e.avatar.flags;
|
|
35880
35893
|
if (!t) continue;
|
|
@@ -35960,9 +35973,9 @@ class OE {
|
|
|
35960
35973
|
n.key === "Escape" && this.spectator.stopSpectating();
|
|
35961
35974
|
});
|
|
35962
35975
|
let i = 0;
|
|
35963
|
-
this.context.input.addEventListener(
|
|
35976
|
+
this.context.input.addEventListener(De.PointerDown, (n) => {
|
|
35964
35977
|
i = this.context.time.time;
|
|
35965
|
-
}), this.context.input.addEventListener(
|
|
35978
|
+
}), this.context.input.addEventListener(De.PointerUp, (n) => {
|
|
35966
35979
|
const o = this.context.time.time - i;
|
|
35967
35980
|
o > 1 ? this.spectator.stopSpectating() : this.context.input.getPointerClicked(0) && o < 0.3 && this.trySelectObject();
|
|
35968
35981
|
});
|
|
@@ -35977,7 +35990,7 @@ class OE {
|
|
|
35977
35990
|
if (pi && console.log(...t), t?.length)
|
|
35978
35991
|
for (const i of t) {
|
|
35979
35992
|
if (i.distance < 0.2) continue;
|
|
35980
|
-
const n = i.object, o = x.getComponentInParent(n,
|
|
35993
|
+
const n = i.object, o = x.getComponentInParent(n, je), r = o?.connectionId;
|
|
35981
35994
|
if (r) {
|
|
35982
35995
|
const a = this.context.players.getPlayerView(r);
|
|
35983
35996
|
this.spectator.target = a, pi && console.log("spectate", r, o);
|
|
@@ -36259,7 +36272,7 @@ const xw = class em extends T {
|
|
|
36259
36272
|
l.context = this.context;
|
|
36260
36273
|
const c = x.instantiate(this.cameraPrefab, l);
|
|
36261
36274
|
n = this.remoteCams[t] = { obj: c, lastUpdate: this.context.time.realtimeSinceStartup, userId: i }, n.obj.visible = !0, this.gameObject.add(c), this.userToCamMap[i] = t, em.instances.push(n);
|
|
36262
|
-
const h = x.getOrAddComponent(c,
|
|
36275
|
+
const h = x.getOrAddComponent(c, je);
|
|
36263
36276
|
h.connectionId = i, h.avatar = c;
|
|
36264
36277
|
} else
|
|
36265
36278
|
return;
|
|
@@ -36420,7 +36433,7 @@ C) Set "joinRandomRoom" to true`), !1) : (qf && console.log("Join " + this.roomN
|
|
|
36420
36433
|
const t = this.getViewOnlyUrl();
|
|
36421
36434
|
t?.length ? navigator.canShare({ url: t }) ? navigator.share({ url: t })?.catch((i) => {
|
|
36422
36435
|
console.warn(i);
|
|
36423
|
-
}) : (navigator.clipboard.writeText(t),
|
|
36436
|
+
}) : (navigator.clipboard.writeText(t), Be("View only URL copied to clipboard")) : me("Could not create view only URL");
|
|
36424
36437
|
}, e.title = "Copy the view only URL: A page accessed by the view only URL can not be modified by visiting users.", e.textContent = "Share View URL", e.prepend(Rt("visibility"));
|
|
36425
36438
|
}
|
|
36426
36439
|
this.context.menu.appendChild(this._viewOnlyButton);
|
|
@@ -37791,7 +37804,7 @@ class Mo extends T {
|
|
|
37791
37804
|
Fo && console.warn("Button Up", this.animationTriggers?.highlightedTrigger, this.animator, this._isHovered), this.interactable && (this.transition == 3 && this.animationTriggers && this.animator ? this.animator.setTrigger(this._isHovered ? this.animationTriggers.highlightedTrigger : this.animationTriggers.normalTrigger) : this.transition === 1 && this.colors && this._image?.setState(this._isHovered ? "hovered" : "normal"));
|
|
37792
37805
|
}
|
|
37793
37806
|
onPointerClick(e) {
|
|
37794
|
-
if (this.interactable && !(e.button !== 0 && e.event.pointerType === Pm.Mouse) && (Fo && (console.warn("Button Click", this.onClick),
|
|
37807
|
+
if (this.interactable && !(e.button !== 0 && e.event.pointerType === Pm.Mouse) && (Fo && (console.warn("Button Click", this.onClick), Be("CLICKED button " + this.name + " at " + this.context.time.frameCount)), this.onClick && this.onClick.listenerCount > 0 && (this.onClick.invoke(), e.use(), Fo))) {
|
|
37795
37808
|
const t = this.gameObject.worldPosition;
|
|
37796
37809
|
t.add(this.gameObject.worldUp.multiplyScalar(1 + Math.random() * 0.5)), F.DrawLabel(t, "CLICK:" + Date.now(), 0.1, 1 + Math.random() * 0.5);
|
|
37797
37810
|
}
|
|
@@ -38365,7 +38378,7 @@ class Wc extends T {
|
|
|
38365
38378
|
}
|
|
38366
38379
|
this._validateUrl();
|
|
38367
38380
|
let e = this.url;
|
|
38368
|
-
switch (!e.startsWith("mailto:") && e.includes("@") && (e = "mailto:" + e), L() &&
|
|
38381
|
+
switch (!e.startsWith("mailto:") && e.includes("@") && (e = "mailto:" + e), L() && Be("Open URL: " + e), this.mode) {
|
|
38369
38382
|
case 0:
|
|
38370
38383
|
q.isSafari(), globalThis.open(e, "_blank");
|
|
38371
38384
|
break;
|
|
@@ -39542,7 +39555,7 @@ P.add("TeleportTarget", ug);
|
|
|
39542
39555
|
P.add("WebARCameraBackground", zu);
|
|
39543
39556
|
P.add("WebARSessionRoot", $i);
|
|
39544
39557
|
P.add("WebXR", fg);
|
|
39545
|
-
P.add("AvatarMarker",
|
|
39558
|
+
P.add("AvatarMarker", je);
|
|
39546
39559
|
P.add("WebXRImageTracking", Pd);
|
|
39547
39560
|
P.add("WebXRPlaneTracking", Ao);
|
|
39548
39561
|
P.add("XRRig", Vg);
|
|
@@ -39631,7 +39644,7 @@ async function sm(s, e, t, i) {
|
|
|
39631
39644
|
}
|
|
39632
39645
|
if (ul.length > 0) {
|
|
39633
39646
|
const r = ul.join(", ");
|
|
39634
|
-
console.warn("unknown components: " + r), ul.length = 0, ti() &&
|
|
39647
|
+
console.warn("unknown components: " + r), ul.length = 0, ti() && Be(`<strong>Unknown components in scene</strong>:
|
|
39635
39648
|
|
|
39636
39649
|
${r}
|
|
39637
39650
|
|
|
@@ -39814,7 +39827,7 @@ function xA(s) {
|
|
|
39814
39827
|
if (new URL(s, window.location.href).href.startsWith("file://")) {
|
|
39815
39828
|
const t = `Hi - it looks like you are trying to load a local file which will not work. You need to use a webserver to serve your files.
|
|
39816
39829
|
Please refer to the documentation on <a href="https://fwd.needle.tools/needle-engine/docs/local-server">https://docs.needle.tools</a> or ask for help in our <a href="https://discord.needle.tools">discord community</a>`;
|
|
39817
|
-
|
|
39830
|
+
Be(t), console.warn(t);
|
|
39818
39831
|
}
|
|
39819
39832
|
}
|
|
39820
39833
|
function SA(s, e) {
|
|
@@ -40003,7 +40016,7 @@ class Od {
|
|
|
40003
40016
|
if (!e) {
|
|
40004
40017
|
this._loadingElement.style.position = "absolute", this._loadingElement.style.width = "100%", this._loadingElement.style.height = "100%", this._loadingElement.style.left = "0", this._loadingElement.style.top = "0";
|
|
40005
40018
|
const f = this._element.getAttribute("loading-background");
|
|
40006
|
-
f ? this._loadingElement.style.background = f : this._loadingElement.style.backgroundColor = "transparent", this._loadingElement.style.display = "flex", this._loadingElement.style.alignItems = "center", this._loadingElement.style.justifyContent = "center", this._loadingElement.style.zIndex =
|
|
40019
|
+
f ? this._loadingElement.style.background = f : this._loadingElement.style.backgroundColor = "transparent", this._loadingElement.style.display = "flex", this._loadingElement.style.alignItems = "center", this._loadingElement.style.justifyContent = "center", this._loadingElement.style.zIndex = "0", this._loadingElement.style.flexDirection = "column", this._loadingElement.style.pointerEvents = "none", this._loadingElement.style.color = "white", this._loadingElement.style.fontFamily = 'system-ui, Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', this._loadingElement.style.fontSize = "1rem", t === "light" ? this._loadingElement.style.color = "rgba(0,0,0,.6)" : this._loadingElement.style.color = "rgba(255,255,255,.3)";
|
|
40007
40020
|
}
|
|
40008
40021
|
const n = this._loadingElementOptions?.className ?? Od.LoadingContainerClassName;
|
|
40009
40022
|
if (this._loadingElement.classList.add(n), this._loadingElementOptions?.additionalClasses)
|
|
@@ -41743,7 +41756,7 @@ const pL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
41743
41756
|
AvatarBlink_Simple: Ta,
|
|
41744
41757
|
AvatarEyeLook_Rotation: ev,
|
|
41745
41758
|
AvatarLoader: FA,
|
|
41746
|
-
AvatarMarker:
|
|
41759
|
+
AvatarMarker: je,
|
|
41747
41760
|
AvatarModel: Hw,
|
|
41748
41761
|
Avatar_Brain_LookAt: ud,
|
|
41749
41762
|
Avatar_MouthShapes: eu,
|
|
@@ -42008,11 +42021,7 @@ he.registerCallback(ce.ContextCreated, (s) => {
|
|
|
42008
42021
|
});
|
|
42009
42022
|
class NA extends NS {
|
|
42010
42023
|
constructor() {
|
|
42011
|
-
super(new Worker(new URL(
|
|
42012
|
-
/* @vite-ignore */
|
|
42013
|
-
"/generateMeshBVH.worker-2qGLkQjg.js",
|
|
42014
|
-
import.meta.url
|
|
42015
|
-
), { type: "module" })), this.name = "GenerateMeshBVHWorker";
|
|
42024
|
+
super(new Worker(URL.createObjectURL(new Blob(["import '" + `${new URL('./generateMeshBVH.worker-2qGLkQjg.js', import.meta.url).toString()}` + "';"], { type: 'text/javascript' })), { type: "module" })), this.name = "GenerateMeshBVHWorker";
|
|
42016
42025
|
}
|
|
42017
42026
|
runTask(e, t, i = {}) {
|
|
42018
42027
|
return new Promise((n, o) => {
|
|
@@ -42086,7 +42095,7 @@ export {
|
|
|
42086
42095
|
Ta as AvatarBlink_Simple,
|
|
42087
42096
|
ev as AvatarEyeLook_Rotation,
|
|
42088
42097
|
FA as AvatarLoader,
|
|
42089
|
-
|
|
42098
|
+
je as AvatarMarker,
|
|
42090
42099
|
Hw as AvatarModel,
|
|
42091
42100
|
ud as Avatar_Brain_LookAt,
|
|
42092
42101
|
eu as Avatar_MouthShapes,
|
|
@@ -42193,7 +42202,7 @@ export {
|
|
|
42193
42202
|
sw as InheritVelocityModule,
|
|
42194
42203
|
r1 as Input,
|
|
42195
42204
|
di as InputEventQueue,
|
|
42196
|
-
|
|
42205
|
+
De as InputEvents,
|
|
42197
42206
|
Rw as InputField,
|
|
42198
42207
|
ra as InstanceHandle,
|
|
42199
42208
|
Pa as InstancingHandler,
|
|
@@ -42608,7 +42617,7 @@ export {
|
|
|
42608
42617
|
Ud as setWorldRotationXYZ,
|
|
42609
42618
|
tc as setWorldScale,
|
|
42610
42619
|
Nd as showBalloonError,
|
|
42611
|
-
|
|
42620
|
+
Be as showBalloonMessage,
|
|
42612
42621
|
me as showBalloonWarning,
|
|
42613
42622
|
Hb as showDebugConsole,
|
|
42614
42623
|
pI as slerp,
|