@needle-tools/engine 3.5.5-alpha.1 → 3.5.6-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.
Files changed (40) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/needle-engine.js +4432 -4426
  3. package/dist/needle-engine.light.js +82299 -0
  4. package/dist/needle-engine.light.min.js +5055 -0
  5. package/dist/needle-engine.light.umd.cjs +5055 -0
  6. package/dist/needle-engine.min.js +290 -290
  7. package/dist/needle-engine.umd.cjs +281 -281
  8. package/lib/engine/engine_components.d.ts +2 -2
  9. package/lib/engine/engine_components.js +7 -2
  10. package/lib/engine/engine_components.js.map +1 -1
  11. package/lib/engine-components/Component.d.ts +3 -0
  12. package/lib/engine-components/Component.js.map +1 -1
  13. package/lib/engine-components/export/usdz/USDZExporter.js +0 -1
  14. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  15. package/lib/engine-components/js-extensions/Object3D.js +4 -1
  16. package/lib/engine-components/js-extensions/Object3D.js.map +1 -1
  17. package/lib/engine-components/ui/Button.js +10 -0
  18. package/lib/engine-components/ui/Button.js.map +1 -1
  19. package/lib/engine-components/ui/Canvas.js +2 -1
  20. package/lib/engine-components/ui/Canvas.js.map +1 -1
  21. package/lib/engine-components/ui/CanvasGroup.js +1 -3
  22. package/lib/engine-components/ui/CanvasGroup.js.map +1 -1
  23. package/lib/engine-components/ui/Graphic.d.ts +2 -0
  24. package/lib/engine-components/ui/Graphic.js +16 -5
  25. package/lib/engine-components/ui/Graphic.js.map +1 -1
  26. package/lib/engine-components/ui/Interfaces.d.ts +4 -1
  27. package/lib/engine-components/ui/Interfaces.js.map +1 -1
  28. package/lib/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +3 -2
  30. package/src/engine/codegen/register_types.js +2 -2
  31. package/src/engine/engine_components.ts +7 -2
  32. package/src/engine-components/Component.ts +3 -1
  33. package/src/engine-components/ParticleSystemModules.ts +1483 -1483
  34. package/src/engine-components/export/usdz/USDZExporter.ts +0 -1
  35. package/src/engine-components/js-extensions/Object3D.ts +5 -1
  36. package/src/engine-components/ui/Button.ts +5 -0
  37. package/src/engine-components/ui/Canvas.ts +2 -1
  38. package/src/engine-components/ui/CanvasGroup.ts +2 -4
  39. package/src/engine-components/ui/Graphic.ts +24 -15
  40. package/src/engine-components/ui/Interfaces.ts +5 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "3.5.5-alpha.1",
3
+ "version": "3.5.6-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",
@@ -20,8 +20,9 @@
20
20
  "scripts": {
21
21
  "dev": "npm-watch",
22
22
  "font:generate": "node plugins/generate-font.js",
23
- "build": "npm run build:dist && npm run build:src",
23
+ "build": "npm run build:dist && npm run build:dist:light && npm run build:src",
24
24
  "build:dist": "vite build",
25
+ "build:dist:light": "vite build -- --light --noclear",
25
26
  "build:src": "tsc --outDir ./lib --noEmit false --declaration",
26
27
  "build:license": "node plugins/publish/create-license.mjs",
27
28
  "test:circular-imports": "node plugins/check-circular-imports.js",
@@ -1,5 +1,5 @@
1
1
  import { TypeStore } from "./../engine_typestore"
2
-
2
+
3
3
  // Import types
4
4
  import { __Ignore } from "../../engine-components/codegen/components";
5
5
  import { ActionBuilder } from "../../engine-components/export/usdz/extensions/behavior/BehavioursBuilder";
@@ -215,7 +215,7 @@ import { XRGrabModel } from "../../engine-components/webxr/WebXRGrabRendering";
215
215
  import { XRGrabRendering } from "../../engine-components/webxr/WebXRGrabRendering";
216
216
  import { XRRig } from "../../engine-components/webxr/WebXRRig";
217
217
  import { XRState } from "../../engine-components/XRFlag";
218
-
218
+
219
219
  // Register types
220
220
  TypeStore.add("__Ignore", __Ignore);
221
221
  TypeStore.add("ActionBuilder", ActionBuilder);
@@ -75,20 +75,25 @@ export function addNewComponent<T extends IComponent>(obj: Object3D, componentIn
75
75
  }
76
76
 
77
77
  export function moveComponentInstance(obj: Object3D, componentInstance: IComponent) {
78
- if (componentInstance.gameObject === obj) return;
78
+ if (componentInstance.gameObject === obj) return componentInstance;
79
79
  // TODO: update raycast array
80
80
  if (componentInstance.gameObject && componentInstance.gameObject.userData.components) {
81
81
  const index = componentInstance.gameObject.userData.components.indexOf(componentInstance);
82
82
  componentInstance.gameObject.userData.components.splice(index, 1);
83
83
  }
84
84
  if (!obj.userData.components) obj.userData.components = [];
85
- else if (obj.userData.components.includes(componentInstance)) return;
85
+ else if (obj.userData.components.includes(componentInstance)) return componentInstance;
86
86
  // TODO: do we want to disable and enable when moving?
87
87
  // componentInstance.__internalDisable();
88
88
  obj.userData.components.push(componentInstance);
89
89
  componentInstance.gameObject = obj as IGameObject;
90
90
  // componentInstance.__internalEnable();
91
91
  // componentInstance.transform = obj;
92
+ if (componentInstance.guid === undefined || componentInstance.guid === "invalid") {
93
+ componentInstance.guid = idProvider.generateUUID();
94
+ }
95
+ registerComponent(componentInstance);
96
+ return componentInstance;
92
97
  }
93
98
 
94
99
 
@@ -273,8 +273,10 @@ export abstract class GameObject extends Object3D implements Object3D, IGameObje
273
273
 
274
274
  // these are implemented via threejs object extensions
275
275
  abstract activeSelf: boolean;
276
+ /** creates a new component on this gameObject */
276
277
  abstract addNewComponent<T>(type: Constructor<T>): T | null;
277
- // TODO: add method for addExisting component
278
+ /** adds an existing component to this gameObject */
279
+ abstract addComponent(comp: IComponent): void;
278
280
  abstract removeComponent(comp: Component): Component;
279
281
  abstract getOrAddComponent<T>(typeName: Constructor<T> | null): T;
280
282
  abstract getComponent<T>(type: Constructor<T>): T | null;