ui testing
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
use crate::camera_system::components::PhosCamera;
|
use crate::camera_system::components::PhosCamera;
|
||||||
use crate::map_rendering::map_init::MapInitPlugin;
|
use crate::map_rendering::map_init::MapInitPlugin;
|
||||||
use crate::map_rendering::render_distance_system::RenderDistancePlugin;
|
use crate::map_rendering::render_distance_system::RenderDistancePlugin;
|
||||||
|
use crate::ui::build_ui::BuildUIPlugin;
|
||||||
use crate::utlis::editor_plugin::EditorPlugin;
|
use crate::utlis::editor_plugin::EditorPlugin;
|
||||||
use crate::utlis::tile_selection_plugin::TileSelectionPlugin;
|
use crate::utlis::tile_selection_plugin::TileSelectionPlugin;
|
||||||
use crate::{camera_system::camera_plugin::PhosCameraPlugin, utlis::debug_plugin::DebugPlugin};
|
use crate::{camera_system::camera_plugin::PhosCameraPlugin, utlis::debug_plugin::DebugPlugin};
|
||||||
@@ -38,6 +39,7 @@ impl Plugin for PhosGamePlugin {
|
|||||||
MapInitPlugin,
|
MapInitPlugin,
|
||||||
RenderDistancePlugin,
|
RenderDistancePlugin,
|
||||||
BuildingPugin,
|
BuildingPugin,
|
||||||
|
BuildUIPlugin,
|
||||||
SimpleAnimationPlugin,
|
SimpleAnimationPlugin,
|
||||||
UnitsPlugin,
|
UnitsPlugin,
|
||||||
DespawnPuglin,
|
DespawnPuglin,
|
||||||
|
|||||||
38
game/main/src/ui/build_ui.rs
Normal file
38
game/main/src/ui/build_ui.rs
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
use bevy::{
|
||||||
|
prelude::*,
|
||||||
|
render::{camera::RenderTarget, view::RenderLayers},
|
||||||
|
};
|
||||||
|
use shared::{states::AssetLoadState, tags::MainCamera};
|
||||||
|
pub struct BuildUIPlugin;
|
||||||
|
|
||||||
|
impl Plugin for BuildUIPlugin {
|
||||||
|
fn build(&self, app: &mut App) {
|
||||||
|
app.add_systems(Startup, setup_cameras);
|
||||||
|
app.add_systems(Update, spawn_ui.run_if(in_state(AssetLoadState::LoadComplete)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn setup_cameras(mut commands: Commands) {
|
||||||
|
commands.spawn((Camera2d, IsDefaultUiCamera, UiBoxShadowSamples(6)));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn spawn_ui(mut commands: Commands) {
|
||||||
|
commands
|
||||||
|
.spawn((Node {
|
||||||
|
width: Val::Percent(100.),
|
||||||
|
height: Val::Percent(100.),
|
||||||
|
justify_content: JustifyContent::Center,
|
||||||
|
align_items: AlignItems::End,
|
||||||
|
..default()
|
||||||
|
},))
|
||||||
|
.insert(PickingBehavior::IGNORE)
|
||||||
|
.with_children(|parent| {
|
||||||
|
parent.spawn((
|
||||||
|
Node {
|
||||||
|
width: Val::Px(500.),
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
BackgroundColor(LinearRgba::GREEN.into()),
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
// use bevy::{prelude::*, render::view::RenderLayers, sprite::Anchor};
|
|
||||||
// use bevy_lunex::prelude::*;
|
|
||||||
|
|
||||||
// pub struct BuildUiPlugin;
|
|
||||||
|
|
||||||
// impl Plugin for BuildUiPlugin {
|
|
||||||
// fn build(&self, app: &mut App) {
|
|
||||||
// app.add_systems(PostStartup, setup_ui);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// fn setup_ui(mut commands: Commands, assets: Res<AssetServer>, mut material: ResMut<Assets<StandardMaterial>>) {
|
|
||||||
// commands
|
|
||||||
// .spawn((
|
|
||||||
// UiTreeBundle::<MainUi> {
|
|
||||||
// tree: UiTree::new2d("BuildUi"),
|
|
||||||
// ..default()
|
|
||||||
// },
|
|
||||||
// Name::new("Build UI"),
|
|
||||||
// SourceFromCamera,
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ))
|
|
||||||
// .with_children(|ui| {
|
|
||||||
// ui.spawn((
|
|
||||||
// UiLink::<MainUi>::path("Root"),
|
|
||||||
// UiLayout::boundary()
|
|
||||||
// .pos1((Rl(0.), Rl(0.)))
|
|
||||||
// .pos2((Rl(100.), Rl(100.)))
|
|
||||||
// .pack::<Base>(),
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ));
|
|
||||||
|
|
||||||
// ui.spawn((
|
|
||||||
// UiLink::<MainUi>::path("Root/MainRect"),
|
|
||||||
// UiLayout::window()
|
|
||||||
// .anchor(Anchor::BottomCenter)
|
|
||||||
// .size((Ab(800.), Rl(100.)))
|
|
||||||
// .pos((Rl(50.), Rl(100.)))
|
|
||||||
// .pack::<Base>(),
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ));
|
|
||||||
|
|
||||||
// ui.spawn((
|
|
||||||
// UiLink::<MainUi>::path("Root/MainRect/Categories"),
|
|
||||||
// UiLayout::solid()
|
|
||||||
// .align_y(Align::END)
|
|
||||||
// .size((Rl(100.), Ab(30.)))
|
|
||||||
// .pack::<Base>(),
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ));
|
|
||||||
|
|
||||||
// for i in 0..5 {
|
|
||||||
// let path = format!("Root/MainRect/Categories/Button{}", i);
|
|
||||||
// ui.spawn((
|
|
||||||
// UiLink::<MainUi>::path(path),
|
|
||||||
// UiLayout::window()
|
|
||||||
// .size((Rl(100. / 5.), Ab(30.)))
|
|
||||||
// .x(Rl((100. / 5.) * i as f32))
|
|
||||||
// .pack::<Base>(),
|
|
||||||
// UiLayout::window()
|
|
||||||
// .size((Rl(100. / 5.), Ab(20.)))
|
|
||||||
// .x(Rl((100. / 5.) * i as f32))
|
|
||||||
// .pack::<Hover>(),
|
|
||||||
// UiImage2dBundle::from(assets.load("textures/world/test2.png")),
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ));
|
|
||||||
// // ui.spawn((
|
|
||||||
// // UiLink::<MainUi>::path(format!("{}/img", path)),
|
|
||||||
// // UiLayout::solid().size((Ab(30.), Ab(100.))).pack::<Base>(),
|
|
||||||
// // UiImage2dBundle::from(assets.load("textures/world/test2.png")),
|
|
||||||
// // ));
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
pub mod build_ui;
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
// use bevy::{
|
|
||||||
// prelude::*,
|
|
||||||
// render::{
|
|
||||||
// render_resource::{Extent3d, TextureDescriptor, TextureDimension, TextureFormat, TextureUsages},
|
|
||||||
// view::RenderLayers,
|
|
||||||
// },
|
|
||||||
// window::PrimaryWindow,
|
|
||||||
// };
|
|
||||||
// use bevy_lunex::prelude::*;
|
|
||||||
// use shared::tags::MainCamera;
|
|
||||||
|
|
||||||
// pub struct LunexSetupPlugin;
|
|
||||||
|
|
||||||
// impl Plugin for LunexSetupPlugin {
|
|
||||||
// fn build(&self, app: &mut App) {
|
|
||||||
// app.add_plugins(UiDefaultPlugins);
|
|
||||||
|
|
||||||
// #[cfg(debug_assertions)]
|
|
||||||
// app.add_plugins(UiDebugPlugin::<MainUi>::new());
|
|
||||||
// app.add_systems(PostStartup, setup_cameras);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// fn setup_cameras(
|
|
||||||
// mut commands: Commands,
|
|
||||||
// assets: Res<AssetServer>,
|
|
||||||
// mut main_3d_camera_q: Query<&mut Camera, With<MainCamera>>,
|
|
||||||
// window_query: Query<&Window, With<PrimaryWindow>>,
|
|
||||||
// ) {
|
|
||||||
// //Prepare Render Texture
|
|
||||||
// let win = window_query.single();
|
|
||||||
// let size = Extent3d {
|
|
||||||
// width: win.physical_width(),
|
|
||||||
// height: win.physical_height(),
|
|
||||||
// ..default()
|
|
||||||
// };
|
|
||||||
|
|
||||||
// let mut image = Image {
|
|
||||||
// texture_descriptor: TextureDescriptor {
|
|
||||||
// label: None,
|
|
||||||
// size,
|
|
||||||
// dimension: TextureDimension::D2,
|
|
||||||
// format: TextureFormat::Bgra8UnormSrgb,
|
|
||||||
// mip_level_count: 1,
|
|
||||||
// sample_count: 1,
|
|
||||||
// usage: TextureUsages::TEXTURE_BINDING | TextureUsages::COPY_DST | TextureUsages::RENDER_ATTACHMENT,
|
|
||||||
// view_formats: &[],
|
|
||||||
// },
|
|
||||||
// ..default()
|
|
||||||
// };
|
|
||||||
// image.resize(size);
|
|
||||||
|
|
||||||
// //Configure 3D Camera
|
|
||||||
// let mut cam = main_3d_camera_q.single_mut();
|
|
||||||
// let render_image = assets.add(image);
|
|
||||||
// cam.target = render_image.clone().into();
|
|
||||||
// cam.order = -1;
|
|
||||||
// cam.clear_color = ClearColorConfig::Custom(LinearRgba::NONE.into());
|
|
||||||
|
|
||||||
// //Add Render Texture image
|
|
||||||
// commands
|
|
||||||
// .spawn((
|
|
||||||
// UiTreeBundle::<MainUi>::from(UiTree::new2d("Main UI")),
|
|
||||||
// SourceFromCamera,
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ))
|
|
||||||
// .with_children(|ui| {
|
|
||||||
// ui.spawn((
|
|
||||||
// UiLink::<MainUi>::path("Root"),
|
|
||||||
// UiLayout::window_full().size((Rl(100.), Rl(100.))).pack::<Base>(),
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ));
|
|
||||||
// ui.spawn((
|
|
||||||
// UiLink::<MainUi>::path("Root/Camera3D"),
|
|
||||||
// UiLayout::solid()
|
|
||||||
// .size((Rl(100.), Rl(100.)))
|
|
||||||
// .scaling(Scaling::Fill)
|
|
||||||
// .pack::<Base>(),
|
|
||||||
// UiImage2dBundle::from(render_image),
|
|
||||||
// PickingPortal,
|
|
||||||
// RenderLayers::layer(1),
|
|
||||||
// ));
|
|
||||||
// });
|
|
||||||
|
|
||||||
// //Spawn 2d UI Camera
|
|
||||||
// commands.spawn((
|
|
||||||
// MainUi,
|
|
||||||
// Camera2dBundle {
|
|
||||||
// transform: Transform::from_xyz(0.0, 0.0, 1000.0),
|
|
||||||
// ..default()
|
|
||||||
// },
|
|
||||||
// RenderLayers::from_layers(&[1]),
|
|
||||||
// ));
|
|
||||||
// }
|
|
||||||
@@ -1,2 +1 @@
|
|||||||
pub mod game;
|
pub mod build_ui;
|
||||||
pub mod lunex_setup_plugin;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user