@oidoid/void 0.1.4 → 0.1.6

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 (107) hide show
  1. package/dist/public/index.js +8 -8
  2. package/dist/public/index.js.map +4 -4
  3. package/dist/public/void-v0.1.6+20260105.c98baee.html +115 -0
  4. package/dist/schema/config-file.v0.json +16 -72
  5. package/dist/schema/level-file.v0.json +76 -56
  6. package/dist/src/demo/assets/void.game.json +2 -7
  7. package/dist/src/demo/ents/render-toggle.d.ts.map +1 -1
  8. package/dist/src/demo/ents/render-toggle.js +1 -0
  9. package/dist/src/demo/ents/render-toggle.js.map +1 -1
  10. package/dist/src/demo/index.js +3 -4
  11. package/dist/src/demo/index.js.map +1 -1
  12. package/dist/src/demo/level/level-file.v0.json +443 -0
  13. package/dist/src/demo/level/level-parser.d.ts +0 -2
  14. package/dist/src/demo/level/level-parser.d.ts.map +1 -1
  15. package/dist/src/demo/level/level-parser.js +0 -4
  16. package/dist/src/demo/level/level-parser.js.map +1 -1
  17. package/dist/src/demo/level/loader.d.ts +7 -0
  18. package/dist/src/demo/level/loader.d.ts.map +1 -0
  19. package/dist/src/demo/level/loader.js +55 -0
  20. package/dist/src/demo/level/loader.js.map +1 -0
  21. package/dist/src/demo/level/schema.json +24 -0
  22. package/dist/src/demo/level/tags.json +148 -0
  23. package/dist/src/demo/types/decl.d.ts +0 -3
  24. package/dist/src/demo/types/decl.d.ts.map +1 -1
  25. package/dist/src/demo/void.json +6 -6
  26. package/dist/src/ents/button.js +2 -2
  27. package/dist/src/ents/button.js.map +1 -1
  28. package/dist/src/ents/ent-query.d.ts +1 -1
  29. package/dist/src/ents/ent-query.d.ts.map +1 -1
  30. package/dist/src/ents/ent-query.js +1 -1
  31. package/dist/src/ents/ent-query.js.map +1 -1
  32. package/dist/src/ents/ent.d.ts +1 -4
  33. package/dist/src/ents/ent.d.ts.map +1 -1
  34. package/dist/src/ents/sys.d.ts +0 -1
  35. package/dist/src/ents/sys.d.ts.map +1 -1
  36. package/dist/src/ents/zoo.d.ts +9 -18
  37. package/dist/src/ents/zoo.d.ts.map +1 -1
  38. package/dist/src/ents/zoo.js +35 -98
  39. package/dist/src/ents/zoo.js.map +1 -1
  40. package/dist/src/graphics/atlas-parser.d.ts +1 -1
  41. package/dist/src/graphics/atlas.d.ts +4 -0
  42. package/dist/src/graphics/atlas.d.ts.map +1 -1
  43. package/dist/src/graphics/layer.d.ts +1 -1
  44. package/dist/src/graphics/layer.d.ts.map +1 -1
  45. package/dist/src/graphics/layer.js +1 -1
  46. package/dist/src/graphics/layer.js.map +1 -1
  47. package/dist/src/graphics/renderer.d.ts +2 -2
  48. package/dist/src/graphics/renderer.d.ts.map +1 -1
  49. package/dist/src/graphics/renderer.js +13 -13
  50. package/dist/src/graphics/renderer.js.map +1 -1
  51. package/dist/src/index.d.ts +2 -2
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +2 -2
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/level/level-parser.d.ts.map +1 -1
  56. package/dist/src/level/level-parser.js +8 -3
  57. package/dist/src/level/level-parser.js.map +1 -1
  58. package/dist/src/level/level-schema.d.ts +17 -12
  59. package/dist/src/level/level-schema.d.ts.map +1 -1
  60. package/dist/src/level/level.d.ts +6 -4
  61. package/dist/src/level/level.d.ts.map +1 -1
  62. package/dist/src/level/loader.d.ts +7 -0
  63. package/dist/src/level/loader.d.ts.map +1 -0
  64. package/dist/src/{ents → level}/loader.js.map +1 -1
  65. package/dist/src/types/{game-config.d.ts → void-config.d.ts} +4 -11
  66. package/dist/src/types/void-config.d.ts.map +1 -0
  67. package/dist/src/types/void-config.js +2 -0
  68. package/dist/src/types/void-config.js.map +1 -0
  69. package/dist/src/utils/dom-util.d.ts +1 -1
  70. package/dist/src/utils/dom-util.d.ts.map +1 -1
  71. package/dist/src/utils/dom-util.js +1 -3
  72. package/dist/src/utils/dom-util.js.map +1 -1
  73. package/dist/src/void.d.ts +14 -11
  74. package/dist/src/void.d.ts.map +1 -1
  75. package/dist/src/void.js +43 -31
  76. package/dist/src/void.js.map +1 -1
  77. package/dist/tools/atlas-pack/atlas-pack.d.ts +1 -1
  78. package/dist/tools/atlas-pack/atlas-pack.d.ts.map +1 -1
  79. package/dist/tools/atlas-pack/atlas-pack.js +0 -2
  80. package/dist/tools/atlas-pack/atlas-pack.js.map +1 -1
  81. package/dist/tools/bundle/bundle.js +22 -10
  82. package/dist/tools/bundle/bundle.js.map +1 -1
  83. package/dist/tools/types/config-file.d.ts +13 -16
  84. package/dist/tools/types/config-file.d.ts.map +1 -1
  85. package/dist/tools/types/config-file.js +7 -17
  86. package/dist/tools/types/config-file.js.map +1 -1
  87. package/dist/tools/types/config.d.ts +6 -4
  88. package/dist/tools/types/config.d.ts.map +1 -1
  89. package/dist/tools/types/config.js +5 -3
  90. package/dist/tools/types/config.js.map +1 -1
  91. package/package.json +5 -4
  92. package/readme.md +3 -1
  93. package/schema/config-file.v0.json +83 -0
  94. package/schema/level-file.v0.json +443 -0
  95. package/dist/public/void-v0.1.4+20260103.39142b2.html +0 -115
  96. package/dist/src/demo/ents/loader.d.ts +0 -6
  97. package/dist/src/demo/ents/loader.d.ts.map +0 -1
  98. package/dist/src/demo/ents/loader.js +0 -45
  99. package/dist/src/demo/ents/loader.js.map +0 -1
  100. package/dist/src/demo/level/level-file.json +0 -50
  101. package/dist/src/ents/loader.d.ts +0 -3
  102. package/dist/src/ents/loader.d.ts.map +0 -1
  103. package/dist/src/types/game-config.d.ts.map +0 -1
  104. package/dist/src/types/game-config.js +0 -2
  105. package/dist/src/types/game-config.js.map +0 -1
  106. /package/dist/public/{preload-atlas.webp → atlas.webp} +0 -0
  107. /package/dist/src/{ents → level}/loader.js +0 -0
