From e6d87dd064a70ba57fcd91caef6da89937d330a8 Mon Sep 17 00:00:00 2001 From: GarandPLG Date: Thu, 16 Apr 2026 22:02:15 +0200 Subject: [PATCH] Refactor Units enum location and chain CellWidget setters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move Units enum from the units module into the skirmish state module, add a dedicated Players enum, and remove the now‑unused unit module. Update all imports accordingly. Adjust CellWidget's set_zoom_level and set_structure to return &mut Self, enabling method chaining. --- src/app/states/mod.rs | 2 +- src/app/states/skirmish.rs | 13 +++++++++---- src/app/states/skirmish_states/board.rs | 5 +++-- src/app/units/mod.rs | 2 -- src/app/units/unit.rs | 6 ------ src/app/widgets/cell.rs | 11 +++++------ 6 files changed, 18 insertions(+), 21 deletions(-) delete mode 100644 src/app/units/unit.rs diff --git a/src/app/states/mod.rs b/src/app/states/mod.rs index e1f52ac..5dbfd16 100644 --- a/src/app/states/mod.rs +++ b/src/app/states/mod.rs @@ -9,5 +9,5 @@ pub use main_menu::MainMenuState; pub use perk_decks::{PerkDecks, PerkDecksState}; pub use settings::SettingsState; pub use skills_config::SkillsConfigState; -pub use skirmish::{CellStructure, GameMode, Players, SkirmishState, ZoomLevel}; +pub use skirmish::{CellStructure, GameMode, Players, SkirmishState, Units, ZoomLevel}; pub use skirmish_states::{FocusedCell, Offset}; diff --git a/src/app/states/skirmish.rs b/src/app/states/skirmish.rs index da7c032..1126aaf 100644 --- a/src/app/states/skirmish.rs +++ b/src/app/states/skirmish.rs @@ -1,4 +1,4 @@ -use crate::app::{buildings::BaseBuilding, states::skirmish_states::BoardState}; +use crate::app::{buildings::BaseBuilding, states::skirmish_states::BoardState, units::MinerUnit}; use clap::ValueEnum; #[derive(Debug, Clone, PartialEq, Eq)] @@ -21,6 +21,12 @@ pub enum ZoomLevel { ZoomedOut, } +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Players { + Player, + Enemy, +} + #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum CellStructure { Base(BaseBuilding), @@ -29,7 +35,6 @@ pub enum CellStructure { } #[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum Players { - Player, - Enemy, +pub enum Units { + Miner(MinerUnit), } diff --git a/src/app/states/skirmish_states/board.rs b/src/app/states/skirmish_states/board.rs index 3bcefe5..cea3322 100644 --- a/src/app/states/skirmish_states/board.rs +++ b/src/app/states/skirmish_states/board.rs @@ -2,9 +2,10 @@ use crate::app::{ buildings::BaseBuilding, helpers::{CellSizes, cell_size_helper, cells_area_helper}, states::{ - CellStructure, FocusedCell, Offset, Players, ZoomLevel, skirmish_states::MoveFocusedCell, + CellStructure, FocusedCell, Offset, Players, Units, ZoomLevel, + skirmish_states::MoveFocusedCell, }, - units::{MinerUnit, Units}, + units::MinerUnit, widgets::CellWidget, }; use ratatui::layout::Rect; diff --git a/src/app/units/mod.rs b/src/app/units/mod.rs index 179756b..684d9b8 100644 --- a/src/app/units/mod.rs +++ b/src/app/units/mod.rs @@ -1,5 +1,3 @@ pub mod miner; -pub mod unit; pub use miner::MinerUnit; -pub use unit::Units; diff --git a/src/app/units/unit.rs b/src/app/units/unit.rs deleted file mode 100644 index e12c8dc..0000000 --- a/src/app/units/unit.rs +++ /dev/null @@ -1,6 +0,0 @@ -use crate::app::units::MinerUnit; - -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum Units { - Miner(MinerUnit), -} diff --git a/src/app/widgets/cell.rs b/src/app/widgets/cell.rs index c0be87a..6acd2b1 100644 --- a/src/app/widgets/cell.rs +++ b/src/app/widgets/cell.rs @@ -1,7 +1,4 @@ -use crate::app::{ - states::{CellStructure, Players, ZoomLevel}, - units::Units, -}; +use crate::app::states::{CellStructure, Players, Units, ZoomLevel}; use ratatui::{ buffer::Buffer, layout::{Alignment, Rect}, @@ -46,12 +43,14 @@ impl CellWidget { self } - pub fn set_zoom_level(&mut self, zoom_level: ZoomLevel) { + pub fn set_zoom_level(&mut self, zoom_level: ZoomLevel) -> &mut Self { self.zoom_level = zoom_level; + self } - pub fn set_structure(&mut self, sctructure: CellStructure) { + pub fn set_structure(&mut self, sctructure: CellStructure) -> &mut Self { self.structure = sctructure; + self } pub fn get_marked(&self) -> bool {