diff --git a/assets/ui/enabled_cross.png b/assets/ui/enabled_cross.png index 933834e..d61690f 100644 Binary files a/assets/ui/enabled_cross.png and b/assets/ui/enabled_cross.png differ diff --git a/assets/ui/enabled_grass.png b/assets/ui/enabled_grass.png index aae4eb4..71c9c2c 100644 Binary files a/assets/ui/enabled_grass.png and b/assets/ui/enabled_grass.png differ diff --git a/assets/ui/enabled_tree.png b/assets/ui/enabled_tree.png index 6019c1d..955b552 100644 Binary files a/assets/ui/enabled_tree.png and b/assets/ui/enabled_tree.png differ diff --git a/src/ui.rs b/src/ui.rs index 6059389..ba017e8 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -3,6 +3,12 @@ use bevy::{asset::embedded_asset, input::mouse::MouseWheel, math::{NormedVectorS use crate::map::{self, CellKind, MapMarker}; +// #77767b +const TABBAR_COLOR: Color = Color::srgb(119./255., 118./255., 123./255.); + +// #E8E8E8 +const ENABLED_BUTTON_COLOR: Color = Color::srgb(232./255., 232./255., 232./255.); + pub struct Plugin; impl bevy::prelude::Plugin for Plugin { fn build(&self, app: &mut App) { @@ -18,7 +24,7 @@ impl bevy::prelude::Plugin for Plugin { } } -#[derive(Resource, Default)] +#[derive(Resource, Default, PartialEq, Eq)] pub enum CurrentAction { #[default] None, @@ -100,40 +106,46 @@ fn setup( align_self: AlignSelf::FlexEnd, !}; Button; - BackgroundColor(#77767b); - [ + BackgroundColor(TABBAR_COLOR); + [forest][ ImageNode::new(asset_server.load("embedded://forestiles/../assets/ui/enabled_tree.png")); Node { - height: 80%, - margin: [>1vh], + // height: 80%, + // margin: [>1vh], !}; - .observe(|trigger: Trigger>, mut ca: ResMut| { + BackgroundColor(TABBAR_COLOR); + .observe(move |trigger: Trigger>, mut ca: ResMut, mut bg: Query<&mut BackgroundColor>| { if trigger.button == PointerButton::Primary { - *ca = CurrentAction::ChangeCell(CellKind::Forest); + if *ca == CurrentAction::ChangeCell(CellKind::Forest) { + *ca = CurrentAction::None; + bg.get_mut(forest).unwrap().0 = TABBAR_COLOR; + bg.get_mut(grass).unwrap().0 = TABBAR_COLOR; + } else { + *ca = CurrentAction::ChangeCell(CellKind::Forest); + bg.get_mut(forest).unwrap().0 = ENABLED_BUTTON_COLOR; + bg.get_mut(grass).unwrap().0 = TABBAR_COLOR; + } } }); ] - [ + [grass][ ImageNode::new(asset_server.load("embedded://forestiles/../assets/ui/enabled_grass.png")); Node { - height: 80%, - margin: [>1vh], + // height: 80%, + // margin: [>1vh], !}; - .observe(|trigger: Trigger>, mut ca: ResMut| { + BackgroundColor(TABBAR_COLOR); + .observe(move |trigger: Trigger>, mut ca: ResMut, mut bg: Query<&mut BackgroundColor>| { if trigger.button == PointerButton::Primary { - *ca = CurrentAction::ChangeCell(CellKind::Grass); - } - }); - ] - [ - ImageNode::new(asset_server.load("embedded://forestiles/../assets/ui/enabled_cross.png")); - Node { - height: 80%, - margin: [>1vh], - !}; - .observe(|trigger: Trigger>, mut ca: ResMut| { - if trigger.button == PointerButton::Primary { - *ca = CurrentAction::None; + if *ca == CurrentAction::ChangeCell(CellKind::Grass) { + *ca = CurrentAction::None; + bg.get_mut(forest).unwrap().0 = TABBAR_COLOR; + bg.get_mut(grass).unwrap().0 = TABBAR_COLOR; + } else { + *ca = CurrentAction::ChangeCell(CellKind::Grass); + bg.get_mut(forest).unwrap().0 = TABBAR_COLOR; + bg.get_mut(grass).unwrap().0 = ENABLED_BUTTON_COLOR; + } } }); ]