@lewismoten/gamemaker-sandbox-engine 3.1.0 → 3.3.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 (108) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/NOTICE.md +58 -753
  3. package/README.md +94 -10
  4. package/dist/assets/{music.worklet-NqOeNo6T.js → music.worklet-aD2x7RRM.js} +23 -21
  5. package/dist/audio/cmfLoad.js +10 -0
  6. package/dist/audio/cmfPlayer.js +201 -0
  7. package/dist/audio/context.js +75 -0
  8. package/dist/audio/engine.js +173 -0
  9. package/dist/audio/mix.js +40 -0
  10. package/dist/audio/opl.js +245 -0
  11. package/dist/audio/output.js +40 -0
  12. package/dist/core/gameFiles.js +89 -0
  13. package/dist/engine/character.js +187 -0
  14. package/dist/engine/funcKeys.js +164 -0
  15. package/dist/engine/game.js +133 -0
  16. package/dist/engine/keys.js +68 -0
  17. package/dist/engine/machine.js +192 -0
  18. package/dist/engine/menus.js +135 -0
  19. package/dist/engine/monsters.js +259 -0
  20. package/dist/engine/playGain.js +10 -0
  21. package/dist/engine/playerLook.js +48 -0
  22. package/dist/engine/recorder.js +127 -0
  23. package/dist/engine/render.js +45 -0
  24. package/dist/engine/scene.js +324 -0
  25. package/dist/engine/scroll.js +79 -0
  26. package/dist/engine/showGraphic.js +107 -0
  27. package/dist/engine/slowPc.js +98 -0
  28. package/dist/engine/slowPcMusic.js +46 -0
  29. package/dist/engine/touch.js +61 -0
  30. package/dist/engine/world.js +205 -0
  31. package/dist/formats/binary.js +120 -0
  32. package/dist/formats/blocks.js +103 -0
  33. package/dist/formats/character.js +83 -0
  34. package/dist/formats/cmf.js +37 -0
  35. package/dist/formats/cmfEdit.js +154 -0
  36. package/dist/formats/cmfPreview.js +89 -0
  37. package/dist/formats/cmfSong.js +190 -0
  38. package/dist/formats/fli.js +340 -0
  39. package/dist/formats/fliFrames.js +34 -0
  40. package/dist/formats/fliLimits.js +54 -0
  41. package/dist/formats/game.js +198 -0
  42. package/dist/formats/gif.js +125 -0
  43. package/dist/formats/gifProgressive.js +99 -0
  44. package/dist/formats/graphicScripts.js +44 -0
  45. package/dist/formats/highscore.js +30 -0
  46. package/dist/formats/jpeg.js +359 -0
  47. package/dist/formats/map.js +38 -0
  48. package/dist/formats/monster.js +69 -0
  49. package/dist/formats/palette.js +58 -0
  50. package/dist/formats/recording.js +17 -0
  51. package/dist/formats/sound.js +44 -0
  52. package/dist/formats/voc.js +303 -0
  53. package/dist/gfx/colorVision.js +45 -0
  54. package/dist/gfx/cp437Glyphs.js +337 -0
  55. package/dist/gfx/font8x8.js +10 -0
  56. package/dist/gfx/screen.js +151 -0
  57. package/dist/index.js +15 -0
  58. package/dist/input/chords.js +46 -0
  59. package/dist/input/deskMouse.js +24 -0
  60. package/dist/input/keyboard.js +82 -0
  61. package/dist/input/scancodes.js +143 -0
  62. package/dist/player/fileExtensions.js +118 -0
  63. package/dist/player/patchRules.js +129 -0
  64. package/dist/player/patchTable.js +1753 -0
  65. package/dist/text/cp437.js +44 -0
  66. package/dist/types/audio/cmfPlayer.d.ts +1 -1
  67. package/dist/types/audio/engine.d.ts +21 -0
  68. package/dist/types/audio/mix.d.ts +14 -0
  69. package/dist/types/audio/music.worklet.d.ts +8 -0
  70. package/dist/types/engine/character.d.ts +3 -3
  71. package/dist/types/engine/funcKeys.d.ts +8 -6
  72. package/dist/types/engine/game.d.ts +9 -4
  73. package/dist/types/engine/keys.d.ts +2 -2
  74. package/dist/types/engine/machine.d.ts +8 -4
  75. package/dist/types/engine/menus.d.ts +4 -4
  76. package/dist/types/engine/monsters.d.ts +1 -1
  77. package/dist/types/engine/playerLook.d.ts +20 -2
  78. package/dist/types/engine/recorder.d.ts +8 -1
  79. package/dist/types/engine/render.d.ts +2 -2
  80. package/dist/types/engine/scene.d.ts +41 -9
  81. package/dist/types/engine/scroll.d.ts +9 -1
  82. package/dist/types/engine/showGraphic.d.ts +2 -2
  83. package/dist/types/engine/slowPc.d.ts +64 -2
  84. package/dist/types/engine/slowPcMusic.d.ts +18 -0
  85. package/dist/types/engine/touch.d.ts +2 -2
  86. package/dist/types/engine/world.d.ts +28 -6
  87. package/dist/types/formats/cmfEdit.d.ts +53 -0
  88. package/dist/types/formats/cmfPreview.d.ts +19 -0
  89. package/dist/types/formats/cmfSong.d.ts +74 -0
  90. package/dist/types/formats/fli.d.ts +11 -0
  91. package/dist/types/formats/fliFrames.d.ts +18 -0
  92. package/dist/types/formats/fliLimits.d.ts +13 -0
  93. package/dist/types/formats/game.d.ts +7 -0
  94. package/dist/types/formats/gif.d.ts +1 -1
  95. package/dist/types/formats/gifProgressive.d.ts +46 -0
  96. package/dist/types/formats/jpeg.d.ts +20 -0
  97. package/dist/types/gfx/colorVision.d.ts +26 -0
  98. package/dist/types/gfx/screen.d.ts +4 -0
  99. package/dist/types/index.d.ts +4 -0
  100. package/dist/types/input/keyboard.d.ts +1 -1
  101. package/dist/types/{dosPlayer → player}/patchRules.d.ts +1 -1
  102. package/dist/types/{dosPlayer → player}/patchTable.d.ts +8 -5
  103. package/dist/types/text/cp437.d.ts +6 -0
  104. package/package.json +322 -9
  105. package/dist/engine.js +0 -5436
  106. package/dist/types/engine/package.d.ts +0 -4
  107. /package/dist/types/{project → core}/gameFiles.d.ts +0 -0
  108. /package/dist/types/{dosPlayer → player}/fileExtensions.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lewismoten/gamemaker-sandbox-engine",
