diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-05-10 13:29:56 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-05-10 13:29:56 -0400 |
| commit | 7f63ec5c10eb7e8dd4edaabd1a6a437328911d39 (patch) | |
| tree | 36bd3d75ebc0c25256413c21a7cb28c9296953f5 /src/ui.rs | |
| parent | c9041e2e6fe59d6127bb1085b874e8e3cda8000e (diff) | |
| download | systemic4x-7f63ec5c10eb7e8dd4edaabd1a6a437328911d39.tar.gz systemic4x-7f63ec5c10eb7e8dd4edaabd1a6a437328911d39.tar.bz2 systemic4x-7f63ec5c10eb7e8dd4edaabd1a6a437328911d39.zip | |
fleets
Diffstat (limited to 'src/ui.rs')
| -rw-r--r-- | src/ui.rs | 29 |
1 files changed, 16 insertions, 13 deletions
@@ -15,8 +15,8 @@ use crate::ui::topbar::TopBarState; pub struct State { pub camera_target: Option<BodyId>, - 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); } } } |
