@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.
@@ -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 = new SpriteData();
351
- this._spriteSheet.spriteSheet = new SpriteSheet();
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",
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) return failedTexturePromise;
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
- readonly Rad2Deg = 180 / Math.PI;
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 blipMaterial: ShaderMaterial | undefined = undefined;
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.blipMaterial) {
430
- this.blipMaterial = new ShaderMaterial({
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.blipMaterial);
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
- static textureToCanvas(texture: Texture, force: boolean) {
478
- if (!texture) return null;
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
- const listener = GameObject.getOrAddComponent(this.gameObject, AudioListener);
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!: Sprite[];
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 = new SpriteData();
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;