diff --git a/src/view/game.rs b/src/view/game.rs index 8758c8c..af07b1c 100644 --- a/src/view/game.rs +++ b/src/view/game.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; use crate::grid::{Grid,GridElement}; use crate::MAX_FLUID_AMOUNT; -const FLUID_FULLNES_STAGES: usize = 7; +const FLUID_FULLNES_STAGES: usize = 15; pub struct GameViewPlugin; diff --git a/src/view/ui.rs b/src/view/ui.rs index 1f5b140..7937664 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -14,7 +14,8 @@ impl Plugin for UIPlugin { app.add_plugins(FeathersPlugins) .insert_resource(UiTheme(create_dark_theme())) .add_systems(Startup, ui.spawn()) - .add_systems(Update, count_water_amount); + .add_systems(Update, count_water_amount) + .add_systems(PostStartup, |mut commands: Commands, query: Query| query.iter().for_each(|entity| commands.trigger(ReadyPlaceholder(entity)) )); } } @@ -27,6 +28,9 @@ struct SpeedLabel; #[derive(Component, Clone, Default)] struct ToolLabel; +#[derive(EntityEvent,Clone)] +struct ReadyPlaceholder(Entity); + const MAX_FREQUENCY: u32 = 512; const MIN_FREQUENCY: u32 = 1; @@ -245,18 +249,27 @@ fn gravity_control() -> impl Scene { } on(|change: On>, mut gravity: ResMut| { gravity.gravity.x = change.value; + }) + on(|change: On, mut commands: Commands, gravity: Res| { + commands.trigger(UpdateNumberInput { entity: change.0, value: NumberInputValue::F32(gravity.gravity.x) }); }), @FeathersNumberInput { @label_text: "Y" } on(|change: On>, mut gravity: ResMut| { gravity.gravity.y = change.value; + }) + on(|change: On, mut commands: Commands, gravity: Res| { + commands.trigger(UpdateNumberInput { entity: change.0, value: NumberInputValue::F32(gravity.gravity.y) }); }), @FeathersNumberInput { @label_text: "Z" } on(|change: On>, mut gravity: ResMut| { gravity.gravity.z = change.value; + }) + on(|change: On, mut commands: Commands, gravity: Res| { + commands.trigger(UpdateNumberInput { entity: change.0, value: NumberInputValue::F32(gravity.gravity.z) }); }), ] }