From 28292439de1330a8a8ccc131927fb229be631f8b Mon Sep 17 00:00:00 2001 From: Edvin Bryntesson Date: Tue, 3 Sep 2024 08:36:08 +0200 Subject: [PATCH] refactor away unnecessary abstraction --- pumpkin-inventory/src/container_click.rs | 10 ++---- pumpkin/src/client/container.rs | 46 +++++++++--------------- 2 files changed, 18 insertions(+), 38 deletions(-) diff --git a/pumpkin-inventory/src/container_click.rs b/pumpkin-inventory/src/container_click.rs index 14a26c905..2e739d12a 100644 --- a/pumpkin-inventory/src/container_click.rs +++ b/pumpkin-inventory/src/container_click.rs @@ -1,17 +1,11 @@ use pumpkin_world::item::ItemStack; -pub struct ClickMode { +pub struct Click { pub slot: Slot, pub click_type: ClickType, } -pub struct Click { - pub mode: ClickMode, - pub changed_items: Vec, - pub carried_item: Option, -} - -impl ClickMode { +impl Click { pub fn new(mode: u8, button: i8, slot: i16) -> Self { match mode { 0 => Self::new_normal_click(button, slot), diff --git a/pumpkin/src/client/container.rs b/pumpkin/src/client/container.rs index dee0ae9ca..d681c9676 100644 --- a/pumpkin/src/client/container.rs +++ b/pumpkin/src/client/container.rs @@ -141,36 +141,22 @@ impl Player { dbg!("weird"); return; } - let click = Click { - changed_items: packet - .array_of_changed_slots - .into_iter() - .map(|(slot, item)| { - let slot = slot.try_into().unwrap(); - if let Some(item) = item.to_item() { - ItemChange::Add { slot, item } - } else { - ItemChange::Remove { slot } - } - }) - .collect::>(), - carried_item: packet.carried_item.to_item(), - mode: ClickMode::new( - packet - .mode - .0 - .try_into() - .expect("Mode can only be between 0-6"), - packet.button, - packet.slot, - ), - }; - match click.mode.click_type { + + let click = Click::new( + packet + .mode + .0 + .try_into() + .expect("Mode can only be between 0-6"), + packet.button, + packet.slot, + ); + match click.click_type { ClickType::MouseClick(mouse_click) => { - self.mouse_click(opened_container, mouse_click, click.mode.slot) + self.mouse_click(opened_container, mouse_click, click.slot) } - ClickType::ShiftClick => self.shift_mouse_click(opened_container, click.mode.slot), - ClickType::KeyClick(key_click) => match click.mode.slot { + ClickType::ShiftClick => self.shift_mouse_click(opened_container, click.slot), + ClickType::KeyClick(key_click) => match click.slot { container_click::Slot::Normal(slot) => { self.number_button_pressed(opened_container, key_click, slot) } @@ -179,12 +165,12 @@ impl Player { } }, ClickType::CreativePickItem => { - if let container_click::Slot::Normal(slot) = click.mode.slot { + if let container_click::Slot::Normal(slot) = click.slot { self.creative_pick_item(opened_container, slot) } } ClickType::DoubleClick => { - if let container_click::Slot::Normal(slot) = click.mode.slot { + if let container_click::Slot::Normal(slot) = click.slot { self.double_click(slot) } }