diff --git a/assets/voxygen/voxel/armor/belt/cloth_blue_0.vox b/assets/voxygen/voxel/armor/belt/cloth_blue_0.vox new file mode 100644 index 0000000000..4402e9f2d1 --- /dev/null +++ b/assets/voxygen/voxel/armor/belt/cloth_blue_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:214ecba8428bf90de0e5a4703f028ce474b47121b29d5d786681c5e7081a7c71 +size 1480 diff --git a/assets/voxygen/voxel/armor/belt/cloth_green_0.vox b/assets/voxygen/voxel/armor/belt/cloth_green_0.vox new file mode 100644 index 0000000000..5bac822528 --- /dev/null +++ b/assets/voxygen/voxel/armor/belt/cloth_green_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbfa2b6ff274de9fab0a7b910849d9059d9879a041166aeff7cfa8b95cdcecac +size 1480 diff --git a/assets/voxygen/voxel/armor/belt/cloth_purple_0.vox b/assets/voxygen/voxel/armor/belt/cloth_purple_0.vox new file mode 100644 index 0000000000..1aec2c1601 --- /dev/null +++ b/assets/voxygen/voxel/armor/belt/cloth_purple_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f038d665dec7532e904efc4a5c64f610e72a8ab3b526f254d5ad6c1d0b55f9d3 +size 1480 diff --git a/assets/voxygen/voxel/armor/chest/cloth_blue_0.vox b/assets/voxygen/voxel/armor/chest/cloth_blue_0.vox new file mode 100644 index 0000000000..fe27d36a65 --- /dev/null +++ b/assets/voxygen/voxel/armor/chest/cloth_blue_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5290d1fb4cc05689bc27b4cd5927809208ef93bbd7f2366c7c95c6d0a99d1a40 +size 2896 diff --git a/assets/voxygen/voxel/armor/chest/cloth_green_0.vox b/assets/voxygen/voxel/armor/chest/cloth_green_0.vox new file mode 100644 index 0000000000..54b8596052 --- /dev/null +++ b/assets/voxygen/voxel/armor/chest/cloth_green_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92e619fe8e555784f6bcf0ec8701741f7868a5b17ef005231bd53ce7343112b6 +size 2896 diff --git a/assets/voxygen/voxel/armor/chest/cloth_purple_0.vox b/assets/voxygen/voxel/armor/chest/cloth_purple_0.vox new file mode 100644 index 0000000000..61d9c3217e --- /dev/null +++ b/assets/voxygen/voxel/armor/chest/cloth_purple_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b97d4b71ec99918480672fd03135cb99276083e2570214b65813f7d399bfb195 +size 2896 diff --git a/assets/voxygen/voxel/armor/foot/cloth_blue_0.vox b/assets/voxygen/voxel/armor/foot/cloth_blue_0.vox new file mode 100644 index 0000000000..eb513adc8c --- /dev/null +++ b/assets/voxygen/voxel/armor/foot/cloth_blue_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57ec1ba7989c2a583b3ae38f940c0b8438e397cf0b4d09d43f0d75f6c7dce028 +size 1480 diff --git a/assets/voxygen/voxel/armor/foot/cloth_green_0.vox b/assets/voxygen/voxel/armor/foot/cloth_green_0.vox new file mode 100644 index 0000000000..31ebc3f794 --- /dev/null +++ b/assets/voxygen/voxel/armor/foot/cloth_green_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a343d79c14eb6101ece034a34f64cdd7f1272f4d5ffdda2b5896732bc2b7ae36 +size 1480 diff --git a/assets/voxygen/voxel/armor/foot/cloth_purple_0.vox b/assets/voxygen/voxel/armor/foot/cloth_purple_0.vox new file mode 100644 index 0000000000..9165d0ac45 --- /dev/null +++ b/assets/voxygen/voxel/armor/foot/cloth_purple_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a45bd1b8ecfcab47da779269ec6dcf67a7e99a0e75f6523167f6e27c946d1b1 +size 1480 diff --git a/assets/voxygen/voxel/armor/hand/cloth_blue_0_left.vox b/assets/voxygen/voxel/armor/hand/cloth_blue_0_left.vox new file mode 100644 index 0000000000..0f13f1967e --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/cloth_blue_0_left.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2facf25e29008eff1e95b7e2943ff96a776d8d8cff74c0fb9b68506a76c8b291 +size 55723 diff --git a/assets/voxygen/voxel/armor/hand/cloth_blue_0_right.vox b/assets/voxygen/voxel/armor/hand/cloth_blue_0_right.vox new file mode 100644 index 0000000000..f71e01b85a --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/cloth_blue_0_right.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f22d6fad1a1752016d79a0f9bbb305be31fb7209d5d5679126de612c68befff9 +size 1240 diff --git a/assets/voxygen/voxel/armor/hand/cloth_green_left_0.vox b/assets/voxygen/voxel/armor/hand/cloth_green_left_0.vox new file mode 100644 index 0000000000..23653e83c1 --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/cloth_green_left_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:961948a44f60d0422d340e03e8328271f28bd653342d1d49ad2db8c2f7d93de1 +size 55723 diff --git a/assets/voxygen/voxel/armor/hand/cloth_green_right_0.vox b/assets/voxygen/voxel/armor/hand/cloth_green_right_0.vox new file mode 100644 index 0000000000..83da1d86f6 --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/cloth_green_right_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de77fef40a136ed944b050fc0cff59dc78f043839f335ad4d578478b73d5b847 +size 55723 diff --git a/assets/voxygen/voxel/armor/hand/cloth_purple_0_left.vox b/assets/voxygen/voxel/armor/hand/cloth_purple_0_left.vox new file mode 100644 index 0000000000..8ffef537eb --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/cloth_purple_0_left.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93dd0d8050e30b1349218efb63c2e669fa750da83156a6eded1395731b8e057d +size 55723 diff --git a/assets/voxygen/voxel/armor/hand/cloth_purple_0_right.vox b/assets/voxygen/voxel/armor/hand/cloth_purple_0_right.vox new file mode 100644 index 0000000000..148bae4f57 --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/cloth_purple_0_right.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0fd8ff5b52d6d7f8a2d8967da1957d21012958714cce43f0a0105d90b76c3fe +size 1240 diff --git a/assets/voxygen/voxel/armor/pants/cloth_blue_0.vox b/assets/voxygen/voxel/armor/pants/cloth_blue_0.vox new file mode 100644 index 0000000000..8bd1fbf769 --- /dev/null +++ b/assets/voxygen/voxel/armor/pants/cloth_blue_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:016dfd8f53ffbc51cb49f097a55eb5f7f7f33c22a143f50ba1c9b48236b6c6dd +size 56723 diff --git a/assets/voxygen/voxel/armor/pants/cloth_green_0.vox b/assets/voxygen/voxel/armor/pants/cloth_green_0.vox new file mode 100644 index 0000000000..89cba3fc8d --- /dev/null +++ b/assets/voxygen/voxel/armor/pants/cloth_green_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19c2a53716b89f3ed90078ce5e43eecaff3ebb86b2409b7b0f709224de421310 +size 56723 diff --git a/assets/voxygen/voxel/armor/pants/cloth_purple_0.vox b/assets/voxygen/voxel/armor/pants/cloth_purple_0.vox new file mode 100644 index 0000000000..455e0ef463 --- /dev/null +++ b/assets/voxygen/voxel/armor/pants/cloth_purple_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:872d7aafecb11c883d5f1771cc94224558724bc7f817f2ce605cdbc6b9bf2147 +size 56723 diff --git a/assets/voxygen/voxel/armor/shoulder/cloth_blue_left_0.vox b/assets/voxygen/voxel/armor/shoulder/cloth_blue_left_0.vox new file mode 100644 index 0000000000..32e876ce57 --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/cloth_blue_left_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b41bf446f4612c3cd827940e1dc8595c5a623ce1afe31dfe9d028d7b777cf77a +size 1340 diff --git a/assets/voxygen/voxel/armor/shoulder/cloth_blue_right_0.vox b/assets/voxygen/voxel/armor/shoulder/cloth_blue_right_0.vox new file mode 100644 index 0000000000..32e876ce57 --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/cloth_blue_right_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b41bf446f4612c3cd827940e1dc8595c5a623ce1afe31dfe9d028d7b777cf77a +size 1340 diff --git a/assets/voxygen/voxel/armor/shoulder/cloth_green_left_0.vox b/assets/voxygen/voxel/armor/shoulder/cloth_green_left_0.vox new file mode 100644 index 0000000000..c2d056ebb5 --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/cloth_green_left_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36750ddf18297e5f1ef2c9b4afecb38ded31464c76b655491059b58d081f1873 +size 1340 diff --git a/assets/voxygen/voxel/armor/shoulder/cloth_green_right_0.vox b/assets/voxygen/voxel/armor/shoulder/cloth_green_right_0.vox new file mode 100644 index 0000000000..c2d056ebb5 --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/cloth_green_right_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36750ddf18297e5f1ef2c9b4afecb38ded31464c76b655491059b58d081f1873 +size 1340 diff --git a/assets/voxygen/voxel/armor/shoulder/cloth_purple_left_0.vox b/assets/voxygen/voxel/armor/shoulder/cloth_purple_left_0.vox new file mode 100644 index 0000000000..19a1ee8e9b --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/cloth_purple_left_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a386f52040323fb01893607aa815c45037143aa84e4b5c504175c0311bf2c45 +size 55823 diff --git a/assets/voxygen/voxel/armor/shoulder/cloth_purple_right_0.vox b/assets/voxygen/voxel/armor/shoulder/cloth_purple_right_0.vox new file mode 100644 index 0000000000..69c3b1ea6c --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/cloth_purple_right_0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d374ea5deb33c67c366ba76c960b7a7848d4126076ea44eb25dfc3dd10d4ab1 +size 1340 diff --git a/common/src/comp/controller.rs b/common/src/comp/controller.rs index 8b88f488c4..52e718d974 100644 --- a/common/src/comp/controller.rs +++ b/common/src/comp/controller.rs @@ -125,6 +125,7 @@ pub struct ControllerInputs { pub wall_leap: Input, pub respawn: Input, pub toggle_wield: Input, + pub swap_loadout: Input, pub charge: Input, pub move_dir: Vec2, pub look_dir: Vec3, @@ -151,6 +152,7 @@ impl ControllerInputs { self.wall_leap.tick(dt); self.respawn.tick(dt); self.toggle_wield.tick(dt); + self.swap_loadout.tick(dt); self.charge.tick(dt); } diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index c6fb06da39..9e7db75345 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -86,7 +86,7 @@ fn swim_move(data: &JoinData, update: &mut StateUpdate) { if data.inputs.jump.is_pressed() && !data.inputs.jump.is_long_press(Duration::from_millis(600)) { update.vel.0.z = - (update.vel.0.z + data.dt.0 * GRAVITY * 1.25).min(BASE_HUMANOID_WATER_SPEED); + (update.vel.0.z + data.dt.0 * GRAVITY * 2.25).min(BASE_HUMANOID_WATER_SPEED); } } @@ -129,7 +129,7 @@ pub fn handle_climb(data: &JoinData, update: &mut StateUpdate) { } } -/// Checks that player can `Glide` and updates `CharacterState` if so +/// Checks that player can Unwield and updates `CharacterState` if so pub fn handle_unwield(data: &JoinData, update: &mut StateUpdate) { if let CharacterState::Wielding { .. } = update.character { if data.inputs.toggle_wield.is_pressed() { diff --git a/voxygen/src/controller.rs b/voxygen/src/controller.rs index 77049acc21..2e6f8d8d3c 100644 --- a/voxygen/src/controller.rs +++ b/voxygen/src/controller.rs @@ -160,6 +160,9 @@ impl From<&crate::settings::GamepadSettings> for ControllerSettings { map.entry(settings.game_buttons.toggle_wield) .or_default() .push(GameInput::ToggleWield); + map.entry(settings.game_buttons.swap_loadout) + .or_default() + .push(GameInput::SwapLoadout); map.entry(settings.game_buttons.charge) .or_default() .push(GameInput::Charge); diff --git a/voxygen/src/session.rs b/voxygen/src/session.rs index 64571ae644..f0e4be378d 100644 --- a/voxygen/src/session.rs +++ b/voxygen/src/session.rs @@ -319,6 +319,26 @@ impl PlayState for SessionState { Event::InputUpdate(GameInput::WallLeap, state) => { self.inputs.wall_leap.set_state(state) }, + Event::InputUpdate(GameInput::ToggleWield, state) => { + self.inputs.toggle_wield.set_state(state); + }, + Event::InputUpdate(GameInput::SwapLoadout, state) => { + let mut client = self.client.borrow_mut(); + let entity = client.entity(); + let loadout = client + .state() + .read_storage::() + .get(entity) + .cloned(); + + if let Some(loadout) = loadout { + let mut new_loadout = loadout.clone(); + new_loadout.second_item = loadout.active_item; + new_loadout.active_item = loadout.second_item; + + client.state_mut().write_component(entity, new_loadout); + } + }, Event::InputUpdate(GameInput::Mount, true) => { let mut client = self.client.borrow_mut(); if client.is_mounted() { @@ -384,9 +404,6 @@ impl PlayState for SessionState { } } }, - Event::InputUpdate(GameInput::ToggleWield, state) => { - self.inputs.toggle_wield.set_state(state) - }, Event::InputUpdate(GameInput::Charge, state) => { self.inputs.charge.set_state(state); }, diff --git a/voxygen/src/settings.rs b/voxygen/src/settings.rs index 78431b2dd1..d802c3dddd 100644 --- a/voxygen/src/settings.rs +++ b/voxygen/src/settings.rs @@ -50,6 +50,7 @@ pub struct ControlSettings { pub respawn: KeyMouse, pub interact: KeyMouse, pub toggle_wield: KeyMouse, + pub swap_loadout: KeyMouse, pub charge: KeyMouse, } @@ -100,6 +101,7 @@ impl Default for ControlSettings { respawn: KeyMouse::Key(VirtualKeyCode::Space), interact: KeyMouse::Mouse(MouseButton::Right), toggle_wield: KeyMouse::Key(VirtualKeyCode::T), + swap_loadout: KeyMouse::Key(VirtualKeyCode::LAlt), charge: KeyMouse::Key(VirtualKeyCode::Key1), } } @@ -183,6 +185,7 @@ pub mod con_settings { pub respawn: Button, pub interact: Button, pub toggle_wield: Button, + pub swap_loadout: Button, pub charge: Button, } @@ -268,6 +271,7 @@ pub mod con_settings { respawn: Button::Simple(GilButton::RightTrigger2), interact: Button::Simple(GilButton::LeftTrigger2), toggle_wield: Button::Simple(GilButton::DPadLeft), + swap_loadout: Button::Simple(GilButton::Unknown), charge: Button::Simple(GilButton::Unknown), } } diff --git a/voxygen/src/window.rs b/voxygen/src/window.rs index f052ec73a2..f614b280a0 100644 --- a/voxygen/src/window.rs +++ b/voxygen/src/window.rs @@ -49,6 +49,7 @@ pub enum GameInput { Interact, ToggleWield, Charge, + SwapLoadout, } /// Represents a key that the game menus recognise after input mapping @@ -455,6 +456,9 @@ impl Window { map.entry(settings.controls.toggle_wield) .or_default() .push(GameInput::ToggleWield); + map.entry(settings.controls.swap_loadout) + .or_default() + .push(GameInput::SwapLoadout); map.entry(settings.controls.charge) .or_default() .push(GameInput::Charge);