@quake2ts/game 0.0.1

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 (382) hide show
  1. package/dist/browser/index.global.js +6 -0
  2. package/dist/browser/index.global.js.map +1 -0
  3. package/dist/cjs/index.cjs +28688 -0
  4. package/dist/cjs/index.cjs.map +1 -0
  5. package/dist/esm/index.js +28477 -0
  6. package/dist/esm/index.js.map +1 -0
  7. package/dist/tsconfig.tsbuildinfo +1 -0
  8. package/dist/types/ai/constants.d.ts +51 -0
  9. package/dist/types/ai/constants.d.ts.map +1 -0
  10. package/dist/types/ai/index.d.ts +7 -0
  11. package/dist/types/ai/index.d.ts.map +1 -0
  12. package/dist/types/ai/monster.d.ts +7 -0
  13. package/dist/types/ai/monster.d.ts.map +1 -0
  14. package/dist/types/ai/movement.d.ts +47 -0
  15. package/dist/types/ai/movement.d.ts.map +1 -0
  16. package/dist/types/ai/movement_rogue.d.ts +18 -0
  17. package/dist/types/ai/movement_rogue.d.ts.map +1 -0
  18. package/dist/types/ai/noise.d.ts +12 -0
  19. package/dist/types/ai/noise.d.ts.map +1 -0
  20. package/dist/types/ai/perception.d.ts +23 -0
  21. package/dist/types/ai/perception.d.ts.map +1 -0
  22. package/dist/types/ai/rogue.d.ts +36 -0
  23. package/dist/types/ai/rogue.d.ts.map +1 -0
  24. package/dist/types/ai/spawn_utils.d.ts +6 -0
  25. package/dist/types/ai/spawn_utils.d.ts.map +1 -0
  26. package/dist/types/ai/targeting.d.ts +29 -0
  27. package/dist/types/ai/targeting.d.ts.map +1 -0
  28. package/dist/types/buttons.d.ts +2 -0
  29. package/dist/types/buttons.d.ts.map +1 -0
  30. package/dist/types/checksum.d.ts +11 -0
  31. package/dist/types/checksum.d.ts.map +1 -0
  32. package/dist/types/combat/armor.d.ts +39 -0
  33. package/dist/types/combat/armor.d.ts.map +1 -0
  34. package/dist/types/combat/damage.d.ts +60 -0
  35. package/dist/types/combat/damage.d.ts.map +1 -0
  36. package/dist/types/combat/damageFlags.d.ts +22 -0
  37. package/dist/types/combat/damageFlags.d.ts.map +1 -0
  38. package/dist/types/combat/damageMods.d.ts +80 -0
  39. package/dist/types/combat/damageMods.d.ts.map +1 -0
  40. package/dist/types/combat/index.d.ts +8 -0
  41. package/dist/types/combat/index.d.ts.map +1 -0
  42. package/dist/types/combat/obituary.d.ts +10 -0
  43. package/dist/types/combat/obituary.d.ts.map +1 -0
  44. package/dist/types/combat/specialDamage.d.ts +88 -0
  45. package/dist/types/combat/specialDamage.d.ts.map +1 -0
  46. package/dist/types/combat/weapon.d.ts +23 -0
  47. package/dist/types/combat/weapon.d.ts.map +1 -0
  48. package/dist/types/combat/weapons/animation.d.ts +18 -0
  49. package/dist/types/combat/weapons/animation.d.ts.map +1 -0
  50. package/dist/types/combat/weapons/bfg.d.ts +4 -0
  51. package/dist/types/combat/weapons/bfg.d.ts.map +1 -0
  52. package/dist/types/combat/weapons/blaster.d.ts +4 -0
  53. package/dist/types/combat/weapons/blaster.d.ts.map +1 -0
  54. package/dist/types/combat/weapons/chainfist.d.ts +9 -0
  55. package/dist/types/combat/weapons/chainfist.d.ts.map +1 -0
  56. package/dist/types/combat/weapons/chaingun.d.ts +4 -0
  57. package/dist/types/combat/weapons/chaingun.d.ts.map +1 -0
  58. package/dist/types/combat/weapons/common.d.ts +10 -0
  59. package/dist/types/combat/weapons/common.d.ts.map +1 -0
  60. package/dist/types/combat/weapons/firing.d.ts +29 -0
  61. package/dist/types/combat/weapons/firing.d.ts.map +1 -0
  62. package/dist/types/combat/weapons/frames.d.ts +51 -0
  63. package/dist/types/combat/weapons/frames.d.ts.map +1 -0
  64. package/dist/types/combat/weapons/grenade.d.ts +4 -0
  65. package/dist/types/combat/weapons/grenade.d.ts.map +1 -0
  66. package/dist/types/combat/weapons/grenadelauncher.d.ts +4 -0
  67. package/dist/types/combat/weapons/grenadelauncher.d.ts.map +1 -0
  68. package/dist/types/combat/weapons/hyperblaster.d.ts +4 -0
  69. package/dist/types/combat/weapons/hyperblaster.d.ts.map +1 -0
  70. package/dist/types/combat/weapons/machinegun.d.ts +4 -0
  71. package/dist/types/combat/weapons/machinegun.d.ts.map +1 -0
  72. package/dist/types/combat/weapons/projectSource.d.ts +17 -0
  73. package/dist/types/combat/weapons/projectSource.d.ts.map +1 -0
  74. package/dist/types/combat/weapons/railgun.d.ts +4 -0
  75. package/dist/types/combat/weapons/railgun.d.ts.map +1 -0
  76. package/dist/types/combat/weapons/registry.d.ts +16 -0
  77. package/dist/types/combat/weapons/registry.d.ts.map +1 -0
  78. package/dist/types/combat/weapons/rocket.d.ts +4 -0
  79. package/dist/types/combat/weapons/rocket.d.ts.map +1 -0
  80. package/dist/types/combat/weapons/rogue.d.ts +10 -0
  81. package/dist/types/combat/weapons/rogue.d.ts.map +1 -0
  82. package/dist/types/combat/weapons/shotgun.d.ts +4 -0
  83. package/dist/types/combat/weapons/shotgun.d.ts.map +1 -0
  84. package/dist/types/combat/weapons/state.d.ts +19 -0
  85. package/dist/types/combat/weapons/state.d.ts.map +1 -0
  86. package/dist/types/combat/weapons/supershotgun.d.ts +4 -0
  87. package/dist/types/combat/weapons/supershotgun.d.ts.map +1 -0
  88. package/dist/types/combat/weapons/switching.d.ts +16 -0
  89. package/dist/types/combat/weapons/switching.d.ts.map +1 -0
  90. package/dist/types/combat/weapons/trap.d.ts +4 -0
  91. package/dist/types/combat/weapons/trap.d.ts.map +1 -0
  92. package/dist/types/demo/serializer.d.ts +10 -0
  93. package/dist/types/demo/serializer.d.ts.map +1 -0
  94. package/dist/types/dm/chat.d.ts +4 -0
  95. package/dist/types/dm/chat.d.ts.map +1 -0
  96. package/dist/types/dm/game.d.ts +7 -0
  97. package/dist/types/dm/game.d.ts.map +1 -0
  98. package/dist/types/dm/scoreboard.d.ts +15 -0
  99. package/dist/types/dm/scoreboard.d.ts.map +1 -0
  100. package/dist/types/dm/telefrag.d.ts +2 -0
  101. package/dist/types/dm/telefrag.d.ts.map +1 -0
  102. package/dist/types/editor/analysis.d.ts +20 -0
  103. package/dist/types/editor/analysis.d.ts.map +1 -0
  104. package/dist/types/editor/graph.d.ts +19 -0
  105. package/dist/types/editor/graph.d.ts.map +1 -0
  106. package/dist/types/editor/metadata.d.ts +31 -0
  107. package/dist/types/editor/metadata.d.ts.map +1 -0
  108. package/dist/types/editor/search.d.ts +9 -0
  109. package/dist/types/editor/search.d.ts.map +1 -0
  110. package/dist/types/editor/selection.d.ts +19 -0
  111. package/dist/types/editor/selection.d.ts.map +1 -0
  112. package/dist/types/entities/callbacks.d.ts +6 -0
  113. package/dist/types/entities/callbacks.d.ts.map +1 -0
  114. package/dist/types/entities/camera.d.ts +6 -0
  115. package/dist/types/entities/camera.d.ts.map +1 -0
  116. package/dist/types/entities/entity.d.ts +375 -0
  117. package/dist/types/entities/entity.d.ts.map +1 -0
  118. package/dist/types/entities/enums.d.ts +117 -0
  119. package/dist/types/entities/enums.d.ts.map +1 -0
  120. package/dist/types/entities/funcs.d.ts +13 -0
  121. package/dist/types/entities/funcs.d.ts.map +1 -0
  122. package/dist/types/entities/gibs.d.ts +20 -0
  123. package/dist/types/entities/gibs.d.ts.map +1 -0
  124. package/dist/types/entities/index.d.ts +9 -0
  125. package/dist/types/entities/index.d.ts.map +1 -0
  126. package/dist/types/entities/items/ammo.d.ts +5 -0
  127. package/dist/types/entities/items/ammo.d.ts.map +1 -0
  128. package/dist/types/entities/items/armor.d.ts +5 -0
  129. package/dist/types/entities/items/armor.d.ts.map +1 -0
  130. package/dist/types/entities/items/common.d.ts +5 -0
  131. package/dist/types/entities/items/common.d.ts.map +1 -0
  132. package/dist/types/entities/items/foodcube.d.ts +4 -0
  133. package/dist/types/entities/items/foodcube.d.ts.map +1 -0
  134. package/dist/types/entities/items/health.d.ts +5 -0
  135. package/dist/types/entities/items/health.d.ts.map +1 -0
  136. package/dist/types/entities/items/index.d.ts +8 -0
  137. package/dist/types/entities/items/index.d.ts.map +1 -0
  138. package/dist/types/entities/items/keys.d.ts +5 -0
  139. package/dist/types/entities/items/keys.d.ts.map +1 -0
  140. package/dist/types/entities/items/powerArmor.d.ts +5 -0
  141. package/dist/types/entities/items/powerArmor.d.ts.map +1 -0
  142. package/dist/types/entities/items/powerups.d.ts +5 -0
  143. package/dist/types/entities/items/powerups.d.ts.map +1 -0
  144. package/dist/types/entities/items/weapons.d.ts +5 -0
  145. package/dist/types/entities/items/weapons.d.ts.map +1 -0
  146. package/dist/types/entities/items.d.ts +5 -0
  147. package/dist/types/entities/items.d.ts.map +1 -0
  148. package/dist/types/entities/lights.d.ts +3 -0
  149. package/dist/types/entities/lights.d.ts.map +1 -0
  150. package/dist/types/entities/misc/decorative.d.ts +7 -0
  151. package/dist/types/entities/misc/decorative.d.ts.map +1 -0
  152. package/dist/types/entities/misc/flyers.d.ts +6 -0
  153. package/dist/types/entities/misc/flyers.d.ts.map +1 -0
  154. package/dist/types/entities/misc/more_misc.d.ts +12 -0
  155. package/dist/types/entities/misc/more_misc.d.ts.map +1 -0
  156. package/dist/types/entities/misc/viperMissile.d.ts +3 -0
  157. package/dist/types/entities/misc/viperMissile.d.ts.map +1 -0
  158. package/dist/types/entities/misc.d.ts +4 -0
  159. package/dist/types/entities/misc.d.ts.map +1 -0
  160. package/dist/types/entities/monsters/actor.d.ts +6 -0
  161. package/dist/types/entities/monsters/actor.d.ts.map +1 -0
  162. package/dist/types/entities/monsters/arachnid.d.ts +5 -0
  163. package/dist/types/entities/monsters/arachnid.d.ts.map +1 -0
  164. package/dist/types/entities/monsters/attack.d.ts +19 -0
  165. package/dist/types/entities/monsters/attack.d.ts.map +1 -0
  166. package/dist/types/entities/monsters/berserk.d.ts +5 -0
  167. package/dist/types/entities/monsters/berserk.d.ts.map +1 -0
  168. package/dist/types/entities/monsters/boss2.d.ts +5 -0
  169. package/dist/types/entities/monsters/boss2.d.ts.map +1 -0
  170. package/dist/types/entities/monsters/brain.d.ts +5 -0
  171. package/dist/types/entities/monsters/brain.d.ts.map +1 -0
  172. package/dist/types/entities/monsters/chick.d.ts +5 -0
  173. package/dist/types/entities/monsters/chick.d.ts.map +1 -0
  174. package/dist/types/entities/monsters/common.d.ts +33 -0
  175. package/dist/types/entities/monsters/common.d.ts.map +1 -0
  176. package/dist/types/entities/monsters/fixbot.d.ts +5 -0
  177. package/dist/types/entities/monsters/fixbot.d.ts.map +1 -0
  178. package/dist/types/entities/monsters/flipper.d.ts +5 -0
  179. package/dist/types/entities/monsters/flipper.d.ts.map +1 -0
  180. package/dist/types/entities/monsters/floater.d.ts +5 -0
  181. package/dist/types/entities/monsters/floater.d.ts.map +1 -0
  182. package/dist/types/entities/monsters/flyer.d.ts +7 -0
  183. package/dist/types/entities/monsters/flyer.d.ts.map +1 -0
  184. package/dist/types/entities/monsters/gekk.d.ts +5 -0
  185. package/dist/types/entities/monsters/gekk.d.ts.map +1 -0
  186. package/dist/types/entities/monsters/gladiator.d.ts +5 -0
  187. package/dist/types/entities/monsters/gladiator.d.ts.map +1 -0
  188. package/dist/types/entities/monsters/guardian.d.ts +5 -0
  189. package/dist/types/entities/monsters/guardian.d.ts.map +1 -0
  190. package/dist/types/entities/monsters/gunner.d.ts +5 -0
  191. package/dist/types/entities/monsters/gunner.d.ts.map +1 -0
  192. package/dist/types/entities/monsters/gunnerCommander.d.ts +5 -0
  193. package/dist/types/entities/monsters/gunnerCommander.d.ts.map +1 -0
  194. package/dist/types/entities/monsters/hover.d.ts +5 -0
  195. package/dist/types/entities/monsters/hover.d.ts.map +1 -0
  196. package/dist/types/entities/monsters/icarus.d.ts +5 -0
  197. package/dist/types/entities/monsters/icarus.d.ts.map +1 -0
  198. package/dist/types/entities/monsters/index.d.ts +3 -0
  199. package/dist/types/entities/monsters/index.d.ts.map +1 -0
  200. package/dist/types/entities/monsters/infantry.d.ts +5 -0
  201. package/dist/types/entities/monsters/infantry.d.ts.map +1 -0
  202. package/dist/types/entities/monsters/insane.d.ts +5 -0
  203. package/dist/types/entities/monsters/insane.d.ts.map +1 -0
  204. package/dist/types/entities/monsters/jorg.d.ts +5 -0
  205. package/dist/types/entities/monsters/jorg.d.ts.map +1 -0
  206. package/dist/types/entities/monsters/makron.d.ts +5 -0
  207. package/dist/types/entities/monsters/makron.d.ts.map +1 -0
  208. package/dist/types/entities/monsters/medic.d.ts +6 -0
  209. package/dist/types/entities/monsters/medic.d.ts.map +1 -0
  210. package/dist/types/entities/monsters/mutant.d.ts +5 -0
  211. package/dist/types/entities/monsters/mutant.d.ts.map +1 -0
  212. package/dist/types/entities/monsters/parasite.d.ts +5 -0
  213. package/dist/types/entities/monsters/parasite.d.ts.map +1 -0
  214. package/dist/types/entities/monsters/rogue/carrier.d.ts +5 -0
  215. package/dist/types/entities/monsters/rogue/carrier.d.ts.map +1 -0
  216. package/dist/types/entities/monsters/rogue/common.d.ts +11 -0
  217. package/dist/types/entities/monsters/rogue/common.d.ts.map +1 -0
  218. package/dist/types/entities/monsters/rogue/stalker.d.ts +5 -0
  219. package/dist/types/entities/monsters/rogue/stalker.d.ts.map +1 -0
  220. package/dist/types/entities/monsters/rogue/widow.d.ts +5 -0
  221. package/dist/types/entities/monsters/rogue/widow.d.ts.map +1 -0
  222. package/dist/types/entities/monsters/rogue/widow2.d.ts +3 -0
  223. package/dist/types/entities/monsters/rogue/widow2.d.ts.map +1 -0
  224. package/dist/types/entities/monsters/shambler.d.ts +5 -0
  225. package/dist/types/entities/monsters/shambler.d.ts.map +1 -0
  226. package/dist/types/entities/monsters/soldier.d.ts +11 -0
  227. package/dist/types/entities/monsters/soldier.d.ts.map +1 -0
  228. package/dist/types/entities/monsters/supertank.d.ts +5 -0
  229. package/dist/types/entities/monsters/supertank.d.ts.map +1 -0
  230. package/dist/types/entities/monsters/tank.d.ts +5 -0
  231. package/dist/types/entities/monsters/tank.d.ts.map +1 -0
  232. package/dist/types/entities/monsters/tankCommander.d.ts +5 -0
  233. package/dist/types/entities/monsters/tankCommander.d.ts.map +1 -0
  234. package/dist/types/entities/monsters/turret.d.ts +5 -0
  235. package/dist/types/entities/monsters/turret.d.ts.map +1 -0
  236. package/dist/types/entities/paths.d.ts +3 -0
  237. package/dist/types/entities/paths.d.ts.map +1 -0
  238. package/dist/types/entities/player.d.ts +8 -0
  239. package/dist/types/entities/player.d.ts.map +1 -0
  240. package/dist/types/entities/playerStats.d.ts +3 -0
  241. package/dist/types/entities/playerStats.d.ts.map +1 -0
  242. package/dist/types/entities/player_anim.d.ts +50 -0
  243. package/dist/types/entities/player_anim.d.ts.map +1 -0
  244. package/dist/types/entities/pool.d.ts +28 -0
  245. package/dist/types/entities/pool.d.ts.map +1 -0
  246. package/dist/types/entities/projectiles/prox.d.ts +5 -0
  247. package/dist/types/entities/projectiles/prox.d.ts.map +1 -0
  248. package/dist/types/entities/projectiles/trap.d.ts +7 -0
  249. package/dist/types/entities/projectiles/trap.d.ts.map +1 -0
  250. package/dist/types/entities/projectiles.d.ts +22 -0
  251. package/dist/types/entities/projectiles.d.ts.map +1 -0
  252. package/dist/types/entities/selection.d.ts +73 -0
  253. package/dist/types/entities/selection.d.ts.map +1 -0
  254. package/dist/types/entities/spatial.d.ts +15 -0
  255. package/dist/types/entities/spatial.d.ts.map +1 -0
  256. package/dist/types/entities/spawn.d.ts +33 -0
  257. package/dist/types/entities/spawn.d.ts.map +1 -0
  258. package/dist/types/entities/spawngro.d.ts +3 -0
  259. package/dist/types/entities/spawngro.d.ts.map +1 -0
  260. package/dist/types/entities/system.d.ts +130 -0
  261. package/dist/types/entities/system.d.ts.map +1 -0
  262. package/dist/types/entities/target/speaker.d.ts +3 -0
  263. package/dist/types/entities/target/speaker.d.ts.map +1 -0
  264. package/dist/types/entities/targets.d.ts +3 -0
  265. package/dist/types/entities/targets.d.ts.map +1 -0
  266. package/dist/types/entities/templates.d.ts +45 -0
  267. package/dist/types/entities/templates.d.ts.map +1 -0
  268. package/dist/types/entities/thinkScheduler.d.ts +14 -0
  269. package/dist/types/entities/thinkScheduler.d.ts.map +1 -0
  270. package/dist/types/entities/triggers/always.d.ts +3 -0
  271. package/dist/types/entities/triggers/always.d.ts.map +1 -0
  272. package/dist/types/entities/triggers/bad_area.d.ts +3 -0
  273. package/dist/types/entities/triggers/bad_area.d.ts.map +1 -0
  274. package/dist/types/entities/triggers/common.d.ts +14 -0
  275. package/dist/types/entities/triggers/common.d.ts.map +1 -0
  276. package/dist/types/entities/triggers/counter.d.ts +3 -0
  277. package/dist/types/entities/triggers/counter.d.ts.map +1 -0
  278. package/dist/types/entities/triggers/elevator.d.ts +3 -0
  279. package/dist/types/entities/triggers/elevator.d.ts.map +1 -0
  280. package/dist/types/entities/triggers/flashlight.d.ts +3 -0
  281. package/dist/types/entities/triggers/flashlight.d.ts.map +1 -0
  282. package/dist/types/entities/triggers/fog.d.ts +2 -0
  283. package/dist/types/entities/triggers/fog.d.ts.map +1 -0
  284. package/dist/types/entities/triggers/gravity.d.ts +3 -0
  285. package/dist/types/entities/triggers/gravity.d.ts.map +1 -0
  286. package/dist/types/entities/triggers/hurt.d.ts +3 -0
  287. package/dist/types/entities/triggers/hurt.d.ts.map +1 -0
  288. package/dist/types/entities/triggers/index.d.ts +3 -0
  289. package/dist/types/entities/triggers/index.d.ts.map +1 -0
  290. package/dist/types/entities/triggers/key.d.ts +3 -0
  291. package/dist/types/entities/triggers/key.d.ts.map +1 -0
  292. package/dist/types/entities/triggers/look.d.ts +3 -0
  293. package/dist/types/entities/triggers/look.d.ts.map +1 -0
  294. package/dist/types/entities/triggers/monsterjump.d.ts +3 -0
  295. package/dist/types/entities/triggers/monsterjump.d.ts.map +1 -0
  296. package/dist/types/entities/triggers/multiple.d.ts +6 -0
  297. package/dist/types/entities/triggers/multiple.d.ts.map +1 -0
  298. package/dist/types/entities/triggers/once.d.ts +3 -0
  299. package/dist/types/entities/triggers/once.d.ts.map +1 -0
  300. package/dist/types/entities/triggers/push.d.ts +3 -0
  301. package/dist/types/entities/triggers/push.d.ts.map +1 -0
  302. package/dist/types/entities/triggers/relay.d.ts +3 -0
  303. package/dist/types/entities/triggers/relay.d.ts.map +1 -0
  304. package/dist/types/entities/triggers/secret.d.ts +3 -0
  305. package/dist/types/entities/triggers/secret.d.ts.map +1 -0
  306. package/dist/types/entities/triggers/teleport.d.ts +3 -0
  307. package/dist/types/entities/triggers/teleport.d.ts.map +1 -0
  308. package/dist/types/entities/utils.d.ts +12 -0
  309. package/dist/types/entities/utils.d.ts.map +1 -0
  310. package/dist/types/entities/worldspawn.d.ts +5 -0
  311. package/dist/types/entities/worldspawn.d.ts.map +1 -0
  312. package/dist/types/imports.d.ts +53 -0
  313. package/dist/types/imports.d.ts.map +1 -0
  314. package/dist/types/index.d.ts +124 -0
  315. package/dist/types/index.d.ts.map +1 -0
  316. package/dist/types/inventory/ammo.d.ts +35 -0
  317. package/dist/types/inventory/ammo.d.ts.map +1 -0
  318. package/dist/types/inventory/give.d.ts +3 -0
  319. package/dist/types/inventory/give.d.ts.map +1 -0
  320. package/dist/types/inventory/index.d.ts +5 -0
  321. package/dist/types/inventory/index.d.ts.map +1 -0
  322. package/dist/types/inventory/items.d.ts +51 -0
  323. package/dist/types/inventory/items.d.ts.map +1 -0
  324. package/dist/types/inventory/playerInventory.d.ts +167 -0
  325. package/dist/types/inventory/playerInventory.d.ts.map +1 -0
  326. package/dist/types/level.d.ts +16 -0
  327. package/dist/types/level.d.ts.map +1 -0
  328. package/dist/types/loop.d.ts +29 -0
  329. package/dist/types/loop.d.ts.map +1 -0
  330. package/dist/types/mod.d.ts +34 -0
  331. package/dist/types/mod.d.ts.map +1 -0
  332. package/dist/types/modes/ctf/capture.d.ts +7 -0
  333. package/dist/types/modes/ctf/capture.d.ts.map +1 -0
  334. package/dist/types/modes/ctf/drop.d.ts +8 -0
  335. package/dist/types/modes/ctf/drop.d.ts.map +1 -0
  336. package/dist/types/modes/ctf/flag.d.ts +5 -0
  337. package/dist/types/modes/ctf/flag.d.ts.map +1 -0
  338. package/dist/types/modes/ctf/grapple.d.ts +13 -0
  339. package/dist/types/modes/ctf/grapple.d.ts.map +1 -0
  340. package/dist/types/modes/ctf/integration.d.ts +4 -0
  341. package/dist/types/modes/ctf/integration.d.ts.map +1 -0
  342. package/dist/types/modes/ctf/items.d.ts +2 -0
  343. package/dist/types/modes/ctf/items.d.ts.map +1 -0
  344. package/dist/types/modes/ctf/pickup.d.ts +6 -0
  345. package/dist/types/modes/ctf/pickup.d.ts.map +1 -0
  346. package/dist/types/modes/ctf/scoreboard.d.ts +34 -0
  347. package/dist/types/modes/ctf/scoreboard.d.ts.map +1 -0
  348. package/dist/types/modes/ctf/state.d.ts +15 -0
  349. package/dist/types/modes/ctf/state.d.ts.map +1 -0
  350. package/dist/types/modes/ctf/teams.d.ts +28 -0
  351. package/dist/types/modes/ctf/teams.d.ts.map +1 -0
  352. package/dist/types/physics/collision.d.ts +14 -0
  353. package/dist/types/physics/collision.d.ts.map +1 -0
  354. package/dist/types/physics/fluid.d.ts +10 -0
  355. package/dist/types/physics/fluid.d.ts.map +1 -0
  356. package/dist/types/physics/movement.d.ts +32 -0
  357. package/dist/types/physics/movement.d.ts.map +1 -0
  358. package/dist/types/replay/index.d.ts +3 -0
  359. package/dist/types/replay/index.d.ts.map +1 -0
  360. package/dist/types/replay/player.d.ts +15 -0
  361. package/dist/types/replay/player.d.ts.map +1 -0
  362. package/dist/types/replay/recorder.d.ts +16 -0
  363. package/dist/types/replay/recorder.d.ts.map +1 -0
  364. package/dist/types/save/adapter.d.ts +24 -0
  365. package/dist/types/save/adapter.d.ts.map +1 -0
  366. package/dist/types/save/index.d.ts +4 -0
  367. package/dist/types/save/index.d.ts.map +1 -0
  368. package/dist/types/save/rerelease.d.ts +50 -0
  369. package/dist/types/save/rerelease.d.ts.map +1 -0
  370. package/dist/types/save/save.d.ts +56 -0
  371. package/dist/types/save/save.d.ts.map +1 -0
  372. package/dist/types/save/storage.d.ts +37 -0
  373. package/dist/types/save/storage.d.ts.map +1 -0
  374. package/dist/types/save/tests/adapter.test.d.ts +2 -0
  375. package/dist/types/save/tests/adapter.test.d.ts.map +1 -0
  376. package/dist/types/save/tests/callbacks.test.d.ts +2 -0
  377. package/dist/types/save/tests/callbacks.test.d.ts.map +1 -0
  378. package/dist/types/save/tests/playerInventory.test.d.ts +2 -0
  379. package/dist/types/save/tests/playerInventory.test.d.ts.map +1 -0
  380. package/dist/types/scripting/hooks.d.ts +61 -0
  381. package/dist/types/scripting/hooks.d.ts.map +1 -0
  382. package/package.json +44 -0