3
- "version": "3.1.0",
3
+ "version": "3.3.0",
4
4
  "description": "Browser engine for RSD Game-Maker games in their original DOS file formats",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,20 +9,333 @@
9
9
  },
10
10
  "type": "module",
11
11
  "license": "MIT",
12
- "files": ["dist", "README.md", "LICENSE", "NOTICE.md"],
12
+ "files": [
13
+ "dist",
14
+ "README.md",
15
+ "CHANGELOG.md",
16
+ "LICENSE",
17
+ "NOTICE.md"
18
+ ],
13
19
  "exports": {
14
20
  ".": {
15
- "types": "./dist/types/engine/package.d.ts",
16
- "import": "./dist/engine.js"
21
+ "types": "./dist/types/index.d.ts",
22
+ "gamemaker-source": "./src/index.ts",
23
+ "import": "./dist/index.js"
24
+ },
25
+ "./audio/cmfLoad": {
26
+ "types": "./dist/types/audio/cmfLoad.d.ts",
27
+ "gamemaker-source": "./src/audio/cmfLoad.ts",
28
+ "import": "./dist/audio/cmfLoad.js"
29
+ },
30
+ "./audio/cmfPlayer": {
31
+ "types": "./dist/types/audio/cmfPlayer.d.ts",
32
+ "gamemaker-source": "./src/audio/cmfPlayer.ts",
33
+ "import": "./dist/audio/cmfPlayer.js"
34
+ },
35
+ "./audio/context": {
36
+ "types": "./dist/types/audio/context.d.ts",
37
+ "gamemaker-source": "./src/audio/context.ts",
38
+ "import": "./dist/audio/context.js"
39
+ },
40
+ "./audio/engine": {
41
+ "types": "./dist/types/audio/engine.d.ts",
42
+ "gamemaker-source": "./src/audio/engine.ts",
43
+ "import": "./dist/audio/engine.js"
44
+ },
45
+ "./audio/opl": {
46
+ "types": "./dist/types/audio/opl.d.ts",
47
+ "gamemaker-source": "./src/audio/opl.ts",
48
+ "import": "./dist/audio/opl.js"
49
+ },
50
+ "./audio/mix": {
51
+ "types": "./dist/types/audio/mix.d.ts",
52
+ "gamemaker-source": "./src/audio/mix.ts",
53
+ "import": "./dist/audio/mix.js"
54
+ },
55
+ "./audio/output": {
56
+ "types": "./dist/types/audio/output.d.ts",
57
+ "gamemaker-source": "./src/audio/output.ts",
58
+ "import": "./dist/audio/output.js"
59
+ },
60
+ "./core/gameFiles": {
61
+ "types": "./dist/types/core/gameFiles.d.ts",
62
+ "gamemaker-source": "./src/core/gameFiles.ts",
63
+ "import": "./dist/core/gameFiles.js"
64
+ },
65
+ "./engine/character": {
66
+ "types": "./dist/types/engine/character.d.ts",
67
+ "gamemaker-source": "./src/engine/character.ts",
68
+ "import": "./dist/engine/character.js"
69
+ },
70
+ "./engine/funcKeys": {
71
+ "types": "./dist/types/engine/funcKeys.d.ts",
72
+ "gamemaker-source": "./src/engine/funcKeys.ts",
73
+ "import": "./dist/engine/funcKeys.js"
74
+ },
75
+ "./engine/game": {
76
+ "types": "./dist/types/engine/game.d.ts",
77
+ "gamemaker-source": "./src/engine/game.ts",
78
+ "import": "./dist/engine/game.js"
79
+ },
80
+ "./engine/keys": {
81
+ "types": "./dist/types/engine/keys.d.ts",
82
+ "gamemaker-source": "./src/engine/keys.ts",
83
+ "import": "./dist/engine/keys.js"
84
+ },
85
+ "./engine/machine": {
86
+ "types": "./dist/types/engine/machine.d.ts",
87
+ "gamemaker-source": "./src/engine/machine.ts",
88
+ "import": "./dist/engine/machine.js"
89
+ },
90
+ "./engine/menus": {
91
+ "types": "./dist/types/engine/menus.d.ts",
92
+ "gamemaker-source": "./src/engine/menus.ts",
93
+ "import": "./dist/engine/menus.js"
94
+ },
95
+ "./engine/monsters": {
96
+ "types": "./dist/types/engine/monsters.d.ts",
97
+ "gamemaker-source": "./src/engine/monsters.ts",
98
+ "import": "./dist/engine/monsters.js"
99
+ },
100
+ "./engine/playGain": {
101
+ "types": "./dist/types/engine/playGain.d.ts",
102
+ "gamemaker-source": "./src/engine/playGain.ts",
103
+ "import": "./dist/engine/playGain.js"
104
+ },
105
+ "./engine/playerLook": {
106
+ "types": "./dist/types/engine/playerLook.d.ts",
107
+ "gamemaker-source": "./src/engine/playerLook.ts",
108
+ "import": "./dist/engine/playerLook.js"
109
+ },
110
+ "./engine/recorder": {
111
+ "types": "./dist/types/engine/recorder.d.ts",
112
+ "gamemaker-source": "./src/engine/recorder.ts",
113
+ "import": "./dist/engine/recorder.js"
114
+ },
115
+ "./engine/render": {
116
+ "types": "./dist/types/engine/render.d.ts",
117
+ "gamemaker-source": "./src/engine/render.ts",
118
+ "import": "./dist/engine/render.js"
119
+ },
120
+ "./engine/scene": {
121
+ "types": "./dist/types/engine/scene.d.ts",
122
+ "gamemaker-source": "./src/engine/scene.ts",
123
+ "import": "./dist/engine/scene.js"
124
+ },
125
+ "./engine/scroll": {
126
+ "types": "./dist/types/engine/scroll.d.ts",
127
+ "gamemaker-source": "./src/engine/scroll.ts",
128
+ "import": "./dist/engine/scroll.js"
129
+ },
130
+ "./engine/showGraphic": {
131
+ "types": "./dist/types/engine/showGraphic.d.ts",
132
+ "gamemaker-source": "./src/engine/showGraphic.ts",
133
+ "import": "./dist/engine/showGraphic.js"
134
+ },
135
+ "./engine/slowPc": {
136
+ "types": "./dist/types/engine/slowPc.d.ts",
137
+ "gamemaker-source": "./src/engine/slowPc.ts",
138
+ "import": "./dist/engine/slowPc.js"
139
+ },
140
+ "./engine/slowPcMusic": {
141
+ "types": "./dist/types/engine/slowPcMusic.d.ts",
142
+ "gamemaker-source": "./src/engine/slowPcMusic.ts",
143
+ "import": "./dist/engine/slowPcMusic.js"
144
+ },
145
+ "./engine/touch": {
146
+ "types": "./dist/types/engine/touch.d.ts",
147
+ "gamemaker-source": "./src/engine/touch.ts",
148
+ "import": "./dist/engine/touch.js"
149
+ },
150
+ "./engine/world": {
151
+ "types": "./dist/types/engine/world.d.ts",
152
+ "gamemaker-source": "./src/engine/world.ts",
153
+ "import": "./dist/engine/world.js"
154
+ },
155
+ "./formats/binary": {
156
+ "types": "./dist/types/formats/binary.d.ts",
157
+ "gamemaker-source": "./src/formats/binary.ts",
158
+ "import": "./dist/formats/binary.js"
159
+ },
160
+ "./formats/blocks": {
161
+ "types": "./dist/types/formats/blocks.d.ts",
162
+ "gamemaker-source": "./src/formats/blocks.ts",
163
+ "import": "./dist/formats/blocks.js"
164
+ },
165
+ "./formats/character": {
166
+ "types": "./dist/types/formats/character.d.ts",
167
+ "gamemaker-source": "./src/formats/character.ts",
168
+ "import": "./dist/formats/character.js"
169
+ },
170
+ "./formats/cmf": {
171
+ "types": "./dist/types/formats/cmf.d.ts",
172
+ "gamemaker-source": "./src/formats/cmf.ts",
173
+ "import": "./dist/formats/cmf.js"
174
+ },
175
+ "./formats/cmfEdit": {
176
+ "types": "./dist/types/formats/cmfEdit.d.ts",
177
+ "gamemaker-source": "./src/formats/cmfEdit.ts",
178
+ "import": "./dist/formats/cmfEdit.js"
179
+ },
180
+ "./formats/cmfPreview": {
181
+ "types": "./dist/types/formats/cmfPreview.d.ts",
182
+ "gamemaker-source": "./src/formats/cmfPreview.ts",
183
+ "import": "./dist/formats/cmfPreview.js"
184
+ },
185
+ "./formats/cmfSong": {
186
+ "types": "./dist/types/formats/cmfSong.d.ts",
187
+ "gamemaker-source": "./src/formats/cmfSong.ts",
188
+ "import": "./dist/formats/cmfSong.js"
189
+ },
190
+ "./formats/fli": {
191
+ "types": "./dist/types/formats/fli.d.ts",
192
+ "gamemaker-source": "./src/formats/fli.ts",
193
+ "import": "./dist/formats/fli.js"
194
+ },
195
+ "./formats/fliFrames": {
196
+ "types": "./dist/types/formats/fliFrames.d.ts",
197
+ "gamemaker-source": "./src/formats/fliFrames.ts",
198
+ "import": "./dist/formats/fliFrames.js"
199
+ },
200
+ "./formats/fliLimits": {
201
+ "types": "./dist/types/formats/fliLimits.d.ts",
202
+ "gamemaker-source": "./src/formats/fliLimits.ts",
203
+ "import": "./dist/formats/fliLimits.js"
204
+ },
205
+ "./formats/game": {
206
+ "types": "./dist/types/formats/game.d.ts",
207
+ "gamemaker-source": "./src/formats/game.ts",
208
+ "import": "./dist/formats/game.js"
209
+ },
210
+ "./formats/gif": {
211
+ "types": "./dist/types/formats/gif.d.ts",
212
+ "gamemaker-source": "./src/formats/gif.ts",
213
+ "import": "./dist/formats/gif.js"
214
+ },
215
+ "./formats/gifProgressive": {
216
+ "types": "./dist/types/formats/gifProgressive.d.ts",
217
+ "gamemaker-source": "./src/formats/gifProgressive.ts",
218
+ "import": "./dist/formats/gifProgressive.js"
219
+ },
220
+ "./formats/graphicScripts": {
221
+ "types": "./dist/types/formats/graphicScripts.d.ts",
222
+ "gamemaker-source": "./src/formats/graphicScripts.ts",
223
+ "import": "./dist/formats/graphicScripts.js"
224
+ },
225
+ "./formats/highscore": {
226
+ "types": "./dist/types/formats/highscore.d.ts",
227
+ "gamemaker-source": "./src/formats/highscore.ts",
228
+ "import": "./dist/formats/highscore.js"
229
+ },
230
+ "./formats/jpeg": {
231
+ "types": "./dist/types/formats/jpeg.d.ts",
232
+ "gamemaker-source": "./src/formats/jpeg.ts",
233
+ "import": "./dist/formats/jpeg.js"
234
+ },
235
+ "./formats/map": {
236
+ "types": "./dist/types/formats/map.d.ts",
237
+ "gamemaker-source": "./src/formats/map.ts",
238
+ "import": "./dist/formats/map.js"
239
+ },
240
+ "./formats/monster": {
241
+ "types": "./dist/types/formats/monster.d.ts",
242
+ "gamemaker-source": "./src/formats/monster.ts",
243
+ "import": "./dist/formats/monster.js"
244
+ },
245
+ "./formats/palette": {
246
+ "types": "./dist/types/formats/palette.d.ts",
247
+ "gamemaker-source": "./src/formats/palette.ts",
248
+ "import": "./dist/formats/palette.js"
249
+ },
250
+ "./formats/recording": {
251
+ "types": "./dist/types/formats/recording.d.ts",
252
+ "gamemaker-source": "./src/formats/recording.ts",
253
+ "import": "./dist/formats/recording.js"
254
+ },
255
+ "./formats/sound": {
256
+ "types": "./dist/types/formats/sound.d.ts",
257
+ "gamemaker-source": "./src/formats/sound.ts",
258
+ "import": "./dist/formats/sound.js"
259
+ },
260
+ "./formats/voc": {
261
+ "types": "./dist/types/formats/voc.d.ts",
262
+ "gamemaker-source": "./src/formats/voc.ts",
263
+ "import": "./dist/formats/voc.js"
264
+ },
265
+ "./gfx/colorVision": {
266
+ "types": "./dist/types/gfx/colorVision.d.ts",
267
+ "gamemaker-source": "./src/gfx/colorVision.ts",
268
+ "import": "./dist/gfx/colorVision.js"
269
+ },
270
+ "./gfx/cp437Glyphs": {
271
+ "types": "./dist/types/gfx/cp437Glyphs.d.ts",
272
+ "gamemaker-source": "./src/gfx/cp437Glyphs.ts",
273
+ "import": "./dist/gfx/cp437Glyphs.js"
274
+ },
275
+ "./gfx/font8x8": {
276
+ "types": "./dist/types/gfx/font8x8.d.ts",
277
+ "gamemaker-source": "./src/gfx/font8x8.ts",
278
+ "import": "./dist/gfx/font8x8.js"
279
+ },
280
+ "./gfx/screen": {
281
+ "types": "./dist/types/gfx/screen.d.ts",
282
+ "gamemaker-source": "./src/gfx/screen.ts",
283
+ "import": "./dist/gfx/screen.js"
284
+ },
285
+ "./input/chords": {
286
+ "types": "./dist/types/input/chords.d.ts",
287
+ "gamemaker-source": "./src/input/chords.ts",
288
+ "import": "./dist/input/chords.js"
289
+ },
290
+ "./input/deskMouse": {
291
+ "types": "./dist/types/input/deskMouse.d.ts",
292
+ "gamemaker-source": "./src/input/deskMouse.ts",
293
+ "import": "./dist/input/deskMouse.js"
294
+ },
295
+ "./input/keyboard": {
296
+ "types": "./dist/types/input/keyboard.d.ts",
297
+ "gamemaker-source": "./src/input/keyboard.ts",
298
+ "import": "./dist/input/keyboard.js"
299
+ },
300
+ "./input/scancodes": {
301
+ "types": "./dist/types/input/scancodes.d.ts",
302
+ "gamemaker-source": "./src/input/scancodes.ts",
303
+ "import": "./dist/input/scancodes.js"
304
+ },
305
+ "./player/fileExtensions": {
306
+ "types": "./dist/types/player/fileExtensions.d.ts",
307
+ "gamemaker-source": "./src/player/fileExtensions.ts",
308
+ "import": "./dist/player/fileExtensions.js"
309
+ },
310
+ "./player/patchRules": {
311
+ "types": "./dist/types/player/patchRules.d.ts",
312
+ "gamemaker-source": "./src/player/patchRules.ts",
313
+ "import": "./dist/player/patchRules.js"
314
+ },
315
+ "./player/patchTable": {
316
+ "types": "./dist/types/player/patchTable.d.ts",
317
+ "gamemaker-source": "./src/player/patchTable.ts",
318
+ "import": "./dist/player/patchTable.js"
319
+ },
320
+ "./text/cp437": {
321
+ "types": "./dist/types/text/cp437.d.ts",
322
+ "gamemaker-source": "./src/text/cp437.ts",
323
+ "import": "./dist/text/cp437.js"
17
324
  }
18
325
  },
19
- "types": "./dist/types/engine/package.d.ts",
326
+ "types": "./dist/types/index.d.ts",
20
327
  "scripts": {
21
- "build": "vite build --config vite.config.ts && tsc -p tsconfig.build.json && cp ../../../LICENSE LICENSE && cp ../../../NOTICE.md NOTICE.md",
22
- "prepack": "npm run build"
328
+ "build": "node build.js",
329
+ "prepack": "npm run build",
330
+ "verify": "npm run build && node verify.js"
23
331
  },
24
332
  "devDependencies": {
25
333
  "typescript": "~5.9.0",
26
- "vite": "^7.1.0"
27
- }
334
+ "vite": "^7.1.0",
335
+ "@types/node": "^22.20.5"
336
+ },
337
+ "engines": {
338
+ "node": ">=22.12.0"
339
+ },
340
+ "author": "Lewis Moten"
28
341
  }