@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.
- package/dist/browser/index.global.js +6 -0
- package/dist/browser/index.global.js.map +1 -0
- package/dist/cjs/index.cjs +28688 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.js +28477 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/ai/constants.d.ts +51 -0
- package/dist/types/ai/constants.d.ts.map +1 -0
- package/dist/types/ai/index.d.ts +7 -0
- package/dist/types/ai/index.d.ts.map +1 -0
- package/dist/types/ai/monster.d.ts +7 -0
- package/dist/types/ai/monster.d.ts.map +1 -0
- package/dist/types/ai/movement.d.ts +47 -0
- package/dist/types/ai/movement.d.ts.map +1 -0
- package/dist/types/ai/movement_rogue.d.ts +18 -0
- package/dist/types/ai/movement_rogue.d.ts.map +1 -0
- package/dist/types/ai/noise.d.ts +12 -0
- package/dist/types/ai/noise.d.ts.map +1 -0
- package/dist/types/ai/perception.d.ts +23 -0
- package/dist/types/ai/perception.d.ts.map +1 -0
- package/dist/types/ai/rogue.d.ts +36 -0
- package/dist/types/ai/rogue.d.ts.map +1 -0
- package/dist/types/ai/spawn_utils.d.ts +6 -0
- package/dist/types/ai/spawn_utils.d.ts.map +1 -0
- package/dist/types/ai/targeting.d.ts +29 -0
- package/dist/types/ai/targeting.d.ts.map +1 -0
- package/dist/types/buttons.d.ts +2 -0
- package/dist/types/buttons.d.ts.map +1 -0
- package/dist/types/checksum.d.ts +11 -0
- package/dist/types/checksum.d.ts.map +1 -0
- package/dist/types/combat/armor.d.ts +39 -0
- package/dist/types/combat/armor.d.ts.map +1 -0
- package/dist/types/combat/damage.d.ts +60 -0
- package/dist/types/combat/damage.d.ts.map +1 -0
- package/dist/types/combat/damageFlags.d.ts +22 -0
- package/dist/types/combat/damageFlags.d.ts.map +1 -0
- package/dist/types/combat/damageMods.d.ts +80 -0
- package/dist/types/combat/damageMods.d.ts.map +1 -0
- package/dist/types/combat/index.d.ts +8 -0
- package/dist/types/combat/index.d.ts.map +1 -0
- package/dist/types/combat/obituary.d.ts +10 -0
- package/dist/types/combat/obituary.d.ts.map +1 -0
- package/dist/types/combat/specialDamage.d.ts +88 -0
- package/dist/types/combat/specialDamage.d.ts.map +1 -0
- package/dist/types/combat/weapon.d.ts +23 -0
- package/dist/types/combat/weapon.d.ts.map +1 -0
- package/dist/types/combat/weapons/animation.d.ts +18 -0
- package/dist/types/combat/weapons/animation.d.ts.map +1 -0
- package/dist/types/combat/weapons/bfg.d.ts +4 -0
- package/dist/types/combat/weapons/bfg.d.ts.map +1 -0
- package/dist/types/combat/weapons/blaster.d.ts +4 -0
- package/dist/types/combat/weapons/blaster.d.ts.map +1 -0
- package/dist/types/combat/weapons/chainfist.d.ts +9 -0
- package/dist/types/combat/weapons/chainfist.d.ts.map +1 -0
- package/dist/types/combat/weapons/chaingun.d.ts +4 -0
- package/dist/types/combat/weapons/chaingun.d.ts.map +1 -0
- package/dist/types/combat/weapons/common.d.ts +10 -0
- package/dist/types/combat/weapons/common.d.ts.map +1 -0
- package/dist/types/combat/weapons/firing.d.ts +29 -0
- package/dist/types/combat/weapons/firing.d.ts.map +1 -0
- package/dist/types/combat/weapons/frames.d.ts +51 -0
- package/dist/types/combat/weapons/frames.d.ts.map +1 -0
- package/dist/types/combat/weapons/grenade.d.ts +4 -0
- package/dist/types/combat/weapons/grenade.d.ts.map +1 -0
- package/dist/types/combat/weapons/grenadelauncher.d.ts +4 -0
- package/dist/types/combat/weapons/grenadelauncher.d.ts.map +1 -0
- package/dist/types/combat/weapons/hyperblaster.d.ts +4 -0
- package/dist/types/combat/weapons/hyperblaster.d.ts.map +1 -0
- package/dist/types/combat/weapons/machinegun.d.ts +4 -0
- package/dist/types/combat/weapons/machinegun.d.ts.map +1 -0
- package/dist/types/combat/weapons/projectSource.d.ts +17 -0
- package/dist/types/combat/weapons/projectSource.d.ts.map +1 -0
- package/dist/types/combat/weapons/railgun.d.ts +4 -0
- package/dist/types/combat/weapons/railgun.d.ts.map +1 -0
- package/dist/types/combat/weapons/registry.d.ts +16 -0
- package/dist/types/combat/weapons/registry.d.ts.map +1 -0
- package/dist/types/combat/weapons/rocket.d.ts +4 -0
- package/dist/types/combat/weapons/rocket.d.ts.map +1 -0
- package/dist/types/combat/weapons/rogue.d.ts +10 -0
- package/dist/types/combat/weapons/rogue.d.ts.map +1 -0
- package/dist/types/combat/weapons/shotgun.d.ts +4 -0
- package/dist/types/combat/weapons/shotgun.d.ts.map +1 -0
- package/dist/types/combat/weapons/state.d.ts +19 -0
- package/dist/types/combat/weapons/state.d.ts.map +1 -0
- package/dist/types/combat/weapons/supershotgun.d.ts +4 -0
- package/dist/types/combat/weapons/supershotgun.d.ts.map +1 -0
- package/dist/types/combat/weapons/switching.d.ts +16 -0
- package/dist/types/combat/weapons/switching.d.ts.map +1 -0
- package/dist/types/combat/weapons/trap.d.ts +4 -0
- package/dist/types/combat/weapons/trap.d.ts.map +1 -0
- package/dist/types/demo/serializer.d.ts +10 -0
- package/dist/types/demo/serializer.d.ts.map +1 -0
- package/dist/types/dm/chat.d.ts +4 -0
- package/dist/types/dm/chat.d.ts.map +1 -0
- package/dist/types/dm/game.d.ts +7 -0
- package/dist/types/dm/game.d.ts.map +1 -0
- package/dist/types/dm/scoreboard.d.ts +15 -0
- package/dist/types/dm/scoreboard.d.ts.map +1 -0
- package/dist/types/dm/telefrag.d.ts +2 -0
- package/dist/types/dm/telefrag.d.ts.map +1 -0
- package/dist/types/editor/analysis.d.ts +20 -0
- package/dist/types/editor/analysis.d.ts.map +1 -0
- package/dist/types/editor/graph.d.ts +19 -0
- package/dist/types/editor/graph.d.ts.map +1 -0
- package/dist/types/editor/metadata.d.ts +31 -0
- package/dist/types/editor/metadata.d.ts.map +1 -0
- package/dist/types/editor/search.d.ts +9 -0
- package/dist/types/editor/search.d.ts.map +1 -0
- package/dist/types/editor/selection.d.ts +19 -0
- package/dist/types/editor/selection.d.ts.map +1 -0
- package/dist/types/entities/callbacks.d.ts +6 -0
- package/dist/types/entities/callbacks.d.ts.map +1 -0
- package/dist/types/entities/camera.d.ts +6 -0
- package/dist/types/entities/camera.d.ts.map +1 -0
- package/dist/types/entities/entity.d.ts +375 -0
- package/dist/types/entities/entity.d.ts.map +1 -0
- package/dist/types/entities/enums.d.ts +117 -0
- package/dist/types/entities/enums.d.ts.map +1 -0
- package/dist/types/entities/funcs.d.ts +13 -0
- package/dist/types/entities/funcs.d.ts.map +1 -0
- package/dist/types/entities/gibs.d.ts +20 -0
- package/dist/types/entities/gibs.d.ts.map +1 -0
- package/dist/types/entities/index.d.ts +9 -0
- package/dist/types/entities/index.d.ts.map +1 -0
- package/dist/types/entities/items/ammo.d.ts +5 -0
- package/dist/types/entities/items/ammo.d.ts.map +1 -0
- package/dist/types/entities/items/armor.d.ts +5 -0
- package/dist/types/entities/items/armor.d.ts.map +1 -0
- package/dist/types/entities/items/common.d.ts +5 -0
- package/dist/types/entities/items/common.d.ts.map +1 -0
- package/dist/types/entities/items/foodcube.d.ts +4 -0
- package/dist/types/entities/items/foodcube.d.ts.map +1 -0
- package/dist/types/entities/items/health.d.ts +5 -0
- package/dist/types/entities/items/health.d.ts.map +1 -0
- package/dist/types/entities/items/index.d.ts +8 -0
- package/dist/types/entities/items/index.d.ts.map +1 -0
- package/dist/types/entities/items/keys.d.ts +5 -0
- package/dist/types/entities/items/keys.d.ts.map +1 -0
- package/dist/types/entities/items/powerArmor.d.ts +5 -0
- package/dist/types/entities/items/powerArmor.d.ts.map +1 -0
- package/dist/types/entities/items/powerups.d.ts +5 -0
- package/dist/types/entities/items/powerups.d.ts.map +1 -0
- package/dist/types/entities/items/weapons.d.ts +5 -0
- package/dist/types/entities/items/weapons.d.ts.map +1 -0
- package/dist/types/entities/items.d.ts +5 -0
- package/dist/types/entities/items.d.ts.map +1 -0
- package/dist/types/entities/lights.d.ts +3 -0
- package/dist/types/entities/lights.d.ts.map +1 -0
- package/dist/types/entities/misc/decorative.d.ts +7 -0
- package/dist/types/entities/misc/decorative.d.ts.map +1 -0
- package/dist/types/entities/misc/flyers.d.ts +6 -0
- package/dist/types/entities/misc/flyers.d.ts.map +1 -0
- package/dist/types/entities/misc/more_misc.d.ts +12 -0
- package/dist/types/entities/misc/more_misc.d.ts.map +1 -0
- package/dist/types/entities/misc/viperMissile.d.ts +3 -0
- package/dist/types/entities/misc/viperMissile.d.ts.map +1 -0
- package/dist/types/entities/misc.d.ts +4 -0
- package/dist/types/entities/misc.d.ts.map +1 -0
- package/dist/types/entities/monsters/actor.d.ts +6 -0
- package/dist/types/entities/monsters/actor.d.ts.map +1 -0
- package/dist/types/entities/monsters/arachnid.d.ts +5 -0
- package/dist/types/entities/monsters/arachnid.d.ts.map +1 -0
- package/dist/types/entities/monsters/attack.d.ts +19 -0
- package/dist/types/entities/monsters/attack.d.ts.map +1 -0
- package/dist/types/entities/monsters/berserk.d.ts +5 -0
- package/dist/types/entities/monsters/berserk.d.ts.map +1 -0
- package/dist/types/entities/monsters/boss2.d.ts +5 -0
- package/dist/types/entities/monsters/boss2.d.ts.map +1 -0
- package/dist/types/entities/monsters/brain.d.ts +5 -0
- package/dist/types/entities/monsters/brain.d.ts.map +1 -0
- package/dist/types/entities/monsters/chick.d.ts +5 -0
- package/dist/types/entities/monsters/chick.d.ts.map +1 -0
- package/dist/types/entities/monsters/common.d.ts +33 -0
- package/dist/types/entities/monsters/common.d.ts.map +1 -0
- package/dist/types/entities/monsters/fixbot.d.ts +5 -0
- package/dist/types/entities/monsters/fixbot.d.ts.map +1 -0
- package/dist/types/entities/monsters/flipper.d.ts +5 -0
- package/dist/types/entities/monsters/flipper.d.ts.map +1 -0
- package/dist/types/entities/monsters/floater.d.ts +5 -0
- package/dist/types/entities/monsters/floater.d.ts.map +1 -0
- package/dist/types/entities/monsters/flyer.d.ts +7 -0
- package/dist/types/entities/monsters/flyer.d.ts.map +1 -0
- package/dist/types/entities/monsters/gekk.d.ts +5 -0
- package/dist/types/entities/monsters/gekk.d.ts.map +1 -0
- package/dist/types/entities/monsters/gladiator.d.ts +5 -0
- package/dist/types/entities/monsters/gladiator.d.ts.map +1 -0
- package/dist/types/entities/monsters/guardian.d.ts +5 -0
- package/dist/types/entities/monsters/guardian.d.ts.map +1 -0
- package/dist/types/entities/monsters/gunner.d.ts +5 -0
- package/dist/types/entities/monsters/gunner.d.ts.map +1 -0
- package/dist/types/entities/monsters/gunnerCommander.d.ts +5 -0
- package/dist/types/entities/monsters/gunnerCommander.d.ts.map +1 -0
- package/dist/types/entities/monsters/hover.d.ts +5 -0
- package/dist/types/entities/monsters/hover.d.ts.map +1 -0
- package/dist/types/entities/monsters/icarus.d.ts +5 -0
- package/dist/types/entities/monsters/icarus.d.ts.map +1 -0
- package/dist/types/entities/monsters/index.d.ts +3 -0
- package/dist/types/entities/monsters/index.d.ts.map +1 -0
- package/dist/types/entities/monsters/infantry.d.ts +5 -0
- package/dist/types/entities/monsters/infantry.d.ts.map +1 -0
- package/dist/types/entities/monsters/insane.d.ts +5 -0
- package/dist/types/entities/monsters/insane.d.ts.map +1 -0
- package/dist/types/entities/monsters/jorg.d.ts +5 -0
- package/dist/types/entities/monsters/jorg.d.ts.map +1 -0
- package/dist/types/entities/monsters/makron.d.ts +5 -0
- package/dist/types/entities/monsters/makron.d.ts.map +1 -0
- package/dist/types/entities/monsters/medic.d.ts +6 -0
- package/dist/types/entities/monsters/medic.d.ts.map +1 -0
- package/dist/types/entities/monsters/mutant.d.ts +5 -0
- package/dist/types/entities/monsters/mutant.d.ts.map +1 -0
- package/dist/types/entities/monsters/parasite.d.ts +5 -0
- package/dist/types/entities/monsters/parasite.d.ts.map +1 -0
- package/dist/types/entities/monsters/rogue/carrier.d.ts +5 -0
- package/dist/types/entities/monsters/rogue/carrier.d.ts.map +1 -0
- package/dist/types/entities/monsters/rogue/common.d.ts +11 -0
- package/dist/types/entities/monsters/rogue/common.d.ts.map +1 -0
- package/dist/types/entities/monsters/rogue/stalker.d.ts +5 -0
- package/dist/types/entities/monsters/rogue/stalker.d.ts.map +1 -0
- package/dist/types/entities/monsters/rogue/widow.d.ts +5 -0
- package/dist/types/entities/monsters/rogue/widow.d.ts.map +1 -0
- package/dist/types/entities/monsters/rogue/widow2.d.ts +3 -0
- package/dist/types/entities/monsters/rogue/widow2.d.ts.map +1 -0
- package/dist/types/entities/monsters/shambler.d.ts +5 -0
- package/dist/types/entities/monsters/shambler.d.ts.map +1 -0
- package/dist/types/entities/monsters/soldier.d.ts +11 -0
- package/dist/types/entities/monsters/soldier.d.ts.map +1 -0
- package/dist/types/entities/monsters/supertank.d.ts +5 -0
- package/dist/types/entities/monsters/supertank.d.ts.map +1 -0
- package/dist/types/entities/monsters/tank.d.ts +5 -0
- package/dist/types/entities/monsters/tank.d.ts.map +1 -0
- package/dist/types/entities/monsters/tankCommander.d.ts +5 -0
- package/dist/types/entities/monsters/tankCommander.d.ts.map +1 -0
- package/dist/types/entities/monsters/turret.d.ts +5 -0
- package/dist/types/entities/monsters/turret.d.ts.map +1 -0
- package/dist/types/entities/paths.d.ts +3 -0
- package/dist/types/entities/paths.d.ts.map +1 -0
- package/dist/types/entities/player.d.ts +8 -0
- package/dist/types/entities/player.d.ts.map +1 -0
- package/dist/types/entities/playerStats.d.ts +3 -0
- package/dist/types/entities/playerStats.d.ts.map +1 -0
- package/dist/types/entities/player_anim.d.ts +50 -0
- package/dist/types/entities/player_anim.d.ts.map +1 -0
- package/dist/types/entities/pool.d.ts +28 -0
- package/dist/types/entities/pool.d.ts.map +1 -0
- package/dist/types/entities/projectiles/prox.d.ts +5 -0
- package/dist/types/entities/projectiles/prox.d.ts.map +1 -0
- package/dist/types/entities/projectiles/trap.d.ts +7 -0
- package/dist/types/entities/projectiles/trap.d.ts.map +1 -0
- package/dist/types/entities/projectiles.d.ts +22 -0
- package/dist/types/entities/projectiles.d.ts.map +1 -0
- package/dist/types/entities/selection.d.ts +73 -0
- package/dist/types/entities/selection.d.ts.map +1 -0
- package/dist/types/entities/spatial.d.ts +15 -0
- package/dist/types/entities/spatial.d.ts.map +1 -0
- package/dist/types/entities/spawn.d.ts +33 -0
- package/dist/types/entities/spawn.d.ts.map +1 -0
- package/dist/types/entities/spawngro.d.ts +3 -0
- package/dist/types/entities/spawngro.d.ts.map +1 -0
- package/dist/types/entities/system.d.ts +130 -0
- package/dist/types/entities/system.d.ts.map +1 -0
- package/dist/types/entities/target/speaker.d.ts +3 -0
- package/dist/types/entities/target/speaker.d.ts.map +1 -0
- package/dist/types/entities/targets.d.ts +3 -0
- package/dist/types/entities/targets.d.ts.map +1 -0
- package/dist/types/entities/templates.d.ts +45 -0
- package/dist/types/entities/templates.d.ts.map +1 -0
- package/dist/types/entities/thinkScheduler.d.ts +14 -0
- package/dist/types/entities/thinkScheduler.d.ts.map +1 -0
- package/dist/types/entities/triggers/always.d.ts +3 -0
- package/dist/types/entities/triggers/always.d.ts.map +1 -0
- package/dist/types/entities/triggers/bad_area.d.ts +3 -0
- package/dist/types/entities/triggers/bad_area.d.ts.map +1 -0
- package/dist/types/entities/triggers/common.d.ts +14 -0
- package/dist/types/entities/triggers/common.d.ts.map +1 -0
- package/dist/types/entities/triggers/counter.d.ts +3 -0
- package/dist/types/entities/triggers/counter.d.ts.map +1 -0
- package/dist/types/entities/triggers/elevator.d.ts +3 -0
- package/dist/types/entities/triggers/elevator.d.ts.map +1 -0
- package/dist/types/entities/triggers/flashlight.d.ts +3 -0
- package/dist/types/entities/triggers/flashlight.d.ts.map +1 -0
- package/dist/types/entities/triggers/fog.d.ts +2 -0
- package/dist/types/entities/triggers/fog.d.ts.map +1 -0
- package/dist/types/entities/triggers/gravity.d.ts +3 -0
- package/dist/types/entities/triggers/gravity.d.ts.map +1 -0
- package/dist/types/entities/triggers/hurt.d.ts +3 -0
- package/dist/types/entities/triggers/hurt.d.ts.map +1 -0
- package/dist/types/entities/triggers/index.d.ts +3 -0
- package/dist/types/entities/triggers/index.d.ts.map +1 -0
- package/dist/types/entities/triggers/key.d.ts +3 -0
- package/dist/types/entities/triggers/key.d.ts.map +1 -0
- package/dist/types/entities/triggers/look.d.ts +3 -0
- package/dist/types/entities/triggers/look.d.ts.map +1 -0
- package/dist/types/entities/triggers/monsterjump.d.ts +3 -0
- package/dist/types/entities/triggers/monsterjump.d.ts.map +1 -0
- package/dist/types/entities/triggers/multiple.d.ts +6 -0
- package/dist/types/entities/triggers/multiple.d.ts.map +1 -0
- package/dist/types/entities/triggers/once.d.ts +3 -0
- package/dist/types/entities/triggers/once.d.ts.map +1 -0
- package/dist/types/entities/triggers/push.d.ts +3 -0
- package/dist/types/entities/triggers/push.d.ts.map +1 -0
- package/dist/types/entities/triggers/relay.d.ts +3 -0
- package/dist/types/entities/triggers/relay.d.ts.map +1 -0
- package/dist/types/entities/triggers/secret.d.ts +3 -0
- package/dist/types/entities/triggers/secret.d.ts.map +1 -0
- package/dist/types/entities/triggers/teleport.d.ts +3 -0
- package/dist/types/entities/triggers/teleport.d.ts.map +1 -0
- package/dist/types/entities/utils.d.ts +12 -0
- package/dist/types/entities/utils.d.ts.map +1 -0
- package/dist/types/entities/worldspawn.d.ts +5 -0
- package/dist/types/entities/worldspawn.d.ts.map +1 -0
- package/dist/types/imports.d.ts +53 -0
- package/dist/types/imports.d.ts.map +1 -0
- package/dist/types/index.d.ts +124 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/inventory/ammo.d.ts +35 -0
- package/dist/types/inventory/ammo.d.ts.map +1 -0
- package/dist/types/inventory/give.d.ts +3 -0
- package/dist/types/inventory/give.d.ts.map +1 -0
- package/dist/types/inventory/index.d.ts +5 -0
- package/dist/types/inventory/index.d.ts.map +1 -0
- package/dist/types/inventory/items.d.ts +51 -0
- package/dist/types/inventory/items.d.ts.map +1 -0
- package/dist/types/inventory/playerInventory.d.ts +167 -0
- package/dist/types/inventory/playerInventory.d.ts.map +1 -0
- package/dist/types/level.d.ts +16 -0
- package/dist/types/level.d.ts.map +1 -0
- package/dist/types/loop.d.ts +29 -0
- package/dist/types/loop.d.ts.map +1 -0
- package/dist/types/mod.d.ts +34 -0
- package/dist/types/mod.d.ts.map +1 -0
- package/dist/types/modes/ctf/capture.d.ts +7 -0
- package/dist/types/modes/ctf/capture.d.ts.map +1 -0
- package/dist/types/modes/ctf/drop.d.ts +8 -0
- package/dist/types/modes/ctf/drop.d.ts.map +1 -0
- package/dist/types/modes/ctf/flag.d.ts +5 -0
- package/dist/types/modes/ctf/flag.d.ts.map +1 -0
- package/dist/types/modes/ctf/grapple.d.ts +13 -0
- package/dist/types/modes/ctf/grapple.d.ts.map +1 -0
- package/dist/types/modes/ctf/integration.d.ts +4 -0
- package/dist/types/modes/ctf/integration.d.ts.map +1 -0
- package/dist/types/modes/ctf/items.d.ts +2 -0
- package/dist/types/modes/ctf/items.d.ts.map +1 -0
- package/dist/types/modes/ctf/pickup.d.ts +6 -0
- package/dist/types/modes/ctf/pickup.d.ts.map +1 -0
- package/dist/types/modes/ctf/scoreboard.d.ts +34 -0
- package/dist/types/modes/ctf/scoreboard.d.ts.map +1 -0
- package/dist/types/modes/ctf/state.d.ts +15 -0
- package/dist/types/modes/ctf/state.d.ts.map +1 -0
- package/dist/types/modes/ctf/teams.d.ts +28 -0
- package/dist/types/modes/ctf/teams.d.ts.map +1 -0
- package/dist/types/physics/collision.d.ts +14 -0
- package/dist/types/physics/collision.d.ts.map +1 -0
- package/dist/types/physics/fluid.d.ts +10 -0
- package/dist/types/physics/fluid.d.ts.map +1 -0
- package/dist/types/physics/movement.d.ts +32 -0
- package/dist/types/physics/movement.d.ts.map +1 -0
- package/dist/types/replay/index.d.ts +3 -0
- package/dist/types/replay/index.d.ts.map +1 -0
- package/dist/types/replay/player.d.ts +15 -0
- package/dist/types/replay/player.d.ts.map +1 -0
- package/dist/types/replay/recorder.d.ts +16 -0
- package/dist/types/replay/recorder.d.ts.map +1 -0
- package/dist/types/save/adapter.d.ts +24 -0
- package/dist/types/save/adapter.d.ts.map +1 -0
- package/dist/types/save/index.d.ts +4 -0
- package/dist/types/save/index.d.ts.map +1 -0
- package/dist/types/save/rerelease.d.ts +50 -0
- package/dist/types/save/rerelease.d.ts.map +1 -0
- package/dist/types/save/save.d.ts +56 -0
- package/dist/types/save/save.d.ts.map +1 -0
- package/dist/types/save/storage.d.ts +37 -0
- package/dist/types/save/storage.d.ts.map +1 -0
- package/dist/types/save/tests/adapter.test.d.ts +2 -0
- package/dist/types/save/tests/adapter.test.d.ts.map +1 -0
- package/dist/types/save/tests/callbacks.test.d.ts +2 -0
- package/dist/types/save/tests/callbacks.test.d.ts.map +1 -0
- package/dist/types/save/tests/playerInventory.test.d.ts +2 -0
- package/dist/types/save/tests/playerInventory.test.d.ts.map +1 -0
- package/dist/types/scripting/hooks.d.ts +61 -0
- package/dist/types/scripting/hooks.d.ts.map +1 -0
- 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":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAmB,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EAGrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAG/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG/D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,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,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAsUD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,CAqBlF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAkCzE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,YAAY,CAsC/F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAUjF"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../../src/save/tests/adapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbacks.test.d.ts","sourceRoot":"","sources":["../../../../src/save/tests/callbacks.test.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
+
}
|