@@ -0,0 +1,50 @@
1
+ import { type GameSaveFile } from './save.js';
2
+ import type { RandomGeneratorState } from '@quake2ts/shared';
3
+ export type JsonObject = Record<string, unknown>;
4
+ export interface RereleaseGameSave {
5
+ readonly saveVersion: number;
6
+ readonly game: JsonObject & {
7
+ readonly maxclients?: number;
8
+ };
9
+ readonly clients: readonly JsonObject[];
10
+ }
11
+ export interface RereleaseLevelSave {
12
+ readonly saveVersion: number;
13
+ readonly level: JsonObject;
14
+ readonly entities: ReadonlyMap<number, JsonObject>;
15
+ }
16
+ export type RereleaseSave = RereleaseGameSave | RereleaseLevelSave;
17
+ export interface RereleaseSaveSummary {
18
+ readonly version: number;
19
+ readonly kind: 'game' | 'level';
20
+ readonly maxClients?: number;
21
+ readonly clientCount?: number;
22
+ readonly entityCount?: number;
23
+ readonly highestEntityIndex?: number;
24
+ }
25
+ export interface RereleaseLevelSaveJson {
26
+ readonly save_version: number;
27
+ readonly level: JsonObject;
28
+ readonly entities: Record<string, JsonObject>;
29
+ }
30
+ export interface RereleaseGameSaveJson {
31
+ readonly save_version: number;
32
+ readonly game: JsonObject;
33
+ readonly clients: readonly JsonObject[];
34
+ }
35
+ export type RereleaseSaveJson = RereleaseLevelSaveJson | RereleaseGameSaveJson;
36
+ export declare function parseRereleaseSave(raw: unknown): RereleaseSave;
37
+ export declare function summarizeRereleaseSave(raw: unknown): RereleaseSaveSummary;
38
+ export interface RereleaseImportOptions {
39
+ readonly timestamp?: number;
40
+ readonly defaultDifficulty?: number;
41
+ readonly defaultPlaytimeSeconds?: number;
42
+ readonly rngState?: RandomGeneratorState;
43
+ readonly configstrings?: readonly string[];
44
+ readonly gameState?: Record<string, unknown>;
45
+ }
46
+ export declare function convertRereleaseLevelToGameSave(save: RereleaseLevelSave, options?: RereleaseImportOptions): GameSaveFile;
47
+ export declare function convertRereleaseSaveToGameSave(save: RereleaseSave, options?: RereleaseImportOptions): GameSaveFile;
48
+ export declare function convertGameSaveToRereleaseLevel(save: GameSaveFile): RereleaseLevelSave;
49
+ export declare function serializeRereleaseSave(save: RereleaseSave): RereleaseSaveJson;
50
+ //# sourceMappingURL=rerelease.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rerelease.d.ts","sourceRoot":"","sources":["../../../src/save/rerelease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAM7D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG;QAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAmC/E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CA0B9D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAyBzE;AAyID,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,sBAA2B,GACnC,YAAY,CAmBd;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,sBAA2B,GACnC,YAAY,CAKd;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,YAAY,GAAG,kBAAkB,CA2BtF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB,CAW7E"}
@@ -0,0 +1,56 @@
1
+ import type { CvarRegistry } from '@quake2ts/engine';
2
+ import { CvarFlags, type RandomGeneratorState } from '@quake2ts/shared';
3
+ import type { RandomGenerator as RandomGeneratorType } from '@quake2ts/shared';
4
+ import type { CallbackRegistry, EntitySystem, EntitySystemSnapshot } from '../entities/index.js';
5
+ import { type PlayerInventory, type SerializedPlayerInventory } from '../inventory/index.js';
6
+ import type { LevelClock, LevelFrameState } from '../level.js';
7
+ export declare const SAVE_FORMAT_VERSION = 2;
8
+ export interface CvarSaveEntry {
9
+ readonly name: string;
10
+ readonly value: string;
11
+ readonly flags: CvarFlags;
12
+ }
13
+ export interface GameSaveFile {
14
+ readonly version: number;
15
+ readonly timestamp: number;
16
+ readonly map: string;
17
+ readonly difficulty: number;
18
+ readonly playtimeSeconds: number;
19
+ readonly gameState: Record<string, unknown>;
20
+ readonly level: LevelFrameState;
21
+ readonly rng: RandomGeneratorState;
22
+ readonly entities: EntitySystemSnapshot;
23
+ readonly cvars: readonly CvarSaveEntry[];
24
+ readonly configstrings: readonly string[];
25
+ readonly player?: SerializedPlayerInventory;
26
+ readonly checksum?: number;
27
+ }
28
+ export interface SaveCreationOptions {
29
+ readonly map: string;
30
+ readonly difficulty: number;
31
+ readonly playtimeSeconds: number;
32
+ readonly levelState: LevelFrameState;
33
+ readonly entitySystem: EntitySystem;
34
+ readonly rngState: RandomGeneratorState;
35
+ readonly configstrings?: readonly string[];
36
+ readonly cvars?: CvarRegistry;
37
+ readonly gameState?: Record<string, unknown>;
38
+ readonly timestamp?: number;
39
+ readonly player?: PlayerInventory;
40
+ }
41
+ export interface SaveApplyTargets {
42
+ readonly levelClock: LevelClock;
43
+ readonly entitySystem: EntitySystem;
44
+ readonly rng: RandomGeneratorType;
45
+ readonly cvars?: CvarRegistry;
46
+ readonly player?: PlayerInventory;
47
+ readonly callbackRegistry?: CallbackRegistry;
48
+ }
49
+ export interface ParseSaveOptions {
50
+ readonly allowNewerVersion?: boolean;
51
+ }
52
+ export declare function calculateSaveChecksum(save: Omit<GameSaveFile, 'checksum'>): number;
53
+ export declare function createSaveFile(options: SaveCreationOptions): GameSaveFile;
54
+ export declare function parseSaveFile(serialized: unknown, options?: ParseSaveOptions): GameSaveFile;
55
+ export declare function applySaveFile(save: GameSaveFile, targets: SaveApplyTargets): void;
56
+ //# sourceMappingURL=save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../../src/save/save.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type GameSaveFile, type ParseSaveOptions } from './save.js';
2
+ export interface SaveSlotMetadata {
3
+ readonly id: string;
4
+ readonly name: string;
5
+ readonly map: string;
6
+ readonly difficulty: number;
7
+ readonly playtimeSeconds: number;
8
+ readonly timestamp: number;
9
+ readonly version: number;
10
+ readonly bytes: number;
11
+ }
12
+ type IndexedDbFactory = {
13
+ open(name: string, version?: number): unknown;
14
+ };
15
+ export interface SaveStorageOptions {
16
+ readonly dbName?: string;
17
+ readonly storeName?: string;
18
+ readonly indexedDB?: IndexedDbFactory | null;
19
+ }
20
+ export interface SaveWriteOptions {
21
+ readonly name?: string;
22
+ }
23
+ export declare class SaveStorage {
24
+ private static readonly DEFAULT_DB_NAME;
25
+ private static readonly DEFAULT_STORE;
26
+ private static readonly QUICK_SLOT;
27
+ private readonly adapter;
28
+ constructor(options?: SaveStorageOptions);
29
+ save(slotId: string, save: GameSaveFile, options?: SaveWriteOptions): Promise<SaveSlotMetadata>;
30
+ load(slotId: string, options?: ParseSaveOptions): Promise<GameSaveFile>;
31
+ delete(slotId: string): Promise<boolean>;
32
+ list(): Promise<SaveSlotMetadata[]>;
33
+ quickSave(save: GameSaveFile): Promise<SaveSlotMetadata>;
34
+ quickLoad(options?: ParseSaveOptions): Promise<GameSaveFile>;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/save/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AA0ED,KAAK,gBAAgB,GAAG;IAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAyE1E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAoB;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAW;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAe;IAEjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,GAAE,kBAAuB;IAWtC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkBnG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;IAS3E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxC,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQnC,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIxD,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;CAGvE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../../src/save/tests/adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=callbacks.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbacks.test.d.ts","sourceRoot":"","sources":["../../../../src/save/tests/callbacks.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=playerInventory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playerInventory.test.d.ts","sourceRoot":"","sources":["../../../../src/save/tests/playerInventory.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { Entity } from '../entities/entity.js';
2
+ import { DamageFlags, DamageMod } from '../combat/index.js';
3
+ /**
4
+ * Script hooks interface for game events.
5
+ */
6
+ export interface ScriptHooks {
7
+ /**
8
+ * Called when a map is loaded.
9
+ */
10
+ onMapLoad?: (mapName: string) => void;
11
+ /**
12
+ * Called when a map is unloaded.
13
+ */
14
+ onMapUnload?: () => void;
15
+ /**
16
+ * Called when a player spawns (initial or respawn).
17
+ */
18
+ onPlayerSpawn?: (player: Entity) => void;
19
+ /**
20
+ * Called when a player dies.
21
+ */
22
+ onPlayerDeath?: (player: Entity, inflictor: Entity | null, attacker: Entity | null, damage: number) => void;
23
+ /**
24
+ * Called when any entity spawns.
25
+ */
26
+ onEntitySpawn?: (entity: Entity) => void;
27
+ /**
28
+ * Called when an entity is removed (freed).
29
+ */
30
+ onEntityRemove?: (entity: Entity) => void;
31
+ /**
32
+ * Called when an entity takes damage.
33
+ * Return false to prevent damage (optional, depending on implementation complexity).
34
+ */
35
+ onDamage?: (target: Entity, inflictor: Entity | null, attacker: Entity | null, damage: number, flags: DamageFlags, mod: DamageMod) => void;
36
+ /**
37
+ * Called when an item is picked up.
38
+ */
39
+ onPickup?: (entity: Entity, item: Entity) => void;
40
+ }
41
+ /**
42
+ * Registry for managing script hooks.
43
+ */
44
+ export declare class ScriptHookRegistry {
45
+ private hooks;
46
+ /**
47
+ * Register a new set of hooks.
48
+ * @param hooks The hooks to register.
49
+ * @returns A cleanup function to unregister these hooks.
50
+ */
51
+ register(hooks: ScriptHooks): () => void;
52
+ onMapLoad(mapName: string): void;
53
+ onMapUnload(): void;
54
+ onPlayerSpawn(player: Entity): void;
55
+ onPlayerDeath(player: Entity, inflictor: Entity | null, attacker: Entity | null, damage: number): void;
56
+ onEntitySpawn(entity: Entity): void;
57
+ onEntityRemove(entity: Entity): void;
58
+ onDamage(target: Entity, inflictor: Entity | null, attacker: Entity | null, damage: number, flags: DamageFlags, mod: DamageMod): void;
59
+ onPickup(entity: Entity, item: Entity): void;
60
+ }
61
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/scripting/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5G;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IAE3I;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAqB;IAElC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,IAAI;IAWxC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,WAAW,IAAI,IAAI;IAInB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAInC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAItG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAInC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI;IAIrI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAG7C"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@quake2ts/game",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "main": "./dist/cjs/index.cjs",
6
+ "module": "./dist/esm/index.js",
7
+ "types": "./dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts",
11
+ "import": "./dist/esm/index.js",
12
+ "require": "./dist/cjs/index.cjs",
13
+ "default": "./dist/esm/index.js"
14
+ },
15
+ "./browser": {
16
+ "types": "./dist/types/index.d.ts",
17
+ "default": "./dist/browser/index.js"
18
+ }
19
+ },
20
+ "unpkg": "./dist/browser/index.js",
21
+ "jsdelivr": "./dist/browser/index.js",
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "sideEffects": false,
26
+ "dependencies": {
27
+ "gl-matrix": "^3.4.4",
28
+ "@quake2ts/engine": "0.0.1",
29
+ "@quake2ts/shared": "0.0.1"
30
+ },
31
+ "devDependencies": {
32
+ "fake-indexeddb": "^6.0.0",
33
+ "tsup": "^8.1.0",
34
+ "@quake2ts/test-utils": "^0.0.1"
35
+ },
36
+ "scripts": {
37
+ "build": "pnpm run build:types && pnpm run build:bundles",
38
+ "build:types": "tsc -b",
39
+ "build:bundles": "tsup",
40
+ "test": "pnpm run test:unit",
41
+ "test:unit": "TEST_TYPE=unit vitest run --passWithNoTests",
42
+ "test:integration": "TEST_TYPE=integration NODE_OPTIONS='--max-old-space-size=4096' vitest run tests/integration/entitySystem.test.ts tests/integration/combat.test.ts tests/integration/gameplay.test.ts tests/integration/hooks.test.ts tests/integration/scenario_base1.test.ts tests/integration/physicsStress.test.ts tests/integration/saveLoad.test.ts tests/integration/asset-loading.test.ts"
43
+ }
44
+ }