From eeebdbd2722a311e4a21da816a4794ba54220070 Mon Sep 17 00:00:00 2001 From: nquidox Date: Sat, 18 Apr 2026 21:55:27 +0300 Subject: [PATCH] moved critical systems to fixed update schedule --- src/states/linear/plugin.rs | 69 +++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/src/states/linear/plugin.rs b/src/states/linear/plugin.rs index b02d144..3b5a724 100644 --- a/src/states/linear/plugin.rs +++ b/src/states/linear/plugin.rs @@ -13,34 +13,43 @@ pub enum LinearUpdateSet { impl Plugin for LinearPlayPlugin { fn build(&self, app: &mut App) { - app - .add_systems(OnEnter(LinearPlayState), (setup, spawn_linear_cannon).chain()) - .add_systems(OnEnter(LinearGameRestart), linear_restart) - .add_plugins(LinearUIPlugin) - .configure_sets( - Update, - LinearUpdateSet::Track.run_if(in_state(LinearPlayState)), - ) - .add_systems( - Update, - ( - toggle_debug_systems, - draw_track_gizmos, - draw_grid, - // draw_cannon_laser, - //несколько систем с соблюдением порядка - calculate_projectile_hits, - linear_move_projectiles, - cycle_cannon_balls, - update_linear_cannon_preview, - spawn_projectile_from_cannon, - spawn_round_ball, - move_round_balls, - rotate_linear_cannon, - ) - .in_set(LinearUpdateSet::Track), - ) - .add_systems(OnExit(LinearPlayState), cleanup); + app.add_systems( + OnEnter(LinearPlayState), + (setup, spawn_linear_cannon).chain(), + ) + .add_systems(OnEnter(LinearGameRestart), linear_restart) + .add_plugins(LinearUIPlugin) + .configure_sets( + Update, + LinearUpdateSet::Track.run_if(in_state(LinearPlayState)), + ).configure_sets( + FixedUpdate, + LinearUpdateSet::Track.run_if(in_state(LinearPlayState)), + ) + .add_systems( + Update, + ( + toggle_debug_systems, + draw_track_gizmos, + draw_grid, + // draw_cannon_laser, + //несколько систем с соблюдением порядка + cycle_cannon_balls, + update_linear_cannon_preview, + spawn_projectile_from_cannon, + rotate_linear_cannon, + ).in_set(LinearUpdateSet::Track), + ) + .add_systems( + FixedUpdate, + ( + spawn_round_ball, + move_round_balls, + calculate_projectile_hits, + linear_move_projectiles, + ).in_set(LinearUpdateSet::Track), + ) + .add_systems(OnExit(LinearPlayState), cleanup); } } @@ -51,8 +60,8 @@ fn setup(mut commands: Commands) { commands.insert_resource(build_track); commands.insert_resource(precalculated_track); commands.insert_resource(build_linear_cannon_state()); - - let debug_config = LinearDebugConfig{ + + let debug_config = LinearDebugConfig { toggle_track: true, toggle_grid: true, toggle_laser: false,