From 007ddf56b1338dfa0c87cb24a68e2ca6d0a293d6 Mon Sep 17 00:00:00 2001 From: Rendo Date: Fri, 30 Jan 2026 23:05:54 +0500 Subject: [PATCH] turn debug --- src/card/playing.rs | 2 ++ src/dev_tools/mod.rs | 27 ++++++++++++++++++++++++++- src/turns.rs | 19 +++++-------------- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/card/playing.rs b/src/card/playing.rs index 777de0e..af09bbf 100644 --- a/src/card/playing.rs +++ b/src/card/playing.rs @@ -7,6 +7,7 @@ use crate::{ drag::{CardDropped, MousePosition}, }, grid::Grid, + turns::TurnUnit, unit::UnitTextures, }; @@ -29,6 +30,7 @@ pub fn card_playing_system( AnimatedTransform::identity(), Transform::from_translation(mouse_position.0), bundle, + TurnUnit, )) .id(); if grid.try_set(mouse_position.0.truncate(), unit) { diff --git a/src/dev_tools/mod.rs b/src/dev_tools/mod.rs index dd55c03..ee088b2 100644 --- a/src/dev_tools/mod.rs +++ b/src/dev_tools/mod.rs @@ -2,6 +2,7 @@ use bevy::prelude::*; use crate::buttons; use crate::card; +use crate::turns::TurnState; use crate::turns::try_confirm_turn; const PANEL_BORDER: Color = Color::srgb_u8(36, 36, 143); @@ -13,10 +14,14 @@ pub struct DevToolsPlugin; impl Plugin for DevToolsPlugin { fn build(&self, app: &mut App) { - app.add_systems(Startup, setup_debug_menu); + app.add_systems(Startup, setup_debug_menu) + .add_systems(Update, print_state); } } +#[derive(Component)] +struct TurnStateLabel; + fn setup_debug_menu(mut commands: Commands) { let root = commands .spawn(( @@ -53,6 +58,14 @@ fn setup_debug_menu(mut commands: Commands) { BorderColor::all(PANEL_BORDER), BackgroundColor(PANEL_BACKGROUND), ChildOf(root), + children![( + Text::new(""), + TextFont { + font_size: 11.0, + ..default() + }, + TurnStateLabel + )], )) .id(); @@ -73,6 +86,18 @@ fn setup_debug_menu(mut commands: Commands) { ); } +fn print_state( + mut state_label: Single<&mut Text, With>, + state: Res>, +) { + state_label.0 = match state.get() { + TurnState::Turn => "Your turn".to_string(), + TurnState::PreEffectProcess => "Processing pre unit effects".to_string(), + TurnState::UnitProcess => "Processing units".to_string(), + TurnState::PostEffectProcess => "Processing post unit effects".to_string(), + } +} + fn button(child_of: Entity, text: impl Into) -> impl Bundle { ( Button, diff --git a/src/turns.rs b/src/turns.rs index 561c0c5..9e49bff 100644 --- a/src/turns.rs +++ b/src/turns.rs @@ -16,7 +16,7 @@ impl Plugin for TurnSystemPlugin { } #[derive(Component)] -pub struct TurnBusy(pub bool); +pub struct TurnBusy; #[derive(Component)] pub struct TurnPreEffect; @@ -38,17 +38,17 @@ pub enum TurnState { fn pre_effect_setup(mut commands: Commands, query: Query>) { for effect in query { - commands.entity(effect).insert(TurnBusy(false)); + commands.entity(effect).insert(TurnBusy); } } fn unit_setup(mut commands: Commands, query: Query>) { for unit in query { - commands.entity(unit).insert(TurnBusy(false)); + commands.entity(unit).insert(TurnBusy); } } fn post_effect_setup(mut commands: Commands, query: Query>) { for effect in query { - commands.entity(effect).insert(TurnBusy(false)); + commands.entity(effect).insert(TurnBusy); } } @@ -59,16 +59,7 @@ pub fn try_confirm_turn(mut commands: Commands, turn_state: Res } fn process_busy_turnables(mut commands: Commands, query: Query<(Entity, &TurnBusy)>) { - let mut advance_flag: bool = true; - for (turnable, component) in query { - if component.0 { - commands.entity(turnable).remove::(); - } else { - advance_flag = false; - } - } - - if advance_flag { + if query.iter().len() == 0 { commands.run_system_cached(try_advance); } }