generated from tipragot/rust
parent
a0e98de6bb
commit
ae43b8093f
Binary file not shown.
Before Width: | Height: | Size: 1,014 B After Width: | Height: | Size: 1.1 KiB |
|
@ -1,3 +1,26 @@
|
|||
//! TODO
|
||||
|
||||
use bevy::ecs::component::Component;
|
||||
use bevy::ecs::system::Commands;
|
||||
use bevy::render::color::Color;
|
||||
use bevy::ui::node_bundles::NodeBundle;
|
||||
use bevy::ui::{Node, Style, UiRect, Val};
|
||||
|
||||
pub mod tiles_info;
|
||||
|
||||
#[derive(Component)]
|
||||
pub struct MainNode;
|
||||
|
||||
fn create_main_uui_node(mut commands: Commands) {
|
||||
commands
|
||||
.spawn(NodeBundle {
|
||||
style: Style {
|
||||
margin: UiRect::all(bevy::ui::Val::Auto),
|
||||
width: Val::Px(1280.),
|
||||
height: Val::Px(720.),
|
||||
..Default::default()
|
||||
},
|
||||
..Default::default()
|
||||
})
|
||||
.insert(MainNode);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
use bevy::prelude::*;
|
||||
|
||||
use super::{create_main_uui_node, MainNode};
|
||||
use crate::map::click_tile::TileJustClicked;
|
||||
use crate::map::Tile;
|
||||
|
||||
|
@ -13,7 +14,8 @@ impl Plugin for TilesInfoPlugin {
|
|||
app.add_systems(Update, handle_tile_click)
|
||||
.init_resource::<SelectedTile>()
|
||||
.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,14 +70,28 @@ fn handle_tile_click(
|
|||
}
|
||||
}
|
||||
|
||||
fn init_text_zone(mut commands: Commands, asset_server: Res<AssetServer>) {
|
||||
commands
|
||||
fn init_text_zone(
|
||||
mut commands: Commands,
|
||||
asset_server: Res<AssetServer>,
|
||||
main_nodes: Query<Entity, With<MainNode>>,
|
||||
) {
|
||||
let main_node = main_nodes.single();
|
||||
|
||||
commands.entity(main_node).with_children(|parent| {
|
||||
parent
|
||||
.spawn(ImageBundle {
|
||||
style: Style {
|
||||
position_type: PositionType::Absolute,
|
||||
height: Val::Percent(50.),
|
||||
width: Val::Percent(50.),
|
||||
|
||||
bottom: Val::ZERO,
|
||||
margin: UiRect {
|
||||
left: Val::Auto,
|
||||
right: Val::Auto,
|
||||
..default()
|
||||
},
|
||||
|
||||
width: Val::Percent(50.0),
|
||||
height: Val::Px(100.),
|
||||
..Default::default()
|
||||
},
|
||||
|
||||
|
@ -84,7 +100,7 @@ fn init_text_zone(mut commands: Commands, asset_server: Res<AssetServer>) {
|
|||
..default()
|
||||
},
|
||||
..default()
|
||||
})
|
||||
}).insert(TileInfoBox)
|
||||
.with_children(|builder| {
|
||||
builder
|
||||
.spawn(TextBundle {
|
||||
|
@ -97,19 +113,27 @@ fn init_text_zone(mut commands: Commands, asset_server: Res<AssetServer>) {
|
|||
})
|
||||
.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<TileInfoText>>,
|
||||
mut query: Query<(&mut Transform, &mut Text), With<TileInfoText>>,
|
||||
selected: Res<SelectedTile>,
|
||||
mut main_nodes: Query<&mut Transform, With<TileInfoBox>>,
|
||||
) {
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue