From 50c0033f2f91cb845ec6447715fd62dd189768a0 Mon Sep 17 00:00:00 2001 From: Ryan Walters Date: Sun, 23 Nov 2025 00:44:38 -0600 Subject: [PATCH] fix(game): track cursor and touch state in dirty flag for immediate visual feedback Extends dirty_render_system to detect changes in CursorPosition and TouchState resources. This ensures re-renders trigger immediately when clicking to activate drag functionality, when cursor debug visualization updates, and when cursor fade-out occurs after timeout. --- pacman/src/systems/render.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pacman/src/systems/render.rs b/pacman/src/systems/render.rs index 5f50398..33949e2 100644 --- a/pacman/src/systems/render.rs +++ b/pacman/src/systems/render.rs @@ -2,9 +2,10 @@ use crate::error::{GameError, TextureError}; use crate::map::builder::Map; use crate::systems::{ debug_render_system, BatchedLinesResource, Collider, CursorPosition, DebugState, DebugTextureResource, Position, SystemId, - SystemTimings, TtfAtlasResource, + SystemTimings, TouchState, TtfAtlasResource, }; use crate::texture::sprite::{AtlasTile, SpriteAtlas}; +use bevy_ecs::change_detection::DetectChanges; use bevy_ecs::component::Component; use bevy_ecs::entity::Entity; use bevy_ecs::event::EventWriter; @@ -92,8 +93,10 @@ pub fn dirty_render_system( mut dirty: ResMut, changed: Query<(), Or<(Changed, Changed, Changed)>>, removed_renderables: RemovedComponents, + cursor: Res, + touch_state: Res, ) { - if changed.iter().count() > 0 || !removed_renderables.is_empty() { + if changed.iter().count() > 0 || !removed_renderables.is_empty() || cursor.is_changed() || touch_state.is_changed() { dirty.0 = true; } }