use bevy::{color::palettes::css::*, prelude::*, ui::Val::*}; use crate::{ game::machines::*, widgets::{CloseButton, machine_ui_base, spawn_big_red_button}, }; impl CuttingMachine { pub fn spawn_cutter_machine_ui(mut commands: Commands) { commands .spawn((machine_ui_base("Cutting Machine"),)) .with_children(|commands| { // Left panel. For fuel or machine stats or whatever. commands.spawn(( Node { padding: UiRect::all(Px(10.0)), ..default() }, BackgroundColor(GREEN.into()), Pickable::default(), children![(Text::new("Uses: "), TextColor(BLACK.into()),)], )); // Center panel (placeholder for the Card view) commands.spawn(( Node::default(), BackgroundColor(BLUE.into()), Pickable::default(), children![( Text::new("Card cut view placeholder"), TextColor(MAGENTA.into()), TextShadow::default(), ),], )); // Right panel for the "CUT" button commands .spawn(( Node { align_items: AlignItems::End, ..Default::default() }, BackgroundColor(DARK_GRAY.into()), Pickable::default(), )) .with_children(|cmds| spawn_big_red_button(cmds, "CUT")); }); } } impl RotatingMachine { pub fn spawn_rotator_machine_ui(mut commands: Commands) { commands .spawn((machine_ui_base("Rotating Machine"),)) .with_children(|commands| { commands.spawn(CloseButton::bundle(commands.target_entity())); commands.spawn(( Node { padding: UiRect::all(Px(10.0)), ..Default::default() }, BackgroundColor(GREEN.into()), Pickable::default(), children![(Text::new("Uses: "), TextColor(BLACK.into()))], )); // Center panel (placeholder for input-output rotation) commands.spawn(( Node::default(), BackgroundColor(BLUE.into()), Pickable::default(), children![ Text::new("Card rotation side-by-side placeholder"), TextColor(MAGENTA.into()), ], )); // Right panel for the rotation controls commands .spawn(( Node { align_items: AlignItems::End, ..Default::default() }, BackgroundColor(DARK_GRAY.into()), Pickable::default(), )) .with_children(|cmds| spawn_big_red_button(cmds, "TURN")); }); } }