@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,443 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oidoid.github.io/void/level-file.v0.json",
4
+ "title": "void Level File Schema",
5
+ "type": "object",
6
+ "description": "a JSON representation of a void level file.",
7
+ "$defs": {
8
+ "Border": {
9
+ "description": "border area config.",
10
+ "oneOf": [
11
+ {"type": "integer", "minimum": 0},
12
+ {"$ref": "#/$defs/XY", "unevaluatedProperties": false},
13
+ {
14
+ "type": "object",
15
+ "unevaluatedProperties": false,
16
+ "properties": {
17
+ "n": {
18
+ "type": "integer",
19
+ "description": "north border height.",
20
+ "minimum": 0
21
+ },
22
+ "s": {
23
+ "type": "integer",
24
+ "description": "south border height.",
25
+ "minimum": 0
26
+ },
27
+ "w": {
28
+ "type": "integer",
29
+ "description": "west border width.",
30
+ "minimum": 0
31
+ },
32
+ "e": {
33
+ "type": "integer",
34
+ "description": "east border width.",
35
+ "minimum": 0
36
+ }
37
+ }
38
+ }
39
+ ]
40
+ },
41
+ "Button": {
42
+ "type": "object",
43
+ "description": "button config.",
44
+ "required": ["pressed", "selected"],
45
+ "properties": {
46
+ "pressed": {
47
+ "$ref": "#/$defs/SpriteProps",
48
+ "description": "pressed config.",
49
+ "unevaluatedProperties": false
50
+ },
51
+ "selected": {
52
+ "$ref": "#/$defs/SpriteProps",
53
+ "description": "selected config.",
54
+ "unevaluatedProperties": false
55
+ },
56
+ "type": {
57
+ "description": "whether to operate as push to engage or push to toggle.",
58
+ "enum": ["Button", "Toggle"]
59
+ },
60
+ "z": {"$ref": "#/$defs/Layer"}
61
+ }
62
+ },
63
+ "Cam": {
64
+ "type": "object",
65
+ "description": "cam config."
66
+ },
67
+ "CompassDir": {
68
+ "description": "cardinal and ordinal directions and center.",
69
+ "enum": ["Center", "N", "S", "W", "E", "NW", "NE", "SW", "SE"]
70
+ },
71
+ "Cursor": {
72
+ "type": "object",
73
+ "description": "cursor config.",
74
+ "properties": {
75
+ "keyboard": {
76
+ "$ref": "#/$defs/Speed",
77
+ "description": "if greater than zero, follow keyboard movement in pixels per second."
78
+ },
79
+ "pick": {
80
+ "$ref": "tags.json",
81
+ "description": "tag for click state. defaults to point tag."
82
+ }
83
+ }
84
+ },
85
+ "DebugInput": {"type": "object", "description": "debug input config."},
86
+ "Draw": {"type": "object", "description": "draw config."},
87
+ "Ent": {
88
+ "type": "object",
89
+ "description": "ent config.",
90
+ "properties": {
91
+ "button": {"$ref": "#/$defs/Button", "unevaluatedProperties": false},
92
+ "cam": {"$ref": "#/$defs/Cam", "unevaluatedProperties": false},
93
+ "cursor": {"$ref": "#/$defs/Cursor", "unevaluatedProperties": false},
94
+ "debugInput": {
95
+ "$ref": "#/$defs/DebugInput",
96
+ "unevaluatedProperties": false
97
+ },
98
+ "draw": {"$ref": "#/$defs/Draw", "unevaluatedProperties": false},
99
+ "fps": {"$ref": "#/$defs/FPS", "unevaluatedProperties": false},
100
+ "hud": {"$ref": "#/$defs/HUD", "unevaluatedProperties": false},
101
+ "id": {"type": "string", "description": "unique lookup identifier."},
102
+ "name": {"type": "string", "description": "debug identifier."},
103
+ "ninePatch": {
104
+ "$ref": "#/$defs/NinePatch",
105
+ "unevaluatedProperties": false
106
+ },
107
+ "override": {
108
+ "$ref": "#/$defs/Override",
109
+ "unevaluatedProperties": false
110
+ },
111
+ "sprite": {"$ref": "#/$defs/Sprite", "unevaluatedProperties": false},
112
+ "text": {"$ref": "#/$defs/Text"},
113
+ "textWH": {"$ref": "#/$defs/TextWH", "unevaluatedProperties": false},
114
+ "textXY": {"$ref": "#/$defs/TextXY", "unevaluatedProperties": false}
115
+ }
116
+ },
117
+ "EntList": {
118
+ "type": "array",
119
+ "description": "ents config.",
120
+ "items": {
121
+ "$ref": "schema.json#/$defs/Ent",
122
+ "unevaluatedProperties": false
123
+ },
124
+ "uniqueItemProperties": ["id"],
125
+ "$comment": "`uniqueItemProperties` is ajv-keywords only."
126
+ },
127
+ "FPS": {"type": "object", "description": "FPS config."},
128
+ "HUD": {
129
+ "type": "object",
130
+ "description": "HUD config.",
131
+ "required": ["origin"],
132
+ "properties": {
133
+ "fill": {
134
+ "$ref": "#/$defs/XYFlag",
135
+ "description": "whether to adjust the width or height to fill empty space."
136
+ },
137
+ "margin": {
138
+ "$ref": "#/$defs/Border",
139
+ "description": "spacing outside the sprite.",
140
+ "unevaluatedProperties": false
141
+ },
142
+ "modulo": {
143
+ "description": "mod margin. useful for snapping to tile.",
144
+ "oneOf": [
145
+ {"type": "integer", "minimum": 0},
146
+ {"$ref": "#/$defs/UIntXY", "unevaluatedProperties": false}
147
+ ]
148
+ },
149
+ "origin": {
150
+ "$ref": "#/$defs/CompassDir",
151
+ "description": "position relative to."
152
+ }
153
+ }
154
+ },
155
+ "IntXY": {
156
+ "$ref": "#/$defs/XY",
157
+ "properties": {"x": {"type": "integer"}, "y": {"type": "integer"}}
158
+ },
159
+ "Layer": {
160
+ "description": "z.",
161
+ "enum": [
162
+ "Bottom",
163
+ "A",
164
+ "B",
165
+ "C",
166
+ "D",
167
+ "E",
168
+ "F",
169
+ "G",
170
+ "UIA",
171
+ "UIB",
172
+ "UIC",
173
+ "UID",
174
+ "UIE",
175
+ "UIF",
176
+ "UIG",
177
+ "Top"
178
+ ]
179
+ },
180
+ "NinePatch": {
181
+ "type": "object",
182
+ "description": "nine patch config.",
183
+ "properties": {
184
+ "border": {
185
+ "$ref": "#/$defs/Border",
186
+ "description": "widths and heights of patches.",
187
+ "unevaluatedProperties": false
188
+ },
189
+ "pad": {
190
+ "$ref": "#/$defs/Border",
191
+ "description": "spacing between sprite and patches.",
192
+ "unevaluatedProperties": false
193
+ },
194
+ "patch": {
195
+ "type": "object",
196
+ "description": "sprite config.",
197
+ "unevaluatedProperties": false,
198
+ "properties": {
199
+ "center": {
200
+ "$ref": "#/$defs/SpriteProps",
201
+ "description": "center patch config.",
202
+ "unevaluatedProperties": false
203
+ },
204
+ "n": {
205
+ "$ref": "#/$defs/SpriteProps",
206
+ "description": "north patch config.",
207
+ "unevaluatedProperties": false
208
+ },
209
+ "s": {
210
+ "$ref": "#/$defs/SpriteProps",
211
+ "description": "south patch config.",
212
+ "unevaluatedProperties": false
213
+ },
214
+ "w": {
215
+ "$ref": "#/$defs/SpriteProps",
216
+ "description": "west patch config.",
217
+ "unevaluatedProperties": false
218
+ },
219
+ "e": {
220
+ "$ref": "#/$defs/SpriteProps",
221
+ "description": "east patch config.",
222
+ "unevaluatedProperties": false
223
+ },
224
+ "nw": {
225
+ "$ref": "#/$defs/SpriteProps",
226
+ "description": "northwest patch config.",
227
+ "unevaluatedProperties": false
228
+ },
229
+ "ne": {
230
+ "$ref": "#/$defs/SpriteProps",
231
+ "description": "northeast patch config.",
232
+ "unevaluatedProperties": false
233
+ },
234
+ "sw": {
235
+ "$ref": "#/$defs/SpriteProps",
236
+ "description": "southwest patch config.",
237
+ "unevaluatedProperties": false
238
+ },
239
+ "se": {
240
+ "$ref": "#/$defs/SpriteProps",
241
+ "description": "southeast patch config.",
242
+ "unevaluatedProperties": false
243
+ }
244
+ }
245
+ }
246
+ }
247
+ },
248
+ "Override": {
249
+ "type": "object",
250
+ "description": "override config.",
251
+ "properties": {
252
+ "invalid": {
253
+ "type": "boolean",
254
+ "description": "whether to recompute and render update."
255
+ }
256
+ }
257
+ },
258
+ "RGBA": {
259
+ "type": "string",
260
+ "description": "color (red, green, blue, alpha) in hex.",
261
+ "pattern": "^[A-Fa-f0-9]{8}$",
262
+ "examples": ["01234567"]
263
+ },
264
+ "Speed": {
265
+ "type": "number",
266
+ "description": "velocity in pixels per second."
267
+ },
268
+ "Sprite": {
269
+ "type": "object",
270
+ "description": "sprite config.",
271
+ "allOf": [
272
+ {"$ref": "#/$defs/SpriteProps"},
273
+ {"$ref": "#/$defs/WH"},
274
+ {"$ref": "#/$defs/XY"}
275
+ ],
276
+ "properties": {
277
+ "scale": {
278
+ "oneOf": [
279
+ {"type": "integer", "minimum": 1},
280
+ {
281
+ "$ref": "#/$defs/UIntXY",
282
+ "unevaluatedProperties": false,
283
+ "properties": {"x": {"minimum": 1}, "y": {"minimum": 1}}
284
+ }
285
+ ]
286
+ }
287
+ }
288
+ },
289
+ "SpritePool": {"type": "string", "description": "allocator pool."},
290
+ "SpriteProps": {
291
+ "description": "sprite config except box-related.",
292
+ "oneOf": [
293
+ {"$ref": "tags.json"},
294
+ {
295
+ "type": "object",
296
+ "properties": {
297
+ "flip": {"$ref": "#/$defs/XYFlag"},
298
+ "pool": {"$ref": "#/$defs/SpritePool"},
299
+ "stretch": {
300
+ "type": "boolean",
301
+ "description": "wrap texture (default) or stretch to width and height."
302
+ },
303
+ "tag": {"$ref": "tags.json"},
304
+ "visible": {
305
+ "type": "boolean",
306
+ "description": "whether sprite is rendered. defaults to true when tag is specified."
307
+ },
308
+ "z": {"$ref": "#/$defs/Layer"},
309
+ "zend": {
310
+ "type": "boolean",
311
+ "description": "z-order by top (default) or bottom of box."
312
+ }
313
+ }
314
+ }
315
+ ]
316
+ },
317
+ "Text": {"type": "string", "description": "string."},
318
+ "TextWH": {
319
+ "type": "object",
320
+ "description": "text WH config.",
321
+ "properties": {
322
+ "maxW": {
323
+ "type": "integer",
324
+ "description": "maximum width.",
325
+ "minimum": 0,
326
+ "maximum": 4095
327
+ },
328
+ "origin": {
329
+ "$ref": "#/$defs/CompassDir",
330
+ "description": "position relative to."
331
+ },
332
+ "pad": {
333
+ "$ref": "#/$defs/Border",
334
+ "description": "spacing between sprite and patches.",
335
+ "unevaluatedProperties": false
336
+ },
337
+ "scale": {
338
+ "type": "integer",
339
+ "description": "text scalar.",
340
+ "minimum": 1
341
+ },
342
+ "trim": {
343
+ "enum": ["Leading", "Descender"],
344
+ "description": "whether to cut the trailing line leading and descenders."
345
+ }
346
+ }
347
+ },
348
+ "TextXY": {
349
+ "type": "object",
350
+ "description": "text XY config.",
351
+ "properties": {"z": {"$ref": "#/$defs/Layer"}}
352
+ },
353
+ "UIntXY": {
354
+ "$ref": "#/$defs/IntXY",
355
+ "properties": {"x": {"minimum": 0}, "y": {"minimum": 0}}
356
+ },
357
+ "UnboundedUInt": {
358
+ "oneOf": [{"type": "integer", "minimum": 0}, {"enum": ["Infinity"]}]
359
+ },
360
+ "WH": {
361
+ "type": "object",
362
+ "description": "area.",
363
+ "properties": {
364
+ "w": {
365
+ "type": "integer",
366
+ "description": "width.",
367
+ "minimum": 0,
368
+ "maximum": 4095
369
+ },
370
+ "h": {
371
+ "type": "integer",
372
+ "description": "height.",
373
+ "minimum": 0,
374
+ "maximum": 4095
375
+ }
376
+ }
377
+ },
378
+ "XY": {
379
+ "type": "object",
380
+ "description": "horizontal and vertical dimensions.",
381
+ "properties": {
382
+ "x": {
383
+ "type": "number",
384
+ "description": "horizontal dimension.",
385
+ "minimum": -131072,
386
+ "maximum": 131071.984375,
387
+ "multipleOf": 0.015625
388
+ },
389
+ "y": {
390
+ "type": "number",
391
+ "description": "vertical dimension.",
392
+ "minimum": -131072,
393
+ "maximum": 131071.984375,
394
+ "multipleOf": 0.015625
395
+ }
396
+ }
397
+ },
398
+ "XYFlag": {
399
+ "description": "horizontal and vertical state.",
400
+ "enum": ["XY", "X", "Y"]
401
+ }
402
+ },
403
+ "unevaluatedProperties": false,
404
+ "required": ["zoo"],
405
+ "properties": {
406
+ "$schema": {
407
+ "type": "string",
408
+ "description": "the configuration schema URI.",
409
+ "default": "https://oidoid.github.io/void/level-file.v0.json"
410
+ },
411
+ "background": {
412
+ "$ref": "#/$defs/RGBA",
413
+ "description": "render clear color."
414
+ },
415
+ "minScale": {
416
+ "type": "number",
417
+ "description": "min cam scale.",
418
+ "minimum": 1
419
+ },
420
+ "minWH": {
421
+ "$ref": "#/$defs/WH",
422
+ "description": "min cam dimensions. infinity always uses min scale. defaults to infinity.",
423
+ "unevaluatedProperties": false,
424
+ "properties": {
425
+ "w": {"$ref": "#/$defs/UnboundedUInt"},
426
+ "h": {"$ref": "#/$defs/UnboundedUInt"}
427
+ }
428
+ },
429
+ "zoo": {
430
+ "type": "object",
431
+ "description": "zoo config.",
432
+ "required": ["default"],
433
+ "unevaluatedProperties": false,
434
+ "properties": {"default": {"$ref": "#/$defs/EntList"}},
435
+ "patternProperties": {".+": {"$ref": "#/$defs/EntList"}}
436
+ },
437
+ "zoomOut": {
438
+ "type": "number",
439
+ "description": "cam zoom offset.",
440
+ "minimum": 0
441
+ }
442
+ }
443
+ }