@jolly-pixel/engine 1.0.0 → 1.1.0

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 (53) hide show
  1. package/README.md +221 -209
  2. package/dist/actor/ActorComponent.d.ts +1 -0
  3. package/dist/actor/ActorComponent.d.ts.map +1 -1
  4. package/dist/actor/ActorComponent.js +14 -0
  5. package/dist/actor/ActorComponent.js.map +1 -1
  6. package/dist/actor/Signal.d.ts +2 -0
  7. package/dist/actor/Signal.d.ts.map +1 -1
  8. package/dist/actor/Signal.js +13 -5
  9. package/dist/actor/Signal.js.map +1 -1
  10. package/dist/components/script/Behavior.js +0 -1
  11. package/dist/components/script/Behavior.js.map +1 -1
  12. package/dist/components/script/BehaviorDecorators.d.ts +0 -1
  13. package/dist/components/script/BehaviorDecorators.d.ts.map +1 -1
  14. package/dist/components/script/BehaviorDecorators.js +1 -2
  15. package/dist/components/script/BehaviorDecorators.js.map +1 -1
  16. package/dist/components/script/BehaviorInitializer.d.ts.map +1 -1
  17. package/dist/components/script/BehaviorInitializer.js +0 -8
  18. package/dist/components/script/BehaviorInitializer.js.map +1 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/systems/GameInstance.js.map +1 -1
  24. package/dist/systems/rendering/GameRenderer.d.ts +18 -1
  25. package/dist/systems/rendering/GameRenderer.d.ts.map +1 -1
  26. package/dist/systems/rendering/ThreeRenderer.d.ts +2 -14
  27. package/dist/systems/rendering/ThreeRenderer.d.ts.map +1 -1
  28. package/dist/systems/rendering/ThreeRenderer.js.map +1 -1
  29. package/dist/ui/UINode.d.ts +46 -0
  30. package/dist/ui/UINode.d.ts.map +1 -0
  31. package/dist/ui/UINode.js +86 -0
  32. package/dist/ui/UINode.js.map +1 -0
  33. package/dist/ui/UIRenderer.d.ts +19 -0
  34. package/dist/ui/UIRenderer.d.ts.map +1 -0
  35. package/dist/ui/UIRenderer.js +78 -0
  36. package/dist/ui/UIRenderer.js.map +1 -0
  37. package/dist/ui/UISprite.d.ts +32 -0
  38. package/dist/ui/UISprite.d.ts.map +1 -0
  39. package/dist/ui/UISprite.js +109 -0
  40. package/dist/ui/UISprite.js.map +1 -0
  41. package/dist/ui/UIText.d.ts +37 -0
  42. package/dist/ui/UIText.d.ts.map +1 -0
  43. package/dist/ui/UIText.js +53 -0
  44. package/dist/ui/UIText.js.map +1 -0
  45. package/dist/ui/index.d.ts +5 -0
  46. package/dist/ui/index.d.ts.map +1 -0
  47. package/dist/ui/index.js +5 -0
  48. package/dist/ui/index.js.map +1 -0
  49. package/dist/utils/types.d.ts +4 -0
  50. package/dist/utils/types.d.ts.map +1 -0
  51. package/dist/utils/types.js +2 -0
  52. package/dist/utils/types.js.map +1 -0
  53. package/package.json +4 -2
@@ -0,0 +1,53 @@
1
+ // Import Third-party Dependencies
2
+ import { CSS2DObject } from "three/addons/renderers/CSS2DRenderer.js";
3
+ // CONSTANTS
4
+ const kDefaultStyle = {
5
+ color: "#ffffff",
6
+ fontSize: "14px",
7
+ fontFamily: "Arial, sans-serif",
8
+ whiteSpace: "nowrap"
9
+ };
10
+ const kDefaultZOffset = 0.1;
11
+ export class UIText {
12
+ #element;
13
+ #cssObject;
14
+ #style;
15
+ #node;
16
+ constructor(node, options = {}) {
17
+ this.#node = node;
18
+ this.#style = { ...kDefaultStyle, ...options.style };
19
+ this.#element = document.createElement("div");
20
+ this.#element.textContent = options.textContent ?? "";
21
+ this.#applyStyle(this.#style);
22
+ this.#cssObject = new CSS2DObject(this.#element);
23
+ this.#cssObject.position.z = options.zOffset ?? kDefaultZOffset;
24
+ this.#node.addChildren(this.#cssObject);
25
+ }
26
+ get node() {
27
+ return this.#node;
28
+ }
29
+ get element() {
30
+ return this.#element;
31
+ }
32
+ get text() {
33
+ return this.#element.textContent ?? "";
34
+ }
35
+ set text(value) {
36
+ this.#element.textContent = value;
37
+ }
38
+ setStyle(style) {
39
+ Object.assign(this.#style, style);
40
+ this.#applyStyle(this.#style);
41
+ }
42
+ #applyStyle(style) {
43
+ for (const [key, value] of Object.entries(style)) {
44
+ if (value !== undefined) {
45
+ this.#element.style[key] = value;
46
+ }
47
+ }
48
+ }
49
+ destroy() {
50
+ this.#element.remove();
51
+ }
52
+ }
53
+ //# sourceMappingURL=UIText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIText.js","sourceRoot":"","sources":["../../src/ui/UIText.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAgCtE,YAAY;AACZ,MAAM,aAAa,GAAgB;IACjC,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,mBAAmB;IAC/B,UAAU,EAAE,QAAQ;CACrB,CAAC;AACF,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,OAAO,MAAM;IACjB,QAAQ,CAAiB;IACzB,UAAU,CAAc;IACxB,MAAM,CAAc;IACpB,KAAK,CAAS;IAEd,YACE,IAAY,EACZ,UAAyB,EAAE;QAE3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAErD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAEtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,CAAC,UAAU,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;QAEhE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,KAA2B;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,KAAkB;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAA0C,CAAC,GAAG,KAAK,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export * from "./UIRenderer.ts";
2
+ export * from "./UINode.ts";
3
+ export * from "./UISprite.ts";
4
+ export * from "./UIText.ts";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./UIRenderer.js";
2
+ export * from "./UINode.js";
3
+ export * from "./UISprite.js";
4
+ export * from "./UIText.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type DeepRequired<T> = Required<{
2
+ [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
3
+ }>;
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,QAAQ,CAAC;KACpC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@jolly-pixel/engine",
3
- "version": "1.0.0",
3
+ "description": "Minimal and opiniated ECS framework on top of three.js.",
4
+ "version": "1.1.0",
4
5
  "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
@@ -12,7 +13,8 @@
12
13
  },
13
14
  "publishConfig": {
14
15
  "registry": "https://registry.npmjs.org",
15
- "access": "public"
16
+ "access": "public",
17
+ "provenance": true
16
18
  },
17
19
  "repository": {
18
20
  "type": "git",