From ae43b8093f9d5e05659e54c6b685b18938f77c39 Mon Sep 17 00:00:00 2001 From: CoCo_Sol007 Date: Mon, 11 Mar 2024 08:03:37 +0100 Subject: [PATCH] save --- crates/border-wars/assets/temp.png | Bin 1014 -> 1096 bytes crates/border-wars/src/ui/mod.rs | 23 ++++++ crates/border-wars/src/ui/tiles_info.rs | 96 +++++++++++++----------- 3 files changed, 77 insertions(+), 42 deletions(-) diff --git a/crates/border-wars/assets/temp.png b/crates/border-wars/assets/temp.png index 6d174ed3408216b9f4bba281dc624e85e8e8dc44..67eae4e24f0cedb38d54396f4f30c5c66bea7c77 100644 GIT binary patch literal 1096 zcmeAS@N?(olHy`uVBq!ia0y~yU~y$&U^M1n28ujr^Zf{<*aCb)fPxIArKPP^(j`C^ zQ%R6tFvI`oiAq};7?_WFx;TbZ%z1l7lkb274~ygb|Ms%exYu4$U<^Go>EMESmTOIm z_cQ2ie)#jt*Q5vWAuJhXTA#AG4)k^~Oa!B;T~G#u3nGz3pvu4^a5h{oh|vU6KeLOW zcNC3=z-S1N6#{1&mCB?qDtGR!1Lkkp64!{5;QX|b^2DN428W!|yu^aU%)Ao)g1mIy YazKR)p00i_>zopr0Lz$&ssI20 literal 1014 zcmeAS@N?(olHy`uVBq!ia0y~yU~y$&U^M1n28ujr^Zf{<*aCb)TuVz!SFBj^>oK=K z0|RrDr;B4q#hka-9kXN{MO+-e{?&gwHJt7I0{5vlFFUrf@Y+{isi|cI>cs^P)W7}t zlApouma>w=0!4>~xX~g-hlh$xB2xH}iWHNH7L$q+K9ZmUh<2DVqmz+4kKZ!esr^0T zwnqC?vFPZho9-lKua24K?UOt0a#82Xw?)zG47Mcpofd5~J5#vx(1o_Ik7u#x8%$39 zx$D_M=`$%ay9yeo`UDH=ZJ3m)b%-@=)7pF2?JCZCZClClJo2QO=tCRro6D5uq^mxD z)cCgf`kItET?Mlyt_c?OGoDncbtu!#X#Lz94izUoo~`6q9(mGA^r4A%mMbhX!) zTF*9@-#BR@`f$(jpk+Tj5A#mjRzX=jzik`VlDF!GM(!!mSdi(qPY{@;R!$6L` zc?#s%=$p^>%}GyvEF+N-!U91ZDNu%o3km~QtP>XhmwMj6p5enom<@2NfDE{8$bw|E z;Z7#igbq1bMkQHBElEbD^MVT|2`YS&Vbp^2FTsT%@>uv)b-$n4&-() .add_systems(Update, update_tile_info_text) - .add_systems(OnEnter(crate::CurrentScene::Game), init_text_zone); + .add_systems(OnEnter(crate::CurrentScene::Game), init_text_zone) + .add_systems(Startup, create_main_uui_node); } } @@ -68,48 +70,70 @@ fn handle_tile_click( } } -fn init_text_zone(mut commands: Commands, asset_server: Res) { - commands - .spawn(ImageBundle { - style: Style { - position_type: PositionType::Absolute, - height: Val::Percent(50.), - width: Val::Percent(50.), - bottom: Val::ZERO, - ..Default::default() - }, +fn init_text_zone( + mut commands: Commands, + asset_server: Res, + main_nodes: Query>, +) { + let main_node = main_nodes.single(); - image: UiImage { - texture: asset_server.load("temp.png"), - ..default() - }, - ..default() - }) - .with_children(|builder| { - builder - .spawn(TextBundle { - style: Style { - height:Val::Percent(100.), - position_type: PositionType::Absolute, + commands.entity(main_node).with_children(|parent| { + parent + .spawn(ImageBundle { + style: Style { + position_type: PositionType::Absolute, + + bottom: Val::ZERO, + margin: UiRect { + left: Val::Auto, + right: Val::Auto, ..default() }, + + width: Val::Percent(50.0), + height: Val::Px(100.), + ..Default::default() + }, + + image: UiImage { + texture: asset_server.load("temp.png"), ..default() - }) - .insert(TileInfoText); - }); + }, + ..default() + }).insert(TileInfoBox) + .with_children(|builder| { + builder + .spawn(TextBundle { + style: Style { + height: Val::Percent(100.), + position_type: PositionType::Absolute, + ..default() + }, + ..default() + }) + .insert(TileInfoText); + }); + }); } /// TODO #[derive(Component)] pub struct TileInfoText; +/// TODO +#[derive(Component)] +pub struct TileInfoBox; + fn update_tile_info_text( - mut query: Query<(&mut Transform, &mut Text, &mut Visibility), With>, + mut query: Query<(&mut Transform, &mut Text), With>, selected: Res, + mut main_nodes: Query<&mut Transform, With>, ) { - for (mut transform, mut text, mut visibility) in query.iter_mut() { + let mut info_box = main_nodes.single_mut(); + for (mut transform, mut text) in query.iter_mut() { if selected.index().is_none() { - *visibility = Visibility::Hidden; + info_box.translation.y = -100.0; + text.sections = vec![]; return; } if let SelectedTile::Tile(tile, _) = *selected { @@ -121,19 +145,7 @@ fn update_tile_info_text( ..default() }, }]; - *visibility = Visibility::Visible; transform.translation.z = 1.0; } } -} - -// .spawn(TextBundle { -// style: Style { -// position_type: PositionType::Absolute, -// -// ..default() -// }, -// -// ..default() -// }) -// .insert(TileInfoText); +} \ No newline at end of file