@needle-tools/engine 3.7.3-alpha.2 → 3.7.5-alpha
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/CHANGELOG.md +9 -0
- package/dist/needle-engine.js +813 -806
- package/dist/needle-engine.light.js +824 -817
- package/dist/needle-engine.light.min.js +42 -42
- package/dist/needle-engine.light.umd.cjs +42 -42
- package/dist/needle-engine.min.js +43 -43
- package/dist/needle-engine.umd.cjs +43 -43
- package/lib/engine/engine_context.d.ts +1 -0
- package/lib/engine/engine_context.js +7 -3
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine-components/AudioSource.js +3 -0
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Component.js +4 -1
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/SpatialTrigger.js +3 -3
- package/lib/engine-components/SpatialTrigger.js.map +1 -1
- package/lib/engine-components/timeline/SignalAsset.d.ts +1 -0
- package/lib/engine-components/timeline/SignalAsset.js +6 -0
- package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
- package/lib/engine-components/timeline/TimelineTracks.js +2 -1
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/engine_context.ts +9 -6
- package/src/engine-components/AudioSource.ts +3 -0
- package/src/engine-components/Component.ts +3 -1
- package/src/engine-components/SpatialTrigger.ts +3 -3
- package/src/engine-components/timeline/SignalAsset.ts +6 -2
- package/src/engine-components/timeline/TimelineTracks.ts +3 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.5-alpha",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"type": "module",
|
|
@@ -783,16 +783,19 @@ export class Context implements IContext {
|
|
|
783
783
|
}
|
|
784
784
|
}
|
|
785
785
|
|
|
786
|
-
private
|
|
786
|
+
private _lastTimestamp = 0;
|
|
787
|
+
private internalRender(timestamp : DOMHighResTimeStamp, frame: XRFrame | null) {
|
|
787
788
|
this._xrFrame = frame;
|
|
788
789
|
|
|
789
790
|
this._currentFrameEvent = FrameEvent.Undefined;
|
|
790
|
-
|
|
791
|
+
|
|
791
792
|
if (this.isInXR === false && this.targetFrameRate !== undefined) {
|
|
792
|
-
this.
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
793
|
+
if(this._lastTimestamp === 0) this._lastTimestamp = timestamp;
|
|
794
|
+
this._accumulatedTime += (timestamp - this._lastTimestamp) /1000;
|
|
795
|
+
this._lastTimestamp = timestamp;
|
|
796
|
+
let targetFrameRate = this.targetFrameRate;
|
|
797
|
+
if (typeof targetFrameRate === "object") targetFrameRate = targetFrameRate.value!;
|
|
798
|
+
// if(debug) console.log(this._accumulatedTime, (1 / (targetFrameRate)))
|
|
796
799
|
if (this._accumulatedTime < (1 / (targetFrameRate + 1))) {
|
|
797
800
|
return;
|
|
798
801
|
}
|
|
@@ -309,6 +309,9 @@ export class AudioSource extends Behaviour {
|
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
play(clip: string | undefined = undefined) {
|
|
312
|
+
// Make sure this is always just a string
|
|
313
|
+
if (typeof clip !== "string") clip = undefined;
|
|
314
|
+
|
|
312
315
|
if (!this.audioLoader || !this.sound || (clip && clip !== this.clip)) {
|
|
313
316
|
this.loadAndPlay(clip);
|
|
314
317
|
return;
|
|
@@ -328,8 +328,10 @@ export class Component implements IComponent, EventTarget {
|
|
|
328
328
|
return this.gameObject?.userData.tag;
|
|
329
329
|
}
|
|
330
330
|
set tag(str: string) {
|
|
331
|
-
if (this.gameObject)
|
|
331
|
+
if (this.gameObject) {
|
|
332
|
+
if (!this.gameObject.userData) this.gameObject.userData = {}
|
|
332
333
|
this.gameObject.userData.tag = str;
|
|
334
|
+
}
|
|
333
335
|
}
|
|
334
336
|
get static() {
|
|
335
337
|
return this.gameObject?.userData.static;
|
|
@@ -63,17 +63,17 @@ export class SpatialTriggerReceiver extends Behaviour {
|
|
|
63
63
|
onEnterTrigger(trigger: SpatialTrigger): void {
|
|
64
64
|
if(debug) console.log("ENTER TRIGGER", this.name, trigger.name, this, trigger);
|
|
65
65
|
trigger.raiseOnEnterEvent(this);
|
|
66
|
-
this.onEnter?.invoke(
|
|
66
|
+
this.onEnter?.invoke();
|
|
67
67
|
}
|
|
68
68
|
onExitTrigger(trigger: SpatialTrigger): void {
|
|
69
69
|
if(debug) console.log("EXIT TRIGGER", this.name, trigger.name, this, trigger);
|
|
70
70
|
trigger.raiseOnExitEvent(this);
|
|
71
|
-
this.onExit?.invoke(
|
|
71
|
+
this.onExit?.invoke();
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
onStayTrigger(trigger: SpatialTrigger): void {
|
|
75
75
|
trigger.raiseOnStayEvent(this);
|
|
76
|
-
this.onStay?.invoke(
|
|
76
|
+
this.onStay?.invoke();
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EventList } from "../EventList";
|
|
2
2
|
import { Behaviour } from "../Component";
|
|
3
|
-
import { ISerializable, SerializationContext, TypeSerializer } from "../../engine/engine_serialization_core";
|
|
4
|
-
import { eventListSerializer } from "../../engine/engine_serialization_builtin_serializer";
|
|
5
3
|
import { serializable } from "../../engine/engine_serialization_decorator";
|
|
4
|
+
import { getParam } from "../../engine/engine_utils";
|
|
6
5
|
|
|
6
|
+
const debug = getParam("debugsignals")
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
export class SignalAsset {
|
|
@@ -36,6 +36,10 @@ export class SignalReceiver extends Behaviour {
|
|
|
36
36
|
@serializable(SignalReceiverEvent)
|
|
37
37
|
events?: SignalReceiverEvent[];
|
|
38
38
|
|
|
39
|
+
awake(): void {
|
|
40
|
+
if(debug) console.log("SignalReceiver awake", this);
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
onEnable(): void {
|
|
40
44
|
if (this.events) {
|
|
41
45
|
for (const evt of this.events) {
|
|
@@ -723,6 +723,8 @@ export class SignalTrackHandler extends TrackHandler {
|
|
|
723
723
|
// if (lastTime === -1) lastTime = time;
|
|
724
724
|
// this._lastTime = time;
|
|
725
725
|
|
|
726
|
+
const estimatedFrameLengthWithPadding = this.director.context.time.deltaTime * 1.5;
|
|
727
|
+
|
|
726
728
|
for (let i = 0; i < this.models.length; i++) {
|
|
727
729
|
const model = this.models[i];
|
|
728
730
|
const wasTriggered = this.didTrigger[i];
|
|
@@ -738,7 +740,7 @@ export class SignalTrackHandler extends TrackHandler {
|
|
|
738
740
|
// }
|
|
739
741
|
else {
|
|
740
742
|
const abs = Math.abs(td);
|
|
741
|
-
if (abs >= .00001 && abs <
|
|
743
|
+
if (abs >= .00001 && abs < estimatedFrameLengthWithPadding) {
|
|
742
744
|
isActive = true;
|
|
743
745
|
}
|
|
744
746
|
}
|