@@ -0,0 +1,148 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "description": "animation tag.",
4
+ "enum": [
5
+ "background--OrangeCheckerboard",
6
+ "background--GreyCheckerboard",
7
+ "background--Kiwi",
8
+ "background--Strawberry",
9
+ "background--Grape",
10
+ "background--Blueberry",
11
+ "background--Bubblegum",
12
+ "background--Transparent",
13
+ "background--Black",
14
+ "backpacker--WalkRight",
15
+ "backpacker--WalkDown",
16
+ "backpacker--WalkUp",
17
+ "cursor--Pointer",
18
+ "mem-prop-5x6--00",
19
+ "mem-prop-5x6--01",
20
+ "mem-prop-5x6--02",
21
+ "mem-prop-5x6--03",
22
+ "mem-prop-5x6--04",
23
+ "mem-prop-5x6--05",
24
+ "mem-prop-5x6--06",
25
+ "mem-prop-5x6--07",
26
+ "mem-prop-5x6--08",
27
+ "mem-prop-5x6--09",
28
+ "mem-prop-5x6--0a",
29
+ "mem-prop-5x6--0b",
30
+ "mem-prop-5x6--0c",
31
+ "mem-prop-5x6--0d",
32
+ "mem-prop-5x6--0e",
33
+ "mem-prop-5x6--0f",
34
+ "mem-prop-5x6--10",
35
+ "mem-prop-5x6--11",
36
+ "mem-prop-5x6--12",
37
+ "mem-prop-5x6--13",
38
+ "mem-prop-5x6--14",
39
+ "mem-prop-5x6--15",
40
+ "mem-prop-5x6--16",
41
+ "mem-prop-5x6--17",
42
+ "mem-prop-5x6--18",
43
+ "mem-prop-5x6--19",
44
+ "mem-prop-5x6--1a",
45
+ "mem-prop-5x6--1b",
46
+ "mem-prop-5x6--1c",
47
+ "mem-prop-5x6--1d",
48
+ "mem-prop-5x6--1e",
49
+ "mem-prop-5x6--1f",
50
+ "mem-prop-5x6--20",
51
+ "mem-prop-5x6--21",
52
+ "mem-prop-5x6--22",
53
+ "mem-prop-5x6--23",
54
+ "mem-prop-5x6--24",
55
+ "mem-prop-5x6--25",
56
+ "mem-prop-5x6--26",
57
+ "mem-prop-5x6--27",
58
+ "mem-prop-5x6--28",
59
+ "mem-prop-5x6--29",
60
+ "mem-prop-5x6--2a",
61
+ "mem-prop-5x6--2b",
62
+ "mem-prop-5x6--2c",
63
+ "mem-prop-5x6--2d",
64
+ "mem-prop-5x6--2e",
65
+ "mem-prop-5x6--2f",
66
+ "mem-prop-5x6--30",
67
+ "mem-prop-5x6--31",
68
+ "mem-prop-5x6--32",
69
+ "mem-prop-5x6--33",
70
+ "mem-prop-5x6--34",
71
+ "mem-prop-5x6--35",
72
+ "mem-prop-5x6--36",
73
+ "mem-prop-5x6--37",
74
+ "mem-prop-5x6--38",
75
+ "mem-prop-5x6--39",
76
+ "mem-prop-5x6--3a",
77
+ "mem-prop-5x6--3b",
78
+ "mem-prop-5x6--3c",
79
+ "mem-prop-5x6--3d",
80
+ "mem-prop-5x6--3e",
81
+ "mem-prop-5x6--3f",
82
+ "mem-prop-5x6--40",
83
+ "mem-prop-5x6--41",
84
+ "mem-prop-5x6--42",
85
+ "mem-prop-5x6--43",
86
+ "mem-prop-5x6--44",
87
+ "mem-prop-5x6--45",
88
+ "mem-prop-5x6--46",
89
+ "mem-prop-5x6--47",
90
+ "mem-prop-5x6--48",
91
+ "mem-prop-5x6--49",
92
+ "mem-prop-5x6--4a",
93
+ "mem-prop-5x6--4b",
94
+ "mem-prop-5x6--4c",
95
+ "mem-prop-5x6--4d",
96
+ "mem-prop-5x6--4e",
97
+ "mem-prop-5x6--4f",
98
+ "mem-prop-5x6--50",
99
+ "mem-prop-5x6--51",
100
+ "mem-prop-5x6--52",
101
+ "mem-prop-5x6--53",
102
+ "mem-prop-5x6--54",
103
+ "mem-prop-5x6--55",
104
+ "mem-prop-5x6--56",
105
+ "mem-prop-5x6--57",
106
+ "mem-prop-5x6--58",
107
+ "mem-prop-5x6--59",
108
+ "mem-prop-5x6--5a",
109
+ "mem-prop-5x6--5b",
110
+ "mem-prop-5x6--5c",
111
+ "mem-prop-5x6--5d",
112
+ "mem-prop-5x6--5e",
113
+ "mem-prop-5x6--5f",
114
+ "mem-prop-5x6--60",
115
+ "mem-prop-5x6--61",
116
+ "mem-prop-5x6--62",
117
+ "mem-prop-5x6--63",
118
+ "mem-prop-5x6--64",
119
+ "mem-prop-5x6--65",
120
+ "mem-prop-5x6--66",
121
+ "mem-prop-5x6--67",
122
+ "mem-prop-5x6--68",
123
+ "mem-prop-5x6--69",
124
+ "mem-prop-5x6--6a",
125
+ "mem-prop-5x6--6b",
126
+ "mem-prop-5x6--6c",
127
+ "mem-prop-5x6--6d",
128
+ "mem-prop-5x6--6e",
129
+ "mem-prop-5x6--6f",
130
+ "mem-prop-5x6--70",
131
+ "mem-prop-5x6--71",
132
+ "mem-prop-5x6--72",
133
+ "mem-prop-5x6--73",
134
+ "mem-prop-5x6--74",
135
+ "mem-prop-5x6--75",
136
+ "mem-prop-5x6--76",
137
+ "mem-prop-5x6--77",
138
+ "mem-prop-5x6--78",
139
+ "mem-prop-5x6--79",
140
+ "mem-prop-5x6--7a",
141
+ "mem-prop-5x6--7b",
142
+ "mem-prop-5x6--7c",
143
+ "mem-prop-5x6--7d",
144
+ "mem-prop-5x6--7e",
145
+ "mem-prop-5x6--7f",
146
+ "oidoid--Default"
147
+ ]
148
+ }
@@ -17,9 +17,6 @@ declare module '../../index.ts' {
17
17
  renderToggle?: RenderToggleSchema;
18
18
  tally?: TallySchema;
19
19
  }
