Swap weapon on scroll wheel

This commit is contained in:
Sofia 2026-07-24 23:10:07 +03:00
parent d0ece667c2
commit 27869e9072
2 changed files with 20 additions and 0 deletions

View File

@ -114,6 +114,16 @@ weapon_2={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"key_label":0,"unicode":50,"location":0,"echo":false,"script":null)
]
}
swap_weapon_up={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
swap_weapon_down={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
[physics]

View File

@ -500,6 +500,16 @@ impl ICharacterBody3D for LocalPlayer {
Some(WeaponType::Raygun)
} else if event.is_action_pressed("weapon_2") {
Some(WeaponType::Shotgun)
} else if (event.is_action_pressed("swap_weapon_up")
|| event.is_action_pressed("swap_weapon_down"))
&& let Some(game) = Game::singleton()
&& let Some(player) = game.bind().find_player(self.player_id.unwrap_or(0))
{
match player.last_held_weapon {
WeaponType::Raygun => Some(WeaponType::Shotgun),
WeaponType::Shotgun => Some(WeaponType::Raygun),
WeaponType::Ball => None,
}
} else {
None
};