@needle-tools/engine 3.5.5-alpha → 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 +10 -0
  2. package/dist/needle-engine.js +4435 -4429
  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/plugins/vite/defines.js +8 -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",
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,20 +1,26 @@
1
1
  import { loadConfig } from "./config.js";
2
2
  import { tryGetNeedleEngineVersion } from "./utils.js";
3
3
 
4
+ // NOTE: ALL DEFINES MUST BE SET HERE! NEVER ADD OR RELY ON DEFINES IN ANY OTHER PLUGIN
5
+
4
6
  /** used to pass config variables into vite.config.define
5
7
  * for example "useRapier"
6
8
  */
9
+
10
+ // https://vitejs.dev/config/#using-environment-variables-in-config
11
+
7
12
  export const needleDefines = (command, needleEngineConfig, userSettings) => {
8
13
 
9
14
  if (!userSettings) userSettings = {};
10
15
 
11
16
  let useRapier = true;
12
- if (needleEngineConfig.useRapier === false || userSettings?.useRapier === false) useRapier = false;
17
+ if (needleEngineConfig?.useRapier === false || userSettings?.useRapier === false) useRapier = false;
13
18
 
14
19
  return {
15
20
  name: 'needle-defines',
16
21
  enforce: 'pre',
17
22
  config(viteConfig) {
23
+ // console.log("Update vite defines -------------------------------------------");
18
24
  if (!viteConfig.define) viteConfig.define = {};
19
25
  viteConfig.define.NEEDLE_ENGINE_META = {
20
26
  version: tryGetNeedleEngineVersion(),
@@ -27,7 +33,7 @@ export const needleDefines = (command, needleEngineConfig, userSettings) => {
27
33
  useRapier = false;
28
34
  }
29
35
  }
30
- console.log("UseRapier?", useRapier);
36
+ // console.log("UseRapier?", useRapier);
31
37
  if (viteConfig.define.NEEDLE_USE_RAPIER === undefined) {
32
38
  viteConfig.define.NEEDLE_USE_RAPIER = useRapier;
33
39
  }
@@ -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;