Bevy+Ratutui powered Monitoring of Pico-Strike devices
at main 54 lines 1.6 kB view raw
1use bevy::{ 2 app::{Plugin, PostUpdate}, 3 ecs::schedule::IntoScheduleConfigs, 4 state::{ 5 condition::in_state, 6 state::{OnEnter, OnExit}, 7 }, 8}; 9 10use crate::state::AppState; 11 12pub mod home; 13pub mod monitoring; 14 15pub struct HomeViewPlugin; 16 17impl Plugin for HomeViewPlugin { 18 fn build(&self, app: &mut bevy::app::App) { 19 app.add_systems(OnEnter(AppState::Home), home::setup_home_view) 20 .add_systems(OnExit(AppState::Home), home::cleanup_home_view) 21 .add_systems( 22 PostUpdate, 23 ( 24 home::search_timer, 25 home::home_message_handler, 26 home::home_view, 27 ) 28 .chain() 29 .run_if(in_state(AppState::Home)), 30 ); 31 } 32} 33 34pub struct MonitoringViewPlugin; 35 36impl Plugin for MonitoringViewPlugin { 37 fn build(&self, app: &mut bevy::app::App) { 38 app.add_systems(OnEnter(AppState::Monitoring), monitoring::enter_monitoring) 39 .add_systems(OnExit(AppState::Monitoring), monitoring::exit_monitoring) 40 .add_systems( 41 PostUpdate, 42 ( 43 monitoring::monitoring_message_handler, 44 ( 45 monitoring::update_device_data, 46 monitoring::clear_device_data, 47 ), 48 monitoring::monitoring_view, 49 ) 50 .chain() 51 .run_if(in_state(AppState::Monitoring)), 52 ); 53 } 54}