feat: implement loadout management system, interactive pause menu, and weapon slot switching functionality

This commit is contained in:
DottsGit
2026-06-04 09:12:16 -04:00
parent 45fb7f0f38
commit 8eea7d6e36
8 changed files with 423 additions and 10 deletions
+12 -10
View File
@@ -74,13 +74,16 @@ func _build_input_map() -> void:
"move_right": [KEY_D],
"weapon_next": [MOUSE_BUTTON_WHEEL_UP],
"weapon_prev": [MOUSE_BUTTON_WHEEL_DOWN],
"weapon_1": [KEY_1],
"weapon_2": [KEY_2],
"weapon_3": [KEY_3],
}
for action in bindings:
if not InputMap.has_action(action):
InputMap.add_action(action)
InputMap.action_erase_events(action)
for code in bindings[action]:
if code in [KEY_SPACE, KEY_SHIFT, KEY_CTRL, KEY_R, KEY_F, KEY_E, KEY_W, KEY_S, KEY_A, KEY_D]:
if code in [KEY_SPACE, KEY_SHIFT, KEY_CTRL, KEY_R, KEY_F, KEY_E, KEY_W, KEY_S, KEY_A, KEY_D, KEY_1, KEY_2, KEY_3]:
var ev := InputEventKey.new()
ev.keycode = code
InputMap.action_add_event(action, ev)
@@ -318,15 +321,14 @@ func _build_player() -> void:
camera.fov = 90.0
head_pivot.add_child(camera)
# ── Temporary Weapon Setup ──────────────────────────────────────────────────
# TODO: Change how the player is given weapons in the future to a loadout schema.
var shotgun_script = preload("res://weapons/double_barrel_shotgun.gd")
if shotgun_script:
var shotgun = shotgun_script.new()
shotgun.name = "DoubleBarrelShotgun"
shotgun.player = player
shotgun.camera = camera
camera.add_child(shotgun)
# ── Weapon Setup ────────────────────────────────────────────────────────────
var wmanager_script = preload("res://weapons/weapon_manager.gd")
if wmanager_script:
var wman = wmanager_script.new()
wman.name = "WeaponManager"
wman.player = player
wman.camera = camera
camera.add_child(wman)
var rig_script = preload("res://characters/player/fps_camera_rig.gd")
if rig_script: