@vworlds/vecs-phaser-client 1.0.25 → 1.0.27

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 (89) hide show
  1. package/index.d.ts +4 -0
  2. package/index.js +4 -0
  3. package/{dist/index.js.map → index.js.map} +1 -1
  4. package/markers.d.ts +45 -0
  5. package/markers.js +25 -0
  6. package/markers.js.map +1 -0
  7. package/modules/arc.d.ts +13 -0
  8. package/modules/arc.js +37 -0
  9. package/modules/arc.js.map +1 -0
  10. package/modules/ellipse.d.ts +13 -0
  11. package/modules/ellipse.js +24 -0
  12. package/modules/ellipse.js.map +1 -0
  13. package/modules/line.d.ts +13 -0
  14. package/modules/line.js +37 -0
  15. package/modules/line.js.map +1 -0
  16. package/modules/phaser_render.d.ts +10 -0
  17. package/modules/phaser_render.js +65 -0
  18. package/modules/phaser_render.js.map +1 -0
  19. package/modules/polygon.d.ts +13 -0
  20. package/modules/polygon.js +40 -0
  21. package/modules/polygon.js.map +1 -0
  22. package/modules/rectangle.d.ts +13 -0
  23. package/modules/rectangle.js +24 -0
  24. package/modules/rectangle.js.map +1 -0
  25. package/modules/star.d.ts +13 -0
  26. package/modules/star.js +34 -0
  27. package/modules/star.js.map +1 -0
  28. package/modules/sync.d.ts +9 -0
  29. package/modules/sync.js +49 -0
  30. package/modules/sync.js.map +1 -0
  31. package/modules/text.d.ts +10 -0
  32. package/modules/text.js +35 -0
  33. package/modules/text.js.map +1 -0
  34. package/modules/triangle.d.ts +13 -0
  35. package/modules/triangle.js +43 -0
  36. package/modules/triangle.js.map +1 -0
  37. package/modules/types.d.ts +6 -0
  38. package/modules/types.js +27 -0
  39. package/modules/types.js.map +1 -0
  40. package/package.json +10 -25
  41. package/{dist/sync.d.ts → sync.d.ts} +0 -3
  42. package/sync.js +53 -0
  43. package/sync.js.map +1 -0
  44. package/CHANGELOG.md +0 -14
  45. package/LICENSE +0 -21
  46. package/README.md +0 -35
  47. package/dist/index.d.ts +0 -5
  48. package/dist/index.js +0 -4
  49. package/dist/render_context.d.ts +0 -16
  50. package/dist/render_context.js +0 -2
  51. package/dist/render_context.js.map +0 -1
  52. package/dist/renderers/arc.d.ts +0 -2
  53. package/dist/renderers/arc.js +0 -38
  54. package/dist/renderers/arc.js.map +0 -1
  55. package/dist/renderers/ellipse.d.ts +0 -2
  56. package/dist/renderers/ellipse.js +0 -19
  57. package/dist/renderers/ellipse.js.map +0 -1
  58. package/dist/renderers/index.d.ts +0 -2
  59. package/dist/renderers/index.js +0 -21
  60. package/dist/renderers/index.js.map +0 -1
  61. package/dist/renderers/line.d.ts +0 -2
  62. package/dist/renderers/line.js +0 -45
  63. package/dist/renderers/line.js.map +0 -1
  64. package/dist/renderers/polygon.d.ts +0 -2
  65. package/dist/renderers/polygon.js +0 -44
  66. package/dist/renderers/polygon.js.map +0 -1
  67. package/dist/renderers/rectangle.d.ts +0 -2
  68. package/dist/renderers/rectangle.js +0 -33
  69. package/dist/renderers/rectangle.js.map +0 -1
  70. package/dist/renderers/shared.d.ts +0 -33
  71. package/dist/renderers/shared.js +0 -63
  72. package/dist/renderers/shared.js.map +0 -1
  73. package/dist/renderers/star.d.ts +0 -2
  74. package/dist/renderers/star.js +0 -25
  75. package/dist/renderers/star.js.map +0 -1
  76. package/dist/renderers/text.d.ts +0 -2
  77. package/dist/renderers/text.js +0 -48
  78. package/dist/renderers/text.js.map +0 -1
  79. package/dist/renderers/triangle.d.ts +0 -2
  80. package/dist/renderers/triangle.js +0 -30
  81. package/dist/renderers/triangle.js.map +0 -1
  82. package/dist/runtime.d.ts +0 -30
  83. package/dist/runtime.js +0 -70
  84. package/dist/runtime.js.map +0 -1
  85. package/dist/sync.js +0 -130
  86. package/dist/sync.js.map +0 -1
  87. /package/{dist/coord_space.d.ts → coord_space.d.ts} +0 -0
  88. /package/{dist/coord_space.js → coord_space.js} +0 -0
  89. /package/{dist/coord_space.js.map → coord_space.js.map} +0 -0
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { CoordSpace } from "./coord_space.js";
2
+ export { PhaserRenderModule } from "./modules/phaser_render.js";
3
+ export { phaserInterpolators, rotationInterpolator } from "./sync.js";
4
+ export type { PhaserRenderModuleConfig } from "./modules/phaser_render.js";
package/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { CoordSpace } from "./coord_space.js";
2
+ export { PhaserRenderModule } from "./modules/phaser_render.js";
3
+ export { phaserInterpolators, rotationInterpolator } from "./sync.js";
4
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
package/markers.d.ts ADDED
@@ -0,0 +1,45 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import type Phaser from "phaser";
3
+ export declare abstract class GameObject {
4
+ abstract destroy(): void;
5
+ }
6
+ export declare abstract class Shape {
7
+ }
8
+ export declare abstract class Transform {
9
+ abstract setPosition(x: number, y: number): this;
10
+ abstract setRotation(radians: number): this;
11
+ abstract setScale(x: number, y?: number): this;
12
+ }
13
+ export declare abstract class Alpha {
14
+ abstract setAlpha(value: number): this;
15
+ }
16
+ export declare abstract class Depth {
17
+ abstract setDepth(value: number): this;
18
+ }
19
+ export declare abstract class Fill {
20
+ abstract setFillStyle(color: number, alpha?: number): this;
21
+ }
22
+ export declare abstract class Stroke {
23
+ abstract setStrokeStyle(lineWidth: number, color: number, alpha?: number): this;
24
+ }
25
+ export declare abstract class Size {
26
+ abstract setSize(width: number, height: number): this;
27
+ }
28
+ export declare abstract class Arc {
29
+ abstract setEndAngle(degrees: number, anticlockwise?: boolean): this;
30
+ abstract setIterations(iterations: number): this;
31
+ abstract setRadius(radius: number): this;
32
+ abstract setStartAngle(degrees: number, anticlockwise?: boolean): this;
33
+ }
34
+ export declare abstract class Vertices {
35
+ abstract setTo(...coordinates: readonly (number | readonly number[])[]): this;
36
+ }
37
+ export declare abstract class Star {
38
+ abstract setInnerRadius(value: number): this;
39
+ abstract setOuterRadius(value: number): this;
40
+ abstract setPoints(points: number): this;
41
+ }
42
+ export declare abstract class Text {
43
+ abstract setStyle(style: Phaser.Types.GameObjects.Text.TextStyle): this;
44
+ abstract setText(value: string): this;
45
+ }
package/markers.js ADDED
@@ -0,0 +1,25 @@
1
+ export class GameObject {
2
+ }
3
+ export class Shape {
4
+ }
5
+ export class Transform {
6
+ }
7
+ export class Alpha {
8
+ }
9
+ export class Depth {
10
+ }
11
+ export class Fill {
12
+ }
13
+ export class Stroke {
14
+ }
15
+ export class Size {
16
+ }
17
+ export class Arc {
18
+ }
19
+ export class Vertices {
20
+ }
21
+ export class Star {
22
+ }
23
+ export class Text {
24
+ }
25
+ //# sourceMappingURL=markers.js.map
package/markers.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markers.js","sourceRoot":"","sources":["../src/markers.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,UAAU;CAE/B;AAED,MAAM,OAAgB,KAAK;CAAG;AAE9B,MAAM,OAAgB,SAAS;CAI9B;AAED,MAAM,OAAgB,KAAK;CAE1B;AAED,MAAM,OAAgB,KAAK;CAE1B;AAED,MAAM,OAAgB,IAAI;CAEzB;AAED,MAAM,OAAgB,MAAM;CAE3B;AAED,MAAM,OAAgB,IAAI;CAEzB;AAED,MAAM,OAAgB,GAAG;CAKxB;AAED,MAAM,OAAgB,QAAQ;CAE7B;AAED,MAAM,OAAgB,IAAI;CAIzB;AAED,MAAM,OAAgB,IAAI;CAGzB"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class ArcModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }
package/modules/arc.js ADDED
@@ -0,0 +1,37 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Arc } from "@vworlds/vecs-phaser";
4
+ import * as m from "../markers.js";
5
+ export class ArcModule extends Module {
6
+ init(config) {
7
+ const { scene, coords } = config;
8
+ const world = this.world;
9
+ world.component(Arc).onRemove((entity) => {
10
+ if (entity.has(Phaser.GameObjects.Arc)) {
11
+ entity.remove(Phaser.GameObjects.Arc);
12
+ }
13
+ });
14
+ world
15
+ .system("phaser.new.arc")
16
+ .with(Arc)
17
+ .without(Phaser.GameObjects.Arc)
18
+ .phase(ON_STORE)
19
+ .enter([Arc], (entity, [arc]) => {
20
+ const obj = scene.add.arc(0, 0, coords.len(arc.radius), coords.deg(arc.startAngle), coords.deg(arc.endAngle), arc.anticlockwise);
21
+ obj.setIterations(arc.iterations);
22
+ entity.attach(obj);
23
+ });
24
+ world
25
+ .system("phaser.render.arc.geometry")
26
+ .with(Arc, m.Arc)
27
+ .phase(ON_STORE)
28
+ .update(Arc, [m.Arc], (_entity, arc, [obj]) => {
29
+ obj
30
+ .setRadius(coords.len(arc.radius))
31
+ .setStartAngle(coords.deg(arc.startAngle), arc.anticlockwise)
32
+ .setEndAngle(coords.deg(arc.endAngle), arc.anticlockwise)
33
+ .setIterations(arc.iterations);
34
+ });
35
+ }
36
+ }
37
+ //# sourceMappingURL=arc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arc.js","sourceRoot":"","sources":["../../src/modules/arc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,MAAM,OAAO,SAAU,SAAQ,MAAmD;IACzE,IAAI,CAAC,MAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,gBAAgB,CAAC;aACxB,IAAI,CAAC,GAAG,CAAC;aACT,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;aAC/B,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CACvB,CAAC,EACD,CAAC,EACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EACxB,GAAG,CAAC,aAAa,CAClB,CAAC;YACF,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,KAAK;aACF,MAAM,CAAC,4BAA4B,CAAC;aACpC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;aAChB,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YAC5C,GAAG;iBACA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACjC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;iBAC5D,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;iBACxD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class EllipseModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }
@@ -0,0 +1,24 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Ellipse, Size } from "@vworlds/vecs-phaser";
4
+ export class EllipseModule extends Module {
5
+ init(config) {
6
+ const { scene, coords } = config;
7
+ const world = this.world;
8
+ world.component(Ellipse).onRemove((entity) => {
9
+ if (entity.has(Phaser.GameObjects.Ellipse)) {
10
+ entity.remove(Phaser.GameObjects.Ellipse);
11
+ }
12
+ });
13
+ world
14
+ .system("phaser.new.ellipse")
15
+ .with(Ellipse, Size)
16
+ .without(Phaser.GameObjects.Ellipse)
17
+ .phase(ON_STORE)
18
+ .enter([Size], (entity, [size]) => {
19
+ const obj = scene.add.ellipse(0, 0, coords.len(size.width), coords.len(size.height));
20
+ entity.attach(obj);
21
+ });
22
+ }
23
+ }
24
+ //# sourceMappingURL=ellipse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../src/modules/ellipse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,aAAc,SAAQ,MAAmD;IAC7E,IAAI,CAAC,MAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,oBAAoB,CAAC;aAC5B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;aACnB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;aACnC,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class LineModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }
@@ -0,0 +1,37 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Line } from "@vworlds/vecs-phaser";
4
+ import * as m from "../markers.js";
5
+ function linePoints(coords, line) {
6
+ return [coords.rx(line.x1), coords.ry(line.y1), coords.rx(line.x2), coords.ry(line.y2)];
7
+ }
8
+ export class LineModule extends Module {
9
+ init(config) {
10
+ const { scene, coords } = config;
11
+ const world = this.world;
12
+ world.component(Line).onRemove((entity) => {
13
+ if (entity.has(Phaser.GameObjects.Line)) {
14
+ entity.remove(Phaser.GameObjects.Line);
15
+ }
16
+ });
17
+ world
18
+ .system("phaser.new.line")
19
+ .with(Line)
20
+ .without(Phaser.GameObjects.Line)
21
+ .phase(ON_STORE)
22
+ .enter([Line], (entity, [line]) => {
23
+ const points = linePoints(coords, line);
24
+ const obj = scene.add.line(0, 0, points[0], points[1], points[2], points[3]);
25
+ obj.setOrigin(0, 0);
26
+ entity.attach(obj);
27
+ });
28
+ world
29
+ .system("phaser.render.line.geometry")
30
+ .with(Line, m.Vertices)
31
+ .phase(ON_STORE)
32
+ .update(Line, [m.Vertices], (_entity, line, [obj]) => {
33
+ obj.setTo(...linePoints(coords, line));
34
+ });
35
+ }
36
+ }
37
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/modules/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,SAAS,UAAU,CAAC,MAAkB,EAAE,IAAU;IAChD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,OAAO,UAAW,SAAQ,MAAmD;IAC1E,IAAI,CAAC,MAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,iBAAiB,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC;aACV,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;aAChC,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,KAAK;aACF,MAAM,CAAC,6BAA6B,CAAC;aACrC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;aACtB,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YACnD,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ export interface PhaserRenderModuleConfig {
5
+ readonly scene: Phaser.Scene;
6
+ readonly pixelsPerMeter?: number;
7
+ }
8
+ export declare class PhaserRenderModule extends Module<PhaserRenderModuleConfig> {
9
+ init(config: PhaserRenderModuleConfig): void;
10
+ }
@@ -0,0 +1,65 @@
1
+ import { Implements, Module } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { CoordSpace } from "../coord_space.js";
4
+ import * as m from "../markers.js";
5
+ import { ArcModule } from "./arc.js";
6
+ import { EllipseModule } from "./ellipse.js";
7
+ import { LineModule } from "./line.js";
8
+ import { PolygonModule } from "./polygon.js";
9
+ import { RectangleModule } from "./rectangle.js";
10
+ import { StarModule } from "./star.js";
11
+ import { TextModule } from "./text.js";
12
+ import { TriangleModule } from "./triangle.js";
13
+ import { SyncModule } from "./sync.js";
14
+ export class PhaserRenderModule extends Module {
15
+ init(config) {
16
+ const coords = new CoordSpace(config.scene, config.pixelsPerMeter);
17
+ const world = this.world;
18
+ [
19
+ m.GameObject,
20
+ m.Shape,
21
+ m.Transform,
22
+ m.Alpha,
23
+ m.Depth,
24
+ m.Fill,
25
+ m.Stroke,
26
+ m.Size,
27
+ m.Arc,
28
+ m.Vertices,
29
+ m.Star,
30
+ m.Text,
31
+ ].forEach((Marker) => world.component(Marker));
32
+ world.component(m.Shape).set(Implements, {
33
+ interfaces: [m.GameObject, m.Transform, m.Alpha, m.Depth, m.Fill, m.Stroke],
34
+ });
35
+ world.component(Phaser.GameObjects.Arc).set(Implements, { interfaces: [m.Shape, m.Arc] });
36
+ world.component(Phaser.GameObjects.Rectangle).set(Implements, {
37
+ interfaces: [m.Shape, m.Size],
38
+ });
39
+ world.component(Phaser.GameObjects.Ellipse).set(Implements, {
40
+ interfaces: [m.Shape, m.Size],
41
+ });
42
+ world.component(Phaser.GameObjects.Line).set(Implements, { interfaces: [m.Shape, m.Vertices] });
43
+ world.component(Phaser.GameObjects.Polygon).set(Implements, {
44
+ interfaces: [m.Shape, m.Vertices],
45
+ });
46
+ world.component(Phaser.GameObjects.Triangle).set(Implements, {
47
+ interfaces: [m.Shape, m.Vertices],
48
+ });
49
+ world.component(Phaser.GameObjects.Star).set(Implements, { interfaces: [m.Shape, m.Star] });
50
+ world.component(Phaser.GameObjects.Text).set(Implements, {
51
+ interfaces: [m.GameObject, m.Transform, m.Alpha, m.Depth, m.Text],
52
+ });
53
+ world.component(m.GameObject).onRemove((_entity, obj) => obj.destroy());
54
+ world.module(ArcModule, { scene: config.scene, coords });
55
+ world.module(EllipseModule, { scene: config.scene, coords });
56
+ world.module(RectangleModule, { scene: config.scene, coords });
57
+ world.module(PolygonModule, { scene: config.scene, coords });
58
+ world.module(LineModule, { scene: config.scene, coords });
59
+ world.module(TriangleModule, { scene: config.scene, coords });
60
+ world.module(StarModule, { scene: config.scene, coords });
61
+ world.module(TextModule, { scene: config.scene });
62
+ world.module(SyncModule, { coords });
63
+ }
64
+ }
65
+ //# sourceMappingURL=phaser_render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phaser_render.js","sourceRoot":"","sources":["../../src/modules/phaser_render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class PolygonModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }
@@ -0,0 +1,40 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Polygon } from "@vworlds/vecs-phaser";
4
+ import * as m from "../markers.js";
5
+ function polygonPoints(coords, polygon) {
6
+ const points = [];
7
+ for (let i = 0; i < polygon.points.length; i += 2) {
8
+ points.push(coords.rx(polygon.points[i] ?? 0), coords.ry(polygon.points[i + 1] ?? 0));
9
+ }
10
+ return points;
11
+ }
12
+ export class PolygonModule extends Module {
13
+ init(config) {
14
+ const { scene, coords } = config;
15
+ const world = this.world;
16
+ world.component(Polygon).onRemove((entity) => {
17
+ if (entity.has(Phaser.GameObjects.Polygon)) {
18
+ entity.remove(Phaser.GameObjects.Polygon);
19
+ }
20
+ });
21
+ world
22
+ .system("phaser.new.polygon")
23
+ .with(Polygon)
24
+ .without(Phaser.GameObjects.Polygon)
25
+ .phase(ON_STORE)
26
+ .enter([Polygon], (entity, [polygon]) => {
27
+ const obj = scene.add.polygon(0, 0, polygonPoints(coords, polygon));
28
+ obj.setOrigin(0, 0);
29
+ entity.attach(obj);
30
+ });
31
+ world
32
+ .system("phaser.render.polygon.geometry")
33
+ .with(Polygon, m.Vertices)
34
+ .phase(ON_STORE)
35
+ .update(Polygon, [m.Vertices], (_entity, polygon, [obj]) => {
36
+ obj.setTo(polygonPoints(coords, polygon));
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=polygon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../src/modules/polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,SAAS,aAAa,CAAC,MAAkB,EAAE,OAAgB;IACzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,MAAmD;IAC7E,IAAI,CAAC,MAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,oBAAoB,CAAC;aAC5B,IAAI,CAAC,OAAO,CAAC;aACb,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;aACnC,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACpE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,KAAK;aACF,MAAM,CAAC,gCAAgC,CAAC;aACxC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC;aACzB,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YACzD,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class RectangleModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }
@@ -0,0 +1,24 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Rectangle, Size } from "@vworlds/vecs-phaser";
4
+ export class RectangleModule extends Module {
5
+ init(config) {
6
+ const { scene, coords } = config;
7
+ const world = this.world;
8
+ world.component(Rectangle).onRemove((entity) => {
9
+ if (entity.has(Phaser.GameObjects.Rectangle)) {
10
+ entity.remove(Phaser.GameObjects.Rectangle);
11
+ }
12
+ });
13
+ world
14
+ .system("phaser.new.rectangle")
15
+ .with(Rectangle, Size)
16
+ .without(Phaser.GameObjects.Rectangle)
17
+ .phase(ON_STORE)
18
+ .enter([Size], (entity, [size]) => {
19
+ const obj = scene.add.rectangle(0, 0, coords.len(size.width), coords.len(size.height));
20
+ entity.attach(obj);
21
+ });
22
+ }
23
+ }
24
+ //# sourceMappingURL=rectangle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../src/modules/rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,eAAgB,SAAQ,MAAmD;IAC/E,IAAI,CAAC,MAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,sBAAsB,CAAC;aAC9B,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;aACrC,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class StarModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }
@@ -0,0 +1,34 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Star } from "@vworlds/vecs-phaser";
4
+ import * as m from "../markers.js";
5
+ export class StarModule extends Module {
6
+ init(config) {
7
+ const { scene, coords } = config;
8
+ const world = this.world;
9
+ world.component(Star).onRemove((entity) => {
10
+ if (entity.has(Phaser.GameObjects.Star)) {
11
+ entity.remove(Phaser.GameObjects.Star);
12
+ }
13
+ });
14
+ world
15
+ .system("phaser.new.star")
16
+ .with(Star)
17
+ .without(Phaser.GameObjects.Star)
18
+ .phase(ON_STORE)
19
+ .enter([Star], (entity, [star]) => {
20
+ const obj = scene.add.star(0, 0, star.points, coords.len(star.innerRadius), coords.len(star.outerRadius));
21
+ entity.attach(obj);
22
+ });
23
+ world
24
+ .system("phaser.render.star.geometry")
25
+ .with(Star, m.Star)
26
+ .phase(ON_STORE)
27
+ .update(Star, [m.Star], (_entity, star, [obj]) => {
28
+ obj.setPoints(star.points);
29
+ obj.setInnerRadius(coords.len(star.innerRadius));
30
+ obj.setOuterRadius(coords.len(star.outerRadius));
31
+ });
32
+ }
33
+ }
34
+ //# sourceMappingURL=star.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"star.js","sourceRoot":"","sources":["../../src/modules/star.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC,MAAM,OAAO,UAAW,SAAQ,MAAmD;IAC1E,IAAI,CAAC,MAAmD;QAC7D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,iBAAiB,CAAC;aACzB,IAAI,CAAC,IAAI,CAAC;aACV,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;aAChC,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CACxB,CAAC,EACD,CAAC,EACD,IAAI,CAAC,MAAM,EACX,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAC7B,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,KAAK;aACF,MAAM,CAAC,6BAA6B,CAAC;aACrC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;aAClB,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YAC/C,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACjD,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { Module } from "@vworlds/vecs";
2
+ import { CoordSpace } from "../coord_space.js";
3
+ export declare class SyncModule extends Module<{
4
+ coords: CoordSpace;
5
+ }> {
6
+ init({ coords }: {
7
+ coords: CoordSpace;
8
+ }): void;
9
+ }
@@ -0,0 +1,49 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import { Alpha, Depth, FillStyle, Position, Rotation, Scale, Size, StrokeStyle, } from "@vworlds/vecs-phaser";
3
+ import * as m from "../markers.js";
4
+ export class SyncModule extends Module {
5
+ init({ coords }) {
6
+ const world = this.world;
7
+ world
8
+ .system("phaser.sync.position")
9
+ .with(Position, m.Transform)
10
+ .phase(ON_STORE)
11
+ .update(Position, [m.Transform], (_e, p, [obj]) => obj.setPosition(coords.x(p.x), coords.y(p.y)));
12
+ world
13
+ .system("phaser.sync.rotation")
14
+ .with(Rotation, m.Transform)
15
+ .phase(ON_STORE)
16
+ .update(Rotation, [m.Transform], (_e, r, [obj]) => obj.setRotation(coords.rot(r.angle)));
17
+ world
18
+ .system("phaser.sync.scale")
19
+ .with(Scale, m.Transform)
20
+ .phase(ON_STORE)
21
+ .update(Scale, [m.Transform], (_e, s, [obj]) => obj.setScale(s.x, s.y));
22
+ world
23
+ .system("phaser.sync.alpha")
24
+ .with(Alpha, m.Alpha)
25
+ .phase(ON_STORE)
26
+ .update(Alpha, [m.Alpha], (_e, a, [obj]) => obj.setAlpha(a.value));
27
+ world
28
+ .system("phaser.sync.depth")
29
+ .with(Depth, m.Depth)
30
+ .phase(ON_STORE)
31
+ .update(Depth, [m.Depth], (_e, d, [obj]) => obj.setDepth(d.value));
32
+ world
33
+ .system("phaser.sync.size")
34
+ .with(Size, m.Size)
35
+ .phase(ON_STORE)
36
+ .update(Size, [m.Size], (_e, s, [obj]) => obj.setSize(coords.len(s.width), coords.len(s.height)));
37
+ world
38
+ .system("phaser.sync.fill-style")
39
+ .with(FillStyle, m.Fill)
40
+ .phase(ON_STORE)
41
+ .update(FillStyle, [m.Fill], (_e, f, [obj]) => obj.setFillStyle(f.color, f.alpha));
42
+ world
43
+ .system("phaser.sync.stroke-style")
44
+ .with(StrokeStyle, m.Stroke)
45
+ .phase(ON_STORE)
46
+ .update(StrokeStyle, [m.Stroke], (_e, s, [obj]) => obj.setStrokeStyle(s.width, s.color, s.alpha));
47
+ }
48
+ }
49
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/modules/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ export declare class TextModule extends Module<{
5
+ scene: Phaser.Scene;
6
+ }> {
7
+ init(config: {
8
+ scene: Phaser.Scene;
9
+ }): void;
10
+ }
@@ -0,0 +1,35 @@
1
+ import { Module, ON_STORE } from "@vworlds/vecs";
2
+ import Phaser from "phaser";
3
+ import { Text as TextComponent } from "@vworlds/vecs-phaser";
4
+ import * as m from "../markers.js";
5
+ import { textStyle } from "./types.js";
6
+ export class TextModule extends Module {
7
+ init(config) {
8
+ const { scene } = config;
9
+ const world = this.world;
10
+ world.component(TextComponent).onRemove((entity) => {
11
+ if (entity.has(Phaser.GameObjects.Text)) {
12
+ entity.remove(Phaser.GameObjects.Text);
13
+ }
14
+ });
15
+ world
16
+ .system("phaser.new.text")
17
+ .with(TextComponent)
18
+ .without(Phaser.GameObjects.Text)
19
+ .phase(ON_STORE)
20
+ .enter([TextComponent], (entity, [text]) => {
21
+ const obj = scene.add.text(0, 0, text.value, textStyle(text));
22
+ obj.setOrigin(0.5);
23
+ entity.attach(obj);
24
+ });
25
+ world
26
+ .system("phaser.render.text.geometry")
27
+ .with(TextComponent, m.Text)
28
+ .phase(ON_STORE)
29
+ .update(TextComponent, [m.Text], (_entity, text, [obj]) => {
30
+ obj.setText(text.value);
31
+ obj.setStyle(textStyle(text));
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/modules/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,OAAO,UAAW,SAAQ,MAA+B;IACtD,IAAI,CAAC,MAA+B;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YACjD,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK;aACF,MAAM,CAAC,iBAAiB,CAAC;aACzB,IAAI,CAAC,aAAa,CAAC;aACnB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;aAChC,KAAK,CAAC,QAAQ,CAAC;aACf,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,KAAK;aACF,MAAM,CAAC,6BAA6B,CAAC;aACrC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC;aAC3B,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE;YACxD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="./phaser" resolution-mode="require"/>
2
+ import { Module } from "@vworlds/vecs";
3
+ import Phaser from "phaser";
4
+ import { CoordSpace } from "../coord_space.js";
5
+ export declare class TriangleModule extends Module<{
6
+ scene: Phaser.Scene;
7
+ coords: CoordSpace;
8
+ }> {
9
+ init(config: {
10
+ scene: Phaser.Scene;
11
+ coords: CoordSpace;
12
+ }): void;
13
+ }