From 7f63ec5c10eb7e8dd4edaabd1a6a437328911d39 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sun, 10 May 2026 13:29:56 -0400 Subject: fleets --- src/ui.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/ui.rs') diff --git a/src/ui.rs b/src/ui.rs index 235481d..c2c4b05 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -15,8 +15,8 @@ use crate::ui::topbar::TopBarState; pub struct State { pub camera_target: Option, - pub topbar_sate: TopBarState, + pub topbar_sate: TopBarState, pub bodies_window: BodiesWindowState, pub fleet_window: FleetWindowState } @@ -30,31 +30,34 @@ impl State { let mut game_state = game_state.borrow_mut(); - let topbar_action = TopBarState::render( - &mut self.topbar_sate, + let topbar_action = self.topbar_sate.paint( + eguictx, &game_state, - eguictx); + &self.bodies_window, + &self.fleet_window); if let Some(by) = topbar_action.advance_tick { game_state.timeman_mut().advance(by) } + if topbar_action.toggle_bodies_window { self.bodies_window.open = !self.bodies_window.open; } + if topbar_action.toggle_fleets_window { self.fleet_window.open = !self.fleet_window.open; } let current_system = match self.topbar_sate.current_system { Some(id) => &game_state.solar_systems()[id], None => return }; - if self.topbar_sate.bodies_window_visible { - let bodies_window_action = - self.bodies_window.render(current_system, eguictx); - if bodies_window_action.focus_body.is_some() { - self.camera_target = bodies_window_action.focus_body; - } + let bodies_window_action = + self.bodies_window.render(current_system, eguictx); + if bodies_window_action.focus_body.is_some() { + self.camera_target = bodies_window_action.focus_body; } - if self.topbar_sate.fleet_window_visible { - let fleet_window_action = - self.fleet_window.render(game_state.borrow(), eguictx); + let fleet_window_action = + self.fleet_window.paint(game_state.borrow(), eguictx, &self.camera_target); + + if let Some(new_fleet) = fleet_window_action.new_fleet { + game_state.new_fleet_from_ui(new_fleet); } } } -- cgit v1.2.3