@needle-tools/engine 4.3.0-alpha.3 → 4.3.0-alpha.5
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.bundle.js +2775 -2741
- package/dist/needle-engine.bundle.light.js +2772 -2738
- package/dist/needle-engine.bundle.light.min.js +89 -89
- package/dist/needle-engine.bundle.light.umd.cjs +95 -95
- package/dist/needle-engine.bundle.min.js +89 -89
- package/dist/needle-engine.bundle.umd.cjs +95 -95
- package/dist/needle-engine.light.d.ts +9 -9
- package/lib/engine/engine_addressables.js +10 -2
- package/lib/engine/engine_addressables.js.map +1 -1
- package/lib/engine/engine_math.d.ts +22 -2
- package/lib/engine/engine_math.js +23 -3
- package/lib/engine/engine_math.js.map +1 -1
- package/lib/engine/engine_three_utils.d.ts +8 -2
- package/lib/engine/engine_three_utils.js +17 -10
- package/lib/engine/engine_three_utils.js.map +1 -1
- package/lib/engine-components/AudioSource.js +11 -2
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/SpriteRenderer.d.ts +2 -0
- package/lib/engine-components/SpriteRenderer.js +16 -6
- package/lib/engine-components/SpriteRenderer.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/engine_addressables.ts +12 -2
- package/src/engine/engine_math.ts +25 -7
- package/src/engine/engine_three_utils.ts +22 -14
- package/src/engine-components/AudioSource.ts +17 -7
- package/src/engine-components/SpriteRenderer.ts +22 -6
|
@@ -154,6 +154,9 @@ __decorate([
|
|
|
154
154
|
const $spriteTexOwner = Symbol("spriteOwner");
|
|
155
155
|
export class SpriteSheet {
|
|
156
156
|
sprites;
|
|
157
|
+
constructor() {
|
|
158
|
+
this.sprites = [];
|
|
159
|
+
}
|
|
157
160
|
}
|
|
158
161
|
__decorate([
|
|
159
162
|
serializable(Sprite)
|
|
@@ -168,6 +171,12 @@ export class SpriteData {
|
|
|
168
171
|
// there's currently a limitation in the serializer when e.g. spriteSheet is already assigned it will not be overriden by the serializer
|
|
169
172
|
// hence the spriteSheet field is undefined by default
|
|
170
173
|
constructor() { }
|
|
174
|
+
clone() {
|
|
175
|
+
const i = new SpriteData();
|
|
176
|
+
i.index = this.index;
|
|
177
|
+
i.spriteSheet = this.spriteSheet;
|
|
178
|
+
return i;
|
|
179
|
+
}
|
|
171
180
|
/**
|
|
172
181
|
* Set the sprite to be rendered in the currently assigned sprite sheet at the currently active index {@link index}
|
|
173
182
|
*/
|
|
@@ -305,7 +314,6 @@ export class SpriteRenderer extends Behaviour {
|
|
|
305
314
|
if (typeof value === "number") {
|
|
306
315
|
const index = Math.floor(value);
|
|
307
316
|
this.spriteIndex = index;
|
|
308
|
-
return;
|
|
309
317
|
}
|
|
310
318
|
else if (value instanceof Sprite) {
|
|
311
319
|
if (!this._spriteSheet) {
|
|
@@ -313,8 +321,8 @@ export class SpriteRenderer extends Behaviour {
|
|
|
313
321
|
}
|
|
314
322
|
if (this._spriteSheet.sprite != value) {
|
|
315
323
|
this._spriteSheet.sprite = value;
|
|
316
|
-
this.updateSprite();
|
|
317
324
|
}
|
|
325
|
+
this.updateSprite();
|
|
318
326
|
}
|
|
319
327
|
else if (value != this._spriteSheet) {
|
|
320
328
|
this._spriteSheet = value;
|
|
@@ -327,8 +335,6 @@ export class SpriteRenderer extends Behaviour {
|
|
|
327
335
|
set spriteIndex(value) {
|
|
328
336
|
if (!this._spriteSheet)
|
|
329
337
|
return;
|
|
330
|
-
if (value === this.spriteIndex)
|
|
331
|
-
return;
|
|
332
338
|
this._spriteSheet.index = value;
|
|
333
339
|
this.updateSprite();
|
|
334
340
|
}
|
|
@@ -347,8 +353,11 @@ export class SpriteRenderer extends Behaviour {
|
|
|
347
353
|
awake() {
|
|
348
354
|
this._currentSprite = undefined;
|
|
349
355
|
if (!this._spriteSheet) {
|
|
350
|
-
this._spriteSheet =
|
|
351
|
-
|
|
356
|
+
this._spriteSheet = SpriteData.create();
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
// Ensure each SpriteRenderer has a unique spritesheet instance for cases where sprite renderer are cloned at runtime and then different sprites are assigned to each instance
|
|
360
|
+
this._spriteSheet = this._spriteSheet.clone();
|
|
352
361
|
}
|
|
353
362
|
if (debug) {
|
|
354
363
|
console.log("Awake", this.name, this, this.sprite);
|
|
@@ -392,6 +401,7 @@ export class SpriteRenderer extends Behaviour {
|
|
|
392
401
|
}
|
|
393
402
|
mat.transparent = true;
|
|
394
403
|
mat.toneMapped = this.toneMapped;
|
|
404
|
+
mat.depthWrite = false;
|
|
395
405
|
if (sprite.texture && !mat.wireframe) {
|
|
396
406
|
let tex = sprite.texture;
|
|
397
407
|
// the sprite renderer modifies the texture offset and scale
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpriteRenderer.js","sourceRoot":"","sources":["../../src/engine-components/SpriteRenderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SpriteRenderer.js","sourceRoot":"","sources":["../../src/engine-components/SpriteRenderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "4.3.0-alpha.
|
|
3
|
+
"version": "4.3.0-alpha.5",
|
|
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.min.js",
|
|
6
6
|
"exports": {
|
|
@@ -548,10 +548,20 @@ export class ImageReference {
|
|
|
548
548
|
|
|
549
549
|
private loader: TextureLoader | null = null;
|
|
550
550
|
createTexture(): Promise<Texture | null> {
|
|
551
|
-
if (!this.url)
|
|
551
|
+
if (!this.url) {
|
|
552
|
+
console.error("Can not load texture without url");
|
|
553
|
+
return failedTexturePromise;
|
|
554
|
+
}
|
|
555
|
+
|
|
552
556
|
if (!this.loader) this.loader = new TextureLoader();
|
|
553
557
|
this.loader.setCrossOrigin("anonymous");
|
|
554
|
-
return this.loader.loadAsync(this.url)
|
|
558
|
+
return this.loader.loadAsync(this.url).then(res => {
|
|
559
|
+
if (res && !res.name?.length) {
|
|
560
|
+
// default name if no name is defined
|
|
561
|
+
res.name = this.url.split("/").pop() ?? this.url;
|
|
562
|
+
}
|
|
563
|
+
return res;
|
|
564
|
+
})
|
|
555
565
|
// return this.getBitmap().then((bitmap) => {
|
|
556
566
|
// if (bitmap) {
|
|
557
567
|
// const texture = new Texture(bitmap);
|
|
@@ -43,16 +43,30 @@ class MathHelper {
|
|
|
43
43
|
return this.clamp(value, 0, 1);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Linear interpolate
|
|
48
|
+
*/
|
|
46
49
|
lerp(value1: number, value2: number, t: number) {
|
|
47
50
|
t = t < 0 ? 0 : t;
|
|
48
51
|
t = t > 1 ? 1 : t;
|
|
49
52
|
return value1 + (value2 - value1) * t;
|
|
50
53
|
}
|
|
51
54
|
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
*/
|
|
52
58
|
inverseLerp(value1: number, value2: number, t: number) {
|
|
53
59
|
return (t - value1) / (value2 - value1);
|
|
54
60
|
}
|
|
55
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Remaps a value from one range to another.
|
|
64
|
+
* @param value The value to remap.
|
|
65
|
+
* @param min1 The minimum value of the current range.
|
|
66
|
+
* @param max1 The maximum value of the current range.
|
|
67
|
+
* @param min2 The minimum value of the target range.
|
|
68
|
+
* @param max2 The maximum value of the target range.
|
|
69
|
+
*/
|
|
56
70
|
remap(value: number, min1: number, max1: number, min2: number, max2: number) {
|
|
57
71
|
return min2 + (max2 - min2) * (value - min1) / (max1 - min1);
|
|
58
72
|
}
|
|
@@ -64,20 +78,24 @@ class MathHelper {
|
|
|
64
78
|
return value1;
|
|
65
79
|
}
|
|
66
80
|
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
readonly Rad2Deg = 180 / Math.PI;
|
|
84
|
+
readonly Deg2Rad = Math.PI / 180;
|
|
85
|
+
readonly Epsilon = 0.00001;
|
|
86
|
+
/**
|
|
87
|
+
* Converts radians to degrees
|
|
88
|
+
*/
|
|
67
89
|
toDegrees(radians: number) {
|
|
68
90
|
return radians * 180 / Math.PI;
|
|
69
91
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Converts degrees to radians
|
|
94
|
+
*/
|
|
73
95
|
toRadians(degrees: number) {
|
|
74
96
|
return degrees * Math.PI / 180;
|
|
75
97
|
}
|
|
76
98
|
|
|
77
|
-
readonly Deg2Rad = Math.PI / 180;
|
|
78
|
-
|
|
79
|
-
readonly Epsilon = 0.00001;
|
|
80
|
-
|
|
81
99
|
tan(radians: number) {
|
|
82
100
|
return Math.tan(radians);
|
|
83
101
|
}
|
|
@@ -398,7 +398,7 @@ export class Graphics {
|
|
|
398
398
|
gl_FragColor = texture2D( map, uv);
|
|
399
399
|
// gl_FragColor = vec4(uv.xy, 0, 1);
|
|
400
400
|
}`;
|
|
401
|
-
private static
|
|
401
|
+
private static blitMaterial: ShaderMaterial | undefined = undefined;
|
|
402
402
|
|
|
403
403
|
/**
|
|
404
404
|
* Create a blit material for copying textures
|
|
@@ -419,27 +419,28 @@ export class Graphics {
|
|
|
419
419
|
* @returns the newly created, copied texture
|
|
420
420
|
*/
|
|
421
421
|
static copyTexture(texture: Texture, blitMaterial?: ShaderMaterial): Texture {
|
|
422
|
-
const material = blitMaterial ?? this.blipMaterial!;
|
|
423
|
-
|
|
424
|
-
material.uniforms.map.value = texture;
|
|
425
|
-
material.needsUpdate = true;
|
|
426
|
-
material.uniformsNeedUpdate = true;
|
|
427
|
-
|
|
428
422
|
// ensure that a blit material exists
|
|
429
|
-
if (!this.
|
|
430
|
-
this.
|
|
423
|
+
if (!this.blitMaterial) {
|
|
424
|
+
this.blitMaterial = new ShaderMaterial({
|
|
431
425
|
uniforms: { map: new Uniform(null) },
|
|
432
426
|
vertexShader: this.vertex,
|
|
433
427
|
fragmentShader: this.fragment
|
|
434
428
|
});
|
|
435
429
|
}
|
|
436
430
|
|
|
431
|
+
const material = blitMaterial || this.blitMaterial;
|
|
432
|
+
|
|
433
|
+
material.uniforms.map.value = texture;
|
|
434
|
+
material.needsUpdate = true;
|
|
435
|
+
material.uniformsNeedUpdate = true;
|
|
436
|
+
|
|
437
|
+
|
|
437
438
|
// ensure that the blit material has the correct vertex shader
|
|
438
439
|
const origVertexShader = material.vertexShader;
|
|
439
440
|
material.vertexShader = this.vertex;
|
|
440
441
|
|
|
441
442
|
if (!this.mesh)
|
|
442
|
-
this.mesh = new Mesh(this.planeGeometry, this.
|
|
443
|
+
this.mesh = new Mesh(this.planeGeometry, this.blitMaterial);
|
|
443
444
|
const mesh = this.mesh;
|
|
444
445
|
mesh.material = material;
|
|
445
446
|
mesh.frustumCulled = false;
|
|
@@ -474,15 +475,22 @@ export class Graphics {
|
|
|
474
475
|
// return new Texture(this.renderer.domElement);
|
|
475
476
|
// }
|
|
476
477
|
|
|
477
|
-
|
|
478
|
-
|
|
478
|
+
/**
|
|
479
|
+
* Copy a texture to a HTMLCanvasElement
|
|
480
|
+
* @param texture the texture convert
|
|
481
|
+
* @param force if true the texture will be copied to a new texture before converting
|
|
482
|
+
* @returns the HTMLCanvasElement with the texture or null if the texture could not be copied
|
|
483
|
+
*/
|
|
484
|
+
static textureToCanvas(texture: Texture, force: boolean = false): HTMLCanvasElement | null {
|
|
485
|
+
if (!texture) {
|
|
486
|
+
return null;
|
|
487
|
+
}
|
|
479
488
|
|
|
480
489
|
if (force === true || texture["isCompressedTexture"] === true) {
|
|
481
490
|
texture = copyTexture(texture);
|
|
482
491
|
}
|
|
483
492
|
const image = texture.image;
|
|
484
493
|
if (isImageBitmap(image)) {
|
|
485
|
-
|
|
486
494
|
const canvas = document.createElement('canvas');
|
|
487
495
|
canvas.width = image.width;
|
|
488
496
|
canvas.height = image.height;
|
|
@@ -494,8 +502,8 @@ export class Graphics {
|
|
|
494
502
|
}
|
|
495
503
|
context.drawImage(image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height);
|
|
496
504
|
return canvas;
|
|
497
|
-
|
|
498
505
|
}
|
|
506
|
+
|
|
499
507
|
return null;
|
|
500
508
|
}
|
|
501
509
|
}
|
|
@@ -8,6 +8,7 @@ import { serializable } from "../engine/engine_serialization_decorator.js";
|
|
|
8
8
|
import { DeviceUtilities, getParam } from "../engine/engine_utils.js";
|
|
9
9
|
import { AudioListener } from "./AudioListener.js";
|
|
10
10
|
import { Behaviour, GameObject } from "./Component.js";
|
|
11
|
+
import { findObjectOfType } from "../engine/engine_components.js";
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
const debug = getParam("debugaudio");
|
|
@@ -21,13 +22,13 @@ export enum AudioRolloffMode {
|
|
|
21
22
|
* exponentially with distance.
|
|
22
23
|
*/
|
|
23
24
|
Logarithmic = 0,
|
|
24
|
-
|
|
25
|
+
|
|
25
26
|
/**
|
|
26
27
|
* Linear rolloff provides a straightforward volume reduction that decreases at a constant
|
|
27
28
|
* rate with distance.
|
|
28
29
|
*/
|
|
29
30
|
Linear = 1,
|
|
30
|
-
|
|
31
|
+
|
|
31
32
|
/**
|
|
32
33
|
* Custom rolloff allows for defining specialized distance-based attenuation curves.
|
|
33
34
|
* Note: Custom rolloff is not fully implemented in this version.
|
|
@@ -123,7 +124,7 @@ export class AudioSource extends Behaviour {
|
|
|
123
124
|
get duration() {
|
|
124
125
|
return this.sound?.buffer?.duration;
|
|
125
126
|
}
|
|
126
|
-
|
|
127
|
+
|
|
127
128
|
/**
|
|
128
129
|
* The current playback position as a normalized value between 0 and 1.
|
|
129
130
|
* Can be set to seek to a specific position in the audio.
|
|
@@ -172,7 +173,7 @@ export class AudioSource extends Behaviour {
|
|
|
172
173
|
this._loop = val;
|
|
173
174
|
if (this.sound) this.sound.setLoop(val);
|
|
174
175
|
}
|
|
175
|
-
|
|
176
|
+
|
|
176
177
|
/**
|
|
177
178
|
* Controls how the audio is positioned in space.
|
|
178
179
|
* Values range from 0 (2D, non-positional) to 1 (fully 3D positioned).
|
|
@@ -187,7 +188,7 @@ export class AudioSource extends Behaviour {
|
|
|
187
188
|
this._spatialBlend = val;
|
|
188
189
|
this._needUpdateSpatialDistanceSettings = true;
|
|
189
190
|
}
|
|
190
|
-
|
|
191
|
+
|
|
191
192
|
/**
|
|
192
193
|
* The minimum distance from the audio source at which the volume starts to attenuate.
|
|
193
194
|
* Within this radius, the audio plays at full volume regardless of distance.
|
|
@@ -201,7 +202,7 @@ export class AudioSource extends Behaviour {
|
|
|
201
202
|
this._minDistance = val;
|
|
202
203
|
this._needUpdateSpatialDistanceSettings = true;
|
|
203
204
|
}
|
|
204
|
-
|
|
205
|
+
|
|
205
206
|
/**
|
|
206
207
|
* The maximum distance from the audio source beyond which the volume no longer decreases.
|
|
207
208
|
* This defines the outer limit of the attenuation curve.
|
|
@@ -278,7 +279,13 @@ export class AudioSource extends Behaviour {
|
|
|
278
279
|
*/
|
|
279
280
|
public get Sound(): PositionalAudio | null {
|
|
280
281
|
if (!this.sound && AudioSource.userInteractionRegistered) {
|
|
281
|
-
|
|
282
|
+
// Get or create an audiolistener in the scene
|
|
283
|
+
let listener = this.gameObject.getComponent(AudioListener) // AudioListener on AudioSource?
|
|
284
|
+
?? this.context.mainCamera.getComponent(AudioListener) // AudioListener on current main camera?
|
|
285
|
+
?? findObjectOfType(AudioListener, this.context, false); // Active AudioListener in scene?
|
|
286
|
+
|
|
287
|
+
if (!listener && this.context.mainCamera) listener = this.context.mainCamera.addComponent(AudioListener);
|
|
288
|
+
|
|
282
289
|
if (listener?.listener) {
|
|
283
290
|
this.sound = new PositionalAudio(listener.listener);
|
|
284
291
|
this.gameObject?.add(this.sound);
|
|
@@ -425,6 +432,9 @@ export class AudioSource extends Behaviour {
|
|
|
425
432
|
if (sound.isPlaying)
|
|
426
433
|
sound.stop();
|
|
427
434
|
|
|
435
|
+
// const panner = sound.panner;
|
|
436
|
+
// panner.coneOuterGain = 1;
|
|
437
|
+
// sound.setDirectionalCone(360, 360, 1);
|
|
428
438
|
// const src = sound.context.createBufferSource();
|
|
429
439
|
// src.buffer = sound.buffer;
|
|
430
440
|
// src.connect(sound.panner);
|
|
@@ -155,7 +155,11 @@ const $spriteTexOwner = Symbol("spriteOwner");
|
|
|
155
155
|
export class SpriteSheet {
|
|
156
156
|
|
|
157
157
|
@serializable(Sprite)
|
|
158
|
-
sprites
|
|
158
|
+
sprites: Sprite[];
|
|
159
|
+
|
|
160
|
+
constructor() {
|
|
161
|
+
this.sprites = [];
|
|
162
|
+
}
|
|
159
163
|
}
|
|
160
164
|
|
|
161
165
|
export class SpriteData {
|
|
@@ -171,6 +175,13 @@ export class SpriteData {
|
|
|
171
175
|
// hence the spriteSheet field is undefined by default
|
|
172
176
|
constructor() { }
|
|
173
177
|
|
|
178
|
+
clone() {
|
|
179
|
+
const i = new SpriteData();
|
|
180
|
+
i.index = this.index;
|
|
181
|
+
i.spriteSheet = this.spriteSheet;
|
|
182
|
+
return i;
|
|
183
|
+
}
|
|
184
|
+
|
|
174
185
|
/**
|
|
175
186
|
* Set the sprite to be rendered in the currently assigned sprite sheet at the currently active index {@link index}
|
|
176
187
|
*/
|
|
@@ -320,7 +331,6 @@ export class SpriteRenderer extends Behaviour {
|
|
|
320
331
|
if (typeof value === "number") {
|
|
321
332
|
const index = Math.floor(value);
|
|
322
333
|
this.spriteIndex = index;
|
|
323
|
-
return;
|
|
324
334
|
}
|
|
325
335
|
else if (value instanceof Sprite) {
|
|
326
336
|
if (!this._spriteSheet) {
|
|
@@ -328,8 +338,8 @@ export class SpriteRenderer extends Behaviour {
|
|
|
328
338
|
}
|
|
329
339
|
if (this._spriteSheet.sprite != value) {
|
|
330
340
|
this._spriteSheet.sprite = value;
|
|
331
|
-
this.updateSprite();
|
|
332
341
|
}
|
|
342
|
+
this.updateSprite();
|
|
333
343
|
}
|
|
334
344
|
else if (value != this._spriteSheet) {
|
|
335
345
|
this._spriteSheet = value;
|
|
@@ -342,7 +352,6 @@ export class SpriteRenderer extends Behaviour {
|
|
|
342
352
|
*/
|
|
343
353
|
set spriteIndex(value: number) {
|
|
344
354
|
if (!this._spriteSheet) return;
|
|
345
|
-
if (value === this.spriteIndex) return;
|
|
346
355
|
this._spriteSheet.index = value;
|
|
347
356
|
this.updateSprite();
|
|
348
357
|
}
|
|
@@ -359,13 +368,19 @@ export class SpriteRenderer extends Behaviour {
|
|
|
359
368
|
private _spriteSheet?: SpriteData;
|
|
360
369
|
private _currentSprite?: Mesh;
|
|
361
370
|
|
|
371
|
+
|
|
362
372
|
/** @internal */
|
|
363
373
|
awake(): void {
|
|
364
374
|
this._currentSprite = undefined;
|
|
375
|
+
|
|
365
376
|
if (!this._spriteSheet) {
|
|
366
|
-
this._spriteSheet =
|
|
367
|
-
this._spriteSheet.spriteSheet = new SpriteSheet();
|
|
377
|
+
this._spriteSheet = SpriteData.create();
|
|
368
378
|
}
|
|
379
|
+
else {
|
|
380
|
+
// Ensure each SpriteRenderer has a unique spritesheet instance for cases where sprite renderer are cloned at runtime and then different sprites are assigned to each instance
|
|
381
|
+
this._spriteSheet = this._spriteSheet.clone();
|
|
382
|
+
}
|
|
383
|
+
|
|
369
384
|
if (debug) {
|
|
370
385
|
console.log("Awake", this.name, this, this.sprite);
|
|
371
386
|
}
|
|
@@ -408,6 +423,7 @@ export class SpriteRenderer extends Behaviour {
|
|
|
408
423
|
}
|
|
409
424
|
mat.transparent = true;
|
|
410
425
|
mat.toneMapped = this.toneMapped;
|
|
426
|
+
mat.depthWrite = false;
|
|
411
427
|
|
|
412
428
|
if (sprite.texture && !mat.wireframe) {
|
|
413
429
|
let tex = sprite.texture;
|