arx-convert 11.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +4 -0
  2. package/dist/amb/AMB.d.ts +1 -0
  3. package/dist/amb/AMB.js +1 -0
  4. package/dist/amb/AMB.js.map +1 -1
  5. package/dist/common/Color.js +1 -1
  6. package/dist/common/Color.js.map +1 -1
  7. package/dist/dlf/DLF.d.ts +1 -0
  8. package/dist/dlf/DLF.js +1 -0
  9. package/dist/dlf/DLF.js.map +1 -1
  10. package/dist/dlf/DlfHeader.d.ts +6 -3
  11. package/dist/dlf/DlfHeader.js +7 -7
  12. package/dist/dlf/DlfHeader.js.map +1 -1
  13. package/dist/dlf/Fog.d.ts +21 -3
  14. package/dist/dlf/Fog.js.map +1 -1
  15. package/dist/dlf/InteactiveObject.d.ts +4 -0
  16. package/dist/dlf/InteactiveObject.js.map +1 -1
  17. package/dist/dlf/ZoneAndPathHeader.d.ts +6 -2
  18. package/dist/dlf/ZoneAndPathHeader.js.map +1 -1
  19. package/dist/dlf/ZoneAndPathPoint.d.ts +3 -0
  20. package/dist/dlf/ZoneAndPathPoint.js +3 -0
  21. package/dist/dlf/ZoneAndPathPoint.js.map +1 -1
  22. package/dist/ftl/FTL.d.ts +1 -0
  23. package/dist/ftl/FTL.js +1 -0
  24. package/dist/ftl/FTL.js.map +1 -1
  25. package/dist/ftl/Face.d.ts +5 -1
  26. package/dist/ftl/Face.js +5 -1
  27. package/dist/ftl/Face.js.map +1 -1
  28. package/dist/fts/AnchorData.js +1 -1
  29. package/dist/fts/AnchorData.js.map +1 -1
  30. package/dist/fts/EPData.d.ts +2 -2
  31. package/dist/fts/EPData.js +4 -4
  32. package/dist/fts/EPData.js.map +1 -1
  33. package/dist/fts/FTS.d.ts +8 -2
  34. package/dist/fts/FTS.js +21 -1
  35. package/dist/fts/FTS.js.map +1 -1
  36. package/dist/fts/FtsHeader.js +1 -1
  37. package/dist/fts/FtsHeader.js.map +1 -1
  38. package/dist/fts/Polygon.d.ts +8 -5
  39. package/dist/fts/Polygon.js +23 -7
  40. package/dist/fts/Polygon.js.map +1 -1
  41. package/dist/fts/Portal.d.ts +1 -2
  42. package/dist/fts/Portal.js +6 -5
  43. package/dist/fts/Portal.js.map +1 -1
  44. package/dist/fts/RoomDistance.d.ts +3 -0
  45. package/dist/fts/RoomDistance.js +1 -1
  46. package/dist/fts/RoomDistance.js.map +1 -1
  47. package/dist/fts/TextureContainer.d.ts +3 -0
  48. package/dist/fts/TextureContainer.js.map +1 -1
  49. package/dist/fts/TextureVertex.d.ts +2 -0
  50. package/dist/fts/TextureVertex.js.map +1 -1
  51. package/dist/fts/helpers.d.ts +4 -0
  52. package/dist/fts/helpers.js +10 -0
  53. package/dist/fts/helpers.js.map +1 -1
  54. package/dist/llf/LLF.d.ts +4 -0
  55. package/dist/llf/LLF.js +1 -0
  56. package/dist/llf/LLF.js.map +1 -1
  57. package/dist/llf/Light.d.ts +8 -10
  58. package/dist/llf/Light.js.map +1 -1
  59. package/dist/llf/LlfHeader.d.ts +6 -3
  60. package/dist/llf/LlfHeader.js +7 -7
  61. package/dist/llf/LlfHeader.js.map +1 -1
  62. package/dist/tea/KeyFrame.d.ts +9 -1
  63. package/dist/tea/KeyFrame.js +9 -6
  64. package/dist/tea/KeyFrame.js.map +1 -1
  65. package/dist/tea/TEA.d.ts +1 -0
  66. package/dist/tea/TEA.js +1 -0
  67. package/dist/tea/TEA.js.map +1 -1
  68. package/package.json +1 -1
  69. package/schemas/amb.schema.json +123 -0
  70. package/schemas/dlf.schema.json +396 -0
  71. package/schemas/ftl.schema.json +248 -0
  72. package/schemas/fts.schema.json +422 -0
  73. package/schemas/llf.schema.json +169 -0
  74. package/schemas/tea.schema.json +151 -0
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://arx-tools.github.io/schemas/amb.schema.json",
4
+ "title": "AMB",
5
+ "description": "AMB (Ambience) format of Arx Fatalis interpreted as JSON by arx-convert",
6
+ "$defs": {
7
+ "uint32": {
8
+ "type": "integer",
9
+ "minimum": 0,
10
+ "maximum": 4294967295
11
+ },
12
+ "settings": {
13
+ "type": "object",
14
+ "properties": {
15
+ "min": {
16
+ "type": "number"
17
+ },
18
+ "max": {
19
+ "type": "number"
20
+ },
21
+ "interval": {
22
+ "description": "defined in milliseconds",
23
+ "$ref": "#/$defs/uint32"
24
+ },
25
+ "flags": {
26
+ "description": "see ArxSettingFlag for values",
27
+ "type": "integer",
28
+ "minimum": 0,
29
+ "maximum": 3
30
+ }
31
+ },
32
+ "required": [
33
+ "min",
34
+ "max",
35
+ "interval",
36
+ "flags"
37
+ ]
38
+ }
39
+ },
40
+ "type": "object",
41
+ "properties": {
42
+ "tracks": {
43
+ "type": "array",
44
+ "items": {
45
+ "type": "object",
46
+ "properties": {
47
+ "filename": {
48
+ "type": "string"
49
+ },
50
+ "flags": {
51
+ "description": "see ArxTrackFlags for values",
52
+ "type": "integer",
53
+ "minimum": 0,
54
+ "maximum": 63
55
+ },
56
+ "keys": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "object",
60
+ "properties": {
61
+ "start": {
62
+ "$ref": "#/$defs/uint32"
63
+ },
64
+ "loop": {
65
+ "description": "uint32 + 1",
66
+ "type": "integer",
67
+ "minimum": 1,
68
+ "maximum": 4294967296
69
+ },
70
+ "delayMin": {
71
+ "description": "defined in milliseconds",
72
+ "$ref": "#/$defs/uint32"
73
+ },
74
+ "delayMax": {
75
+ "description": "defined in milliseconds",
76
+ "$ref": "#/$defs/uint32"
77
+ },
78
+ "volume": {
79
+ "$ref": "#/$defs/settings"
80
+ },
81
+ "pitch": {
82
+ "$ref": "#/$defs/settings"
83
+ },
84
+ "pan": {
85
+ "$ref": "#/$defs/settings"
86
+ },
87
+ "x": {
88
+ "$ref": "#/$defs/settings"
89
+ },
90
+ "y": {
91
+ "$ref": "#/$defs/settings"
92
+ },
93
+ "z": {
94
+ "$ref": "#/$defs/settings"
95
+ }
96
+ },
97
+ "required": [
98
+ "start",
99
+ "loop",
100
+ "delayMin",
101
+ "delayMax",
102
+ "volume",
103
+ "pitch",
104
+ "pan",
105
+ "x",
106
+ "y",
107
+ "z"
108
+ ]
109
+ }
110
+ }
111
+ },
112
+ "required": [
113
+ "filename",
114
+ "flags",
115
+ "keys"
116
+ ]
117
+ }
118
+ }
119
+ },
120
+ "required": [
121
+ "tracks"
122
+ ]
123
+ }
@@ -0,0 +1,396 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://arx-tools.github.io/schemas/dlf.schema.json",
4
+ "title": "DLF",
5
+ "description": "DLF (Danae Level File) format of Arx Fatalis interpreted as JSON by arx-convert",
6
+ "$defs": {
7
+ "positiveInt32": {
8
+ "type": "integer",
9
+ "minimum": 0,
10
+ "maximum": 2147483647
11
+ },
12
+ "vector3": {
13
+ "type": "object",
14
+ "properties": {
15
+ "x": {
16
+ "type": "number"
17
+ },
18
+ "y": {
19
+ "type": "number"
20
+ },
21
+ "z": {
22
+ "type": "number"
23
+ }
24
+ },
25
+ "required": [
26
+ "x",
27
+ "y",
28
+ "z"
29
+ ]
30
+ },
31
+ "rotation": {
32
+ "description": "Euler angles in radians",
33
+ "type": "object",
34
+ "properties": {
35
+ "a": {
36
+ "description": "Euler angle defined in radian",
37
+ "type": "number"
38
+ },
39
+ "b": {
40
+ "description": "Euler angle defined in radian",
41
+ "type": "number"
42
+ },
43
+ "g": {
44
+ "description": "Euler angle defined in radian",
45
+ "type": "number"
46
+ }
47
+ },
48
+ "required": [
49
+ "a",
50
+ "b",
51
+ "g"
52
+ ]
53
+ },
54
+ "color": {
55
+ "type": "object",
56
+ "properties": {
57
+ "r": {
58
+ "$ref": "#/$defs/uint8"
59
+ },
60
+ "g": {
61
+ "$ref": "#/$defs/uint8"
62
+ },
63
+ "b": {
64
+ "$ref": "#/$defs/uint8"
65
+ },
66
+ "a": {
67
+ "description": "0.0 = fully transparent, 1.0 = fully opaque",
68
+ "type": "number",
69
+ "minimum": 0,
70
+ "maximum": 1
71
+ }
72
+ },
73
+ "required": [
74
+ "r",
75
+ "g",
76
+ "b",
77
+ "a"
78
+ ]
79
+ }
80
+ },
81
+ "type": "object",
82
+ "properties": {
83
+ "header": {
84
+ "type": "object",
85
+ "properties": {
86
+ "lastModifiedBy": {
87
+ "type": "string",
88
+ "maxLength": 256
89
+ },
90
+ "lastModifiedAt": {
91
+ "description": "Unix timestamp in seconds",
92
+ "$ref": "#/$defs/positiveInt32"
93
+ },
94
+ "posEdit": {
95
+ "$ref": "#/$defs/vector3"
96
+ },
97
+ "angleEdit": {
98
+ "$ref": "#/$defs/rotation"
99
+ },
100
+ "numberOfPolygonsInFTS": {
101
+ "$ref": "#/$defs/positiveInt32"
102
+ }
103
+ },
104
+ "required": [
105
+ "lastModifiedBy",
106
+ "lastModifiedAt",
107
+ "posEdit",
108
+ "angleEdit",
109
+ "numberOfPolygonsInFTS"
110
+ ]
111
+ },
112
+ "scene": {
113
+ "type": "object",
114
+ "properties": {
115
+ "levelIdx": {
116
+ "type": "integer",
117
+ "minimum": 0
118
+ }
119
+ },
120
+ "required": [
121
+ "levelIdx"
122
+ ]
123
+ },
124
+ "interactiveObjects": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "object",
128
+ "properties": {
129
+ "name": {
130
+ "type": "string",
131
+ "maxLength": 512
132
+ },
133
+ "pos": {
134
+ "$ref": "#/$defs/vector3"
135
+ },
136
+ "angle": {
137
+ "$ref": "#/$defs/rotation"
138
+ },
139
+ "identifier": {
140
+ "description": "Number at the end of entity ids: like the `56` in `goblin_base_0056`. No info on whether the game can handle identifiers larger than 4 digits.",
141
+ "type": "integer",
142
+ "minimum": 0,
143
+ "maximum": 9999
144
+ }
145
+ },
146
+ "required": [
147
+ "name",
148
+ "pos",
149
+ "angle",
150
+ "identifier"
151
+ ]
152
+ }
153
+ },
154
+ "fogs": {
155
+ "type": "array",
156
+ "items": {
157
+ "type": "object",
158
+ "properties": {
159
+ "pos": {
160
+ "$ref": "#/$defs/vector3"
161
+ },
162
+ "color": {
163
+ "$ref": "#/$defs/color"
164
+ },
165
+ "size": {
166
+ "type": "number",
167
+ "minimum": 0
168
+ },
169
+ "special": {
170
+ "anyOf": [
171
+ {
172
+ "const": 0
173
+ },
174
+ {
175
+ "description": "FOG_DIRECTIONAL",
176
+ "const": 1
177
+ }
178
+ ]
179
+ },
180
+ "scale": {
181
+ "type": "number",
182
+ "minimum": 0
183
+ },
184
+ "move": {
185
+ "description": "A normal vector, all axis are between -1 and 1",
186
+ "type": "object",
187
+ "properties": {
188
+ "x": {
189
+ "type": "number",
190
+ "minimum": -1,
191
+ "maximum": 1
192
+ },
193
+ "y": {
194
+ "type": "number",
195
+ "minimum": -1,
196
+ "maximum": 1
197
+ },
198
+ "z": {
199
+ "type": "number",
200
+ "minimum": -1,
201
+ "maximum": 1
202
+ }
203
+ },
204
+ "required": [
205
+ "x",
206
+ "y",
207
+ "z"
208
+ ]
209
+ },
210
+ "angle": {
211
+ "$ref": "#/$defs/rotation"
212
+ },
213
+ "speed": {
214
+ "description": "Movement speed of fog particles: \"move\" * (\"speed\" * 0.1)",
215
+ "type": "number",
216
+ "minimum": 0
217
+ },
218
+ "rotateSpeed": {
219
+ "description": "Particle rotation between 0 (stationary) and 1 (rotating as fast as the FPS allows)",
220
+ "type": "number",
221
+ "minimum": 0,
222
+ "maximum": 1
223
+ },
224
+ "toLive": {
225
+ "description": "How long each particle lives (fade in -> show -> fade out) in milliseconds",
226
+ "$ref": "#/$defs/positiveInt32"
227
+ },
228
+ "frequency": {
229
+ "description": "Whether to draw new fog particles is checked by creating a random number between 0 and 2000. If that random number is < frequency then a new particle is drawn. Having the frequency set to 2000 or above means spawning fog particles on every frame.",
230
+ "$ref": "#/$defs/positiveInt32"
231
+ }
232
+ },
233
+ "required": [
234
+ "pos",
235
+ "color",
236
+ "size",
237
+ "special",
238
+ "scale",
239
+ "move",
240
+ "angle",
241
+ "speed",
242
+ "rotateSpeed",
243
+ "toLive",
244
+ "frequency"
245
+ ]
246
+ }
247
+ },
248
+ "paths": {
249
+ "type": "array",
250
+ "items": {
251
+ "type": "object",
252
+ "properties": {
253
+ "name": {
254
+ "type": "string",
255
+ "maxLength": 64
256
+ },
257
+ "points": {
258
+ "type": "array",
259
+ "items": {
260
+ "type": "object",
261
+ "properties": {
262
+ "pos": {
263
+ "$ref": "#/$defs/vector3"
264
+ },
265
+ "type": {
266
+ "anyOf": [
267
+ {
268
+ "description": "ArxZoneAndPathPointType.Standard",
269
+ "const": 0
270
+ },
271
+ {
272
+ "description": "ArxZoneAndPathPointType.Bezier",
273
+ "const": 1
274
+ },
275
+ {
276
+ "description": "ArxZoneAndPathPointType.BezierControlPoint",
277
+ "const": 2
278
+ }
279
+ ]
280
+ },
281
+ "time": {
282
+ "$ref": "#/$defs/uint32"
283
+ }
284
+ },
285
+ "required": [
286
+ "pos",
287
+ "type",
288
+ "time"
289
+ ]
290
+ }
291
+ }
292
+ },
293
+ "required": [
294
+ "name",
295
+ "points"
296
+ ]
297
+ }
298
+ },
299
+ "zones": {
300
+ "type": "array",
301
+ "items": {
302
+ "type": "object",
303
+ "properties": {
304
+ "name": {
305
+ "type": "string",
306
+ "maxLength": 64
307
+ },
308
+ "height": {
309
+ "anyOf": [
310
+ {
311
+ "$ref": "#/$defs/positiveInt32"
312
+ },
313
+ {
314
+ "description": "The zone has infinite height",
315
+ "const": -1
316
+ }
317
+ ]
318
+ },
319
+ "backgroundColor": {
320
+ "$ref": "#/$defs/color"
321
+ },
322
+ "drawDistance": {
323
+ "type": "number",
324
+ "minimum": 0
325
+ },
326
+ "ambienceMaxVolume": {
327
+ "description": "A floating point number between 0 and 100.",
328
+ "type": "number",
329
+ "minimum": 0,
330
+ "maximum": 100
331
+ },
332
+ "ambience": {
333
+ "anyOf": [
334
+ {
335
+ "const": "NONE"
336
+ },
337
+ {
338
+ "description": "The filename of an amb file in \"sfx/ambiance/\" folder, for example \"ambient_gob_jail_main\".",
339
+ "type": "string",
340
+ "maxLength": 128
341
+ }
342
+ ]
343
+ },
344
+ "points": {
345
+ "type": "array",
346
+ "items": {
347
+ "type": "object",
348
+ "properties": {
349
+ "pos": {
350
+ "$ref": "#/$defs/vector3"
351
+ },
352
+ "type": {
353
+ "anyOf": [
354
+ {
355
+ "description": "ArxZoneAndPathPointType.Standard",
356
+ "const": 0
357
+ },
358
+ {
359
+ "description": "ArxZoneAndPathPointType.Bezier",
360
+ "const": 1
361
+ },
362
+ {
363
+ "description": "ArxZoneAndPathPointType.BezierControlPoint",
364
+ "const": 2
365
+ }
366
+ ]
367
+ },
368
+ "time": {
369
+ "$ref": "#/$defs/uint32"
370
+ }
371
+ },
372
+ "required": [
373
+ "pos",
374
+ "type",
375
+ "time"
376
+ ]
377
+ }
378
+ }
379
+ },
380
+ "required": [
381
+ "name",
382
+ "height",
383
+ "points"
384
+ ]
385
+ }
386
+ }
387
+ },
388
+ "required": [
389
+ "header",
390
+ "scene",
391
+ "interactiveObjects",
392
+ "fogs",
393
+ "paths",
394
+ "zones"
395
+ ]
396
+ }