20
- interface Loader {
21
- level: undefined | 'Init';
22
- }
23
20
  interface PoolMap {
24
21
  overlay: V.Pool<V.Sprite>;
25
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decl.d.ts","sourceRoot":"","sources":["../../../../src/demo/types/decl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAA;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,KAAK;QACb,wEAAwE;QACxE,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IAED,UAAU,GAAG;QACX,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;KACd;IAED,UAAU,SAAS;QACjB,KAAK,CAAC,EAAE,WAAW,CAAA;QACnB,YAAY,CAAC,EAAE,kBAAkB,CAAA;QACjC,KAAK,CAAC,EAAE,WAAW,CAAA;KACpB;IAED,UAAU,MAAM;QACd,KAAK,EAAE,SAAS,GAAG,MAAM,CAAA;KAC1B;IAED,UAAU,OAAO;QACf,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;KAC1B;IAED,UAAU,SAAS;QAEjB,IAAI,MAAM,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAA;KACrC;CACF"}
1
+ {"version":3,"file":"decl.d.ts","sourceRoot":"","sources":["../../../../src/demo/types/decl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAA;AAExC,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAA;AAC9D,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,KAAK;QACb,wEAAwE;QACxE,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IAED,UAAU,GAAG;QACX,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;KACd;IAED,UAAU,SAAS;QACjB,KAAK,CAAC,EAAE,WAAW,CAAA;QACnB,YAAY,CAAC,EAAE,kBAAkB,CAAA;QACjC,KAAK,CAAC,EAAE,WAAW,CAAA;KACpB;IAED,UAAU,OAAO;QACf,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;KAC1B;IAED,UAAU,SAAS;QAEjB,IAAI,MAAM,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAA;KACrC;CACF"}
@@ -5,11 +5,11 @@
5
5
  "out": {
6
6
  "dir": "../../dist/public/",
7
7
  "name": "void",
8
- "game": "assets/void.game.json"
8
+ "game": "assets/void.game.json",
9
+ "tagSchema": "level/tags.json"
9
10
  },
10
- "preloadAtlas": {
11
- "dir": "assets/preload-atlas/",
12
- "image": "../../dist/public/preload-atlas.webp"
13
- },
14
- "init": { "minWH": { "w": 320, "h": 240 } }
11
+ "atlas": {
12
+ "dir": "assets/atlas/",
13
+ "image": "../../dist/public/atlas.webp"
14
+ }
15
15
  }
@@ -21,7 +21,7 @@ export class ButtonSys {
21
21
  button.selected.h = ent.sprite.h;
22
22
  // to-do: do I copy over everything from sprite? I thought I was trying to get away from copy everything update loops.
23
23
  // in particular, ent.sprite.z needs to be applied more uniformly across the parser but lots of stuff isn't always checking sprite.
24
- const hitsCursor = !!v.zoo.cursor && v.zoo.cursor.sprite.hitsZ(ent.sprite, v.cam);
24
+ const hitsCursor = !!v.loader.cursor && v.loader.cursor.sprite.hitsZ(ent.sprite, v.cam);
25
25
  const on = hitsCursor && v.input.isOnStart('A')
26
26
  ? toggle
27
27
  ? !buttonOn(ent)
@@ -29,7 +29,7 @@ export class ButtonSys {
29
29
  : toggle
30
30
  ? buttonOn(ent)
31
31
  : v.input.isOn('A') ||
32
- (!!v.zoo.cursor?.cursor.keyboard && v.input.isOn('A'));
32
+ (!!v.loader.cursor?.cursor.keyboard && v.input.isOn('A'));
33
33
  button.started = buttonOn(ent) !== on;
34
34
  button.pressed.visible = on;
35
35
  button.selected.visible = hitsCursor;
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/ents/button.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,SAAS;IACX,KAAK,GAAG,iBAAiB,CAAA;IAElC,IAAI,CAAC,GAAc;QACjB,UAAU,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,GAAc,EAAE,CAAO;QAC5B,kFAAkF;QAClF,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;YAAE,OAAM;QAC5C,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA,CAAC,iCAAiC;QAEpD,MAAM,EAAC,MAAM,EAAC,GAAG,GAAG,CAAA;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAA;QAEvC,sDAAsD;QACtD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,sHAAsH;QACtH,mIAAmI;QAEnI,MAAM,UAAU,GACd,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QAEhE,MAAM,EAAE,GACN,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;YAClC,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACf,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBACjB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9D,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QACrC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QAE3B,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAA;QAEpC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,UAAU,CAAA;IAChC,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAAC,GAAc;IACvC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IACzB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;IAClB,uFAAuF;AACzF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAc,EAAE,EAAW;IACrD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;IAC/B,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAwB;IAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAA;AACnC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,GAAwB;IACpD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAwB;IACrD,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/ents/button.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,6 @@ type ExactQueryEnt<Ent, Query> = Query extends keyof Ent ? {
21
21
  * permitted.
22
22
  */
23
23
  export type EQL<Ent, Query> = Query extends `${'!' | ''}${keyof Ent & string}` ? Query : Query extends `${infer Term extends `${'!' | ''}${keyof Ent & string}`} & ${infer Rest}` ? `${Term} & ${EQL<Ent, Rest>}` : Query extends `${infer Term extends `${'!' | ''}${keyof Ent & string}`} | ${infer Rest}` ? `${Term} | ${EQL<Ent, Rest>}` : never;
24
- export declare function parseQuerySet<const Query>(query: EQL<Ent, Query>): string[][];
24
+ export declare function parseQuery<const Query>(query: EQL<Ent, Query>): string[][];
25
25
  export {};
26
26
  //# sourceMappingURL=ent-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ent-query.d.ts","sourceRoot":"","sources":["../../../src/ents/ent-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAEjC,6CAA6C;AAC7C,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;AAEvE,oCAAoC;AACpC,KAAK,aAAa,CAAC,GAAG,EAAE,KAAK,IAAI,KAAK,SAAS,MAAM,GAAG,GACpD;KAAE,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;CAAC,GAC5B,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,EAAE,GACtD;KAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK;CAAC,GACpB,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACrE;KAAE,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC3D,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACtE;KAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC/C,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACrE;KAAE,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC3D,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACtE;KAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC/C,KAAK,CAAA;AACnB;;;;GAIG;AACH,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,KAAK,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE,GAC1E,KAAK,GACL,KAAK,SAAS,GAAG,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,MAAM,IAAI,EAAE,GACtF,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAC7B,KAAK,SAAS,GAAG,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,MAAM,IAAI,EAAE,GACtF,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAC7B,KAAK,CAAA;AAEb,wBAAgB,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,EAAE,CAK7E"}
1
+ {"version":3,"file":"ent-query.d.ts","sourceRoot":"","sources":["../../../src/ents/ent-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAEjC,6CAA6C;AAC7C,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;AAEvE,oCAAoC;AACpC,KAAK,aAAa,CAAC,GAAG,EAAE,KAAK,IAAI,KAAK,SAAS,MAAM,GAAG,GACpD;KAAE,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;CAAC,GAC5B,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,EAAE,GACtD;KAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK;CAAC,GACpB,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACrE;KAAE,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC3D,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACtE;KAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC/C,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACrE;KAAE,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC3D,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,EAAE,GACtE;KAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK;CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,GAC/C,KAAK,CAAA;AACnB;;;;GAIG;AACH,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,KAAK,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE,GAC1E,KAAK,GACL,KAAK,SAAS,GAAG,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,MAAM,IAAI,EAAE,GACtF,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAC7B,KAAK,SAAS,GAAG,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE,MAAM,MAAM,IAAI,EAAE,GACtF,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAC7B,KAAK,CAAA;AAEb,wBAAgB,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,EAAE,CAK1E"}
@@ -1,4 +1,4 @@
1
- export function parseQuerySet(query) {
1
+ export function parseQuery(query) {
2
2
  return query
3
3
  .split(' | ')
4
4
  .sort(compareEn)
@@ -1 +1 @@
1
- {"version":3,"file":"ent-query.js","sourceRoot":"","sources":["../../../src/ents/ent-query.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,aAAa,CAAc,KAAsB;IAC/D,OAAO,KAAK;SACT,KAAK,CAAC,KAAK,CAAC;SACZ,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"ent-query.js","sourceRoot":"","sources":["../../../src/ents/ent-query.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,UAAU,CAAc,KAAsB;IAC5D,OAAO,KAAK;SACT,KAAK,CAAC,KAAK,CAAC;SACZ,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC"}
@@ -24,7 +24,6 @@ export interface Ent {
24
24
  * should not look at each other's invalid state since it's cleared on update.
25
25
  */
26
26
  invalid?: boolean;
27
- loader?: Loader;
28
27
  name?: string;
29
28
  ninePatch?: NinePatch;
30
29
  override?: Override;
@@ -51,7 +50,7 @@ export type Cursor = {
51
50
  };
52
51
  export interface Draw {
53
52
  }
54
- export type DebugInput = true;
53
+ export type DebugInput = object;
55
54
  export type FPS = {
56
55
  prevFrames: number;
57
56
  next: {
@@ -65,8 +64,6 @@ export type HUD = {
65
64
  modulo: XY;
66
65
  origin: CompassDir;
67
66
  };
68
- export interface Loader {
69
- }
70
67
  export type NinePatch = {
71
68
  border: Border;
72
69
  pad: Border;
@@ -1 +1 @@
1
- {"version":3,"file":"ent.d.ts","sourceRoot":"","sources":["../../../src/ents/ent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ent.d.ts","sourceRoot":"","sources":["../../../src/ents/ent.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export interface Sys {
7
7
  * grouping is permitted.
8
8
  */
9
9
  query: string;
10
- querySet?: string[][];
11
10
  free?(ent: SysEnt<this>, v: Void): void;
12
11
  update?(ent: SysEnt<this>, v: Void): void;
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sys.d.ts","sourceRoot":"","sources":["../../../src/ents/sys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE5C,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAExD,MAAM,WAAW,GAAG;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACrB,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACvC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAC1C"}
1
+ {"version":3,"file":"sys.d.ts","sourceRoot":"","sources":["../../../src/ents/sys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE5C,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAExD,MAAM,WAAW,GAAG;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACvC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAC1C"}
@@ -1,24 +1,15 @@
1
1
  import type { Void } from '../void.ts';
2
- import { type CursorEnt } from './cursor.ts';
3
2
  import type { Ent } from './ent.ts';
4
3
  import { type EQL, type QueryEnt } from './ent-query.ts';
5
- import type { LoaderEnt } from './loader.ts';
6
4
  import type { Sys } from './sys.ts';
7
- /** ents are updated in insertion order. */
8
- export declare class Zoo {
9
- #private;
10
- add(...ents: readonly Ent[]): void;
11
- addDefaultSystems(): void;
12
- addSystem(systems: {
13
- readonly [component in keyof Ent]?: Sys;
14
- }): void;
15
- clear(): void;
16
- get cursor(): CursorEnt | undefined;
17
- get loader(): LoaderEnt;
18
- get invalid(): boolean;
19
- query<const Query>(query: EQL<Ent, Query>): IterableIterator<QueryEnt<Query>>;
20
- remove(...ents: readonly Readonly<Ent>[]): void;
21
- findById<T extends Ent>(id: string): T | undefined;
22
- update(v: Void): void;
5
+ export interface Zoo {
6
+ default: Set<Ent>;
23
7
  }
8
+ export type SysMap = {
9
+ [component in keyof Ent]?: Sys;
10
+ };
11
+ export declare function zooFindByID<T extends Ent>(ents: Iterable<Readonly<Ent>, undefined, undefined>, id: string): T | undefined;
12
+ export declare function zooQuery<const Query>(ents: Iterable<Ent, undefined, undefined>, query: EQL<Ent, Query>): IterableIterator<QueryEnt<Query>>;
13
+ export declare function zooUpdate(ents: Iterable<Ent, undefined, undefined>, systems: Readonly<SysMap>, v: Void): void;
14
+ export declare function zooValidate(ents: Iterable<Readonly<Ent>, undefined, undefined>, systems: Readonly<SysMap>): void;
24
15
  //# sourceMappingURL=zoo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoo.d.ts","sourceRoot":"","sources":["../../../src/ents/zoo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAC,KAAK,SAAS,EAAY,MAAM,aAAa,CAAA;AAErD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AACjC,OAAO,EAAC,KAAK,GAAG,EAAiB,KAAK,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAGrE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAI1C,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAGjC,2CAA2C;AAC3C,qBAAa,GAAG;;IAOd,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,IAAI;IASlC,iBAAiB,IAAI,IAAI;IAezB,SAAS,CAAC,OAAO,EAAE;QAAC,QAAQ,EAAE,SAAS,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG;KAAC,GAAG,IAAI;IAInE,KAAK,IAAI,IAAI;IAMb,IAAI,MAAM,IAAI,SAAS,GAAG,SAAS,CAElC;IAED,IAAI,MAAM,IAAI,SAAS,CAEtB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAEA,KAAK,CAAC,KAAK,CAAC,KAAK,EAChB,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GACrB,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAMpC,MAAM,CAAC,GAAG,IAAI,EAAE,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAO/C,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIlD,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;CAuBtB"}
1
+ {"version":3,"file":"zoo.d.ts","sourceRoot":"","sources":["../../../src/ents/zoo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AACjC,OAAO,EAAC,KAAK,GAAG,EAAc,KAAK,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AAEjC,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;CAClB;AACD,MAAM,MAAM,MAAM,GAAG;KAAE,SAAS,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG;CAAC,CAAA;AAGrD,wBAAgB,WAAW,CAAC,CAAC,SAAS,GAAG,EACvC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EACnD,EAAE,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AAED,wBAAiB,QAAQ,CAAC,KAAK,CAAC,KAAK,EACnC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,EACzC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GACrB,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAInC;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,EACzC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,CAAC,EAAE,IAAI,GACN,IAAI,CAQN;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EACnD,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,IAAI,CAKN"}
@@ -1,105 +1,42 @@
1
1
  import { debug } from "../utils/debug.js";
2
- import { ButtonSys } from "./button.js";
3
- import { CursorSys } from "./cursor.js";
4
- import { DebutInputSys } from "./debug-input.js";
5
- import { parseQuerySet } from "./ent-query.js";
6
- import { FPSSys } from "./fps.js";
7
- import { HUDSys } from "./hud.js";
8
- import { NinePatchSys } from "./nine-patch.js";
9
- import { OverrideSys } from "./override.js";
10
- import { SpriteSys } from "./sprite.js";
11
- import { TextWHSys, TextXYSys } from "./text.js";
12
- /** ents are updated in insertion order. */
13
- export class Zoo {
14
- #cursor;
15
- #loader;
16
- #ents = new Set();
17
- #systems = {};
18
- #invalid = false;
19
- add(...ents) {
20
- for (const ent of ents) {
21
- if (debug)
22
- this.#validateQueries(ent);
23
- this.#ents.add(ent);
24
- if (ent.cursor)
25
- this.#cursor = ent;
26
- else if (ent.loader)
27
- this.#loader = ent;
28
- }
29
- }
30
- addDefaultSystems() {
31
- this.addSystem({
32
- button: new ButtonSys(),
33
- cursor: new CursorSys(),
34
- debugInput: new DebutInputSys(),
35
- fps: new FPSSys(),
36
- hud: new HUDSys(),
37
- ninePatch: new NinePatchSys(),
38
- override: new OverrideSys(),
39
- sprite: new SpriteSys(),
40
- textWH: new TextWHSys(),
41
- textXY: new TextXYSys()
42
- });
43
- }
44
- addSystem(systems) {
45
- Object.assign(this.#systems, systems);
46
- }
47
- clear() {
48
- this.#cursor = undefined;
49
- this.#ents.clear(); // to-do: run free on all systems. don't clear loader.
50
- this.#systems = {};
51
- }
52
- get cursor() {
53
- return this.#cursor;
54
- }
55
- get loader() {
56
- return this.#loader;
57
- }
58
- get invalid() {
59
- return this.#invalid;
60
- }
61
- *query(query) {
62
- const querySet = parseQuerySet(query);
63
- for (const ent of this.#ents)
64
- if (queryEnt(ent, querySet))
65
- yield ent;
66
- }
67
- remove(...ents) {
68
- for (const ent of ents) {
69
- if (ent !== this.#loader)
70
- this.#ents.delete(ent);
71
- else if (ent === this.#cursor)
72
- this.#cursor = undefined;
73
- }
74
- }
75
- findById(id) {
76
- for (const ent of this.#ents)
77
- if (ent.id === id)
78
- return ent;
79
- }
80
- update(v) {
81
- this.#invalid = false;
82
- for (const ent of this.#ents) {
83
- for (const k in ent)
84
- this.#systems[k]?.update?.(ent, v);
85
- if (ent.invalid && debug?.invalid)
86
- console.debug('[invalid] ent update invalid', ent);
87
- this.#invalid ||= !!ent.invalid;
88
- ent.invalid = false;
89
- }
90
- }
91
- #validateQueries(ent) {
92
- for (const k in ent) {
93
- const sys = this.#systems[k];
94
- if (!sys)
95
- continue;
96
- sys.querySet ??= parseQuerySet(sys.query);
97
- if (!queryEnt(ent, sys.querySet))
98
- throw Error(`ent ${ent.id ?? ent.name ?? '?'} does not satisfy query: ${sys.query}`);
99
- }
2
+ import { parseQuery } from "./ent-query.js";
3
+ export function zooFindByID(ents, id) {
4
+ for (const ent of ents)
5
+ if (ent.id === id)
6
+ return ent;
7
+ }
8
+ export function* zooQuery(ents, query) {
9
+ const querySet = parseQuery(query);
10
+ for (const ent of ents)
11
+ if (queryEnt(ent, querySet))
12
+ yield ent;
13
+ }
14
+ export function zooUpdate(ents, systems, v) {
15
+ for (const ent of ents) {
16
+ for (const k in ent)
17
+ systems[k]?.update?.(ent, v);
18
+ if (ent.invalid && debug?.invalid)
19
+ console.debug('[invalid] ent update invalid', ent);
20
+ if (ent.invalid)
21
+ v.invalid = true;
22
+ ent.invalid = false;
100
23
  }
101
24
  }
25
+ export function zooValidate(ents, systems) {
26
+ const queries = {};
27
+ for (const [k, sys] of Object.entries(systems))
28
+ queries[k] = parseQuery(sys.query);
29
+ for (const ent of ents)
30
+ validateQueries(ent, queries);
31
+ }
102
32
  function queryEnt(ent, query) {
103
33
  return query.some(keys => keys.every(k => (k[0] === '!' ? !(k.slice(1) in ent) : k in ent)));
104
34
  }
35
+ function validateQueries(ent, queries) {
36
+ for (const k in ent) {
37
+ const query = queries[k];
38
+ if (query && !queryEnt(ent, query))
39
+ throw Error(`ent ${ent.id ?? ent.name ?? '?'} does not satisfy ${k} query ${query}`);
40
+ }
41
+ }
105
42
  //# sourceMappingURL=zoo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zoo.js","sourceRoot":"","sources":["../../../src/ents/zoo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zoo.js","sourceRoot":"","sources":["../../../src/ents/zoo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAA;AAGvC,OAAO,EAAW,UAAU,EAAgB,MAAM,gBAAgB,CAAA;AASlE,MAAM,UAAU,WAAW,CACzB,IAAmD,EACnD,EAAU;IAEV,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE;YAAE,OAAO,GAAQ,CAAA;AAC5D,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,QAAQ,CACvB,IAAyC,EACzC,KAAsB;IAEtB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI;QACpB,IAAI,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;YAAE,MAAM,GAAsB,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,IAAyC,EACzC,OAAyB,EACzB,CAAO;IAEP,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,OAAO,CAAC,CAAc,CAAC,EAAE,MAAM,EAAE,CAAC,GAAY,EAAE,CAAC,CAAC,CAAA;QACvE,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO;YAC/B,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAA;QACpD,IAAI,GAAG,CAAC,OAAO;YAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAA;QACjC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAmD,EACnD,OAAyB;IAEzB,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5C,OAAO,CAAC,CAAc,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,KAAkB,CAAC,CAAA;IAC9D,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,QAAQ,CACf,GAAkB,EAClB,KAAqC;IAErC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAClE,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CACtB,GAAkB,EAClB,OAA2B;IAE3B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAc,CAAC,CAAA;QACrC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;YAChC,MAAM,KAAK,CACT,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,qBAAqB,CAAC,UAAU,KAAK,EAAE,CACxE,CAAA;IACL,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AtlasJSON } from '../types/game-config.ts';
1
+ import type { AtlasJSON } from '../types/void-config.ts';
2
2
  import { type Anim, type Atlas } from './atlas.ts';
3
3
  export declare function parseAtlas(json: Readonly<AtlasJSON>): Atlas;
4
4
  /** @internal */
@@ -18,6 +18,10 @@ export type Atlas = {
18
18
  /** tag by `Anim.id`. */
19
19
  tags: Tag[];
20
20
  };
21
+ export interface AtlasMap {
22
+ /** the default atlas is available from the initial frame. */
23
+ default: Atlas;
24
+ }
21
25
  export type Anim = {
22
26
  /**
23
27
  * number of cels in a full animation cycle including cels extended for
@@ -1 +1 @@
1
- {"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../../src/graphics/atlas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,gFAAgF;AAChF,eAAO,MAAM,QAAQ,EAAE,MAAW,CAAA;AAClC,mCAAmC;AACnC,eAAO,MAAM,UAAU,EAAE,MAAuB,CAAA;AAChD,mBAAmB;AACnB,eAAO,MAAM,SAAS,EAAE,MAA0C,CAAA;AAElE,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE;SAAE,GAAG,IAAI,GAAG,GAAG,IAAI;KAAC,CAAA;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,wBAAwB;IACxB,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,IAAI,GAAG;IACjB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,mDAAmD;IACnD,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAA;IACT,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,kDAAkD;AAClD,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAEvC,MAAM,WAAW,SAAS;IAExB,IAAI,GAAG,MAAM,KAAK,MAAM,EAAE,CAAA;CAC3B"}
1
+ {"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../../src/graphics/atlas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAA;AACxC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,gFAAgF;AAChF,eAAO,MAAM,QAAQ,EAAE,MAAW,CAAA;AAClC,mCAAmC;AACnC,eAAO,MAAM,UAAU,EAAE,MAAuB,CAAA;AAChD,mBAAmB;AACnB,eAAO,MAAM,SAAS,EAAE,MAA0C,CAAA;AAElE,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE;SAAE,GAAG,IAAI,GAAG,GAAG,IAAI;KAAC,CAAA;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,wBAAwB;IACxB,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAED,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,OAAO,EAAE,KAAK,CAAA;CACf;AAED,MAAM,MAAM,IAAI,GAAG;IACjB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,mDAAmD;IACnD,OAAO,CAAC,EAAE,GAAG,CAAA;IACb,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAA;IACT,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,kDAAkD;AAClD,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAEvC,MAAM,WAAW,SAAS;IAExB,IAAI,GAAG,MAAM,KAAK,MAAM,EAAE,CAAA;CAC3B"}
@@ -1,4 +1,4 @@
1
- /** [0 (bottom), 15 (top)]; greater is above. */
1
+ /** [0 (bottom), 15 (top)]; lower is lower, greater is above. */
2
2
  export declare const Layer: {
3
3
  readonly Bottom: 0;
4
4
  readonly A: 1;
@@ -1 +1 @@
1
- {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CAiBR,CAAA;AACV,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAA;AAEtD,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,+BAA+B;AAC/B,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE/C"}
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CAiBR,CAAA;AACV,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAA;AAEtD,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,+BAA+B;AAC/B,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE/C"}
@@ -1,4 +1,4 @@
1
- /** [0 (bottom), 15 (top)]; greater is above. */
1
+ /** [0 (bottom), 15 (top)]; lower is lower, greater is above. */
2
2
  export const Layer = {
3
3
  Bottom: 0,
4
4
  A: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,CAAC;IACT,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACC,CAAA;AAGV,gDAAgD;AAChD,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,MAAc;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,CAAU,CAAA;AAC7E,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../src/graphics/layer.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,CAAC;IACT,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACC,CAAA;AAGV,gDAAgD;AAChD,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,MAAc;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAC,CAAU,CAAA;AAC7E,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,CAAA;AAC3B,CAAC"}
@@ -18,7 +18,7 @@ export declare class Renderer {
18
18
  /** number of clears performed. often used to count render passes. */
19
19
  clears: number;
20
20
  loseContext: WEBGL_lose_context | undefined;
21
- constructor(preloadAtlas: Readonly<Atlas>, canvas: HTMLCanvasElement, looper: {
21
+ constructor(atlas: Readonly<Atlas>, canvas: HTMLCanvasElement, looper: {
22
22
  readonly age: Millis;
23
23
  });
24
24
  clear(rgba: number): void;
@@ -28,7 +28,7 @@ export declare class Renderer {
28
28
  * true when context has changed since last draw and screen should be redrawn.
29
29
  */
30
30
  get invalid(): boolean;
31
- load(preloadAtlas: Readonly<HTMLImageElement> | undefined): void;
31
+ load(atlas: Readonly<HTMLImageElement> | undefined): void;
32
32
  predraw(cam: Readonly<Cam>): void;
33
33
  register(op: 'add' | 'remove'): this;
34
34
  setDepth(enable: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/graphics/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,KAAK,EAAE,EAAO,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AACjC,OAAO,EAAC,KAAK,GAAG,EAAE,MAAM,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAgB,KAAK,MAAM,EAAC,MAAM,aAAa,CAAA;AAItD,gBAAgB;AAChB,MAAM,MAAM,OAAO,GAAG;IAAC,EAAE,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAA;CAAC,CAAA;AAInE,qBAAa,QAAQ;;IACnB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAA6B;IAC5C,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAI;IAClB,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;gBAWzC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC7B,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAC;IAOhC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBzB,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAgCxC,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,GAAG,IAAI;IAKhE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;IA2BjC,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI;IASpC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAO/B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,gBAAgB;IAChB,QAAQ,IAAI,OAAO,GAAG,SAAS;CA8GhC;AAED,iBAAS,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,GAAG,GAAG,GAAG,SAAS,CAkBxE"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/graphics/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAC,KAAK,EAAE,EAAO,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAE5C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,UAAU,CAAA;AACjC,OAAO,EAAC,KAAK,GAAG,EAAE,MAAM,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAgB,KAAK,MAAM,EAAC,MAAM,aAAa,CAAA;AAItD,gBAAgB;AAChB,MAAM,MAAM,OAAO,GAAG;IAAC,EAAE,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAA;CAAC,CAAA;AAInE,qBAAa,QAAQ;;IACnB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAA6B;IAC5C,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAI;IAClB,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;gBAWzC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAC;IAOhC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBzB,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI;IAgCxC,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,GAAG,IAAI;IAKzD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;IA2BjC,QAAQ,CAAC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI;IASpC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAO/B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB,gBAAgB;IAChB,QAAQ,IAAI,OAAO,GAAG,SAAS;CA8GhC;AAED,iBAAS,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,GAAG,GAAG,GAAG,SAAS,CAkBxE"}