bevy_codex/settings/
systems.rs1use bevy::{prelude::*, window::PrimaryWindow};
2use bevy_lunex::{prelude::*, Base};
3
4
5use super::components::{SettingsPg, SettingsPgUi};
6
7pub fn build_settings(
8 mut commands: Commands,
9 asset_server: Res<AssetServer>,
10 window: Query<&Window, With<PrimaryWindow>>,
11
12 query: Query<Entity, Added<SettingsPg>>,
13) {
14 for route_entity in &query {
15 if let Ok(resolution) = window.get_single() {
16 let r_size = (resolution.width(), resolution.height());
17 commands
18 .entity(route_entity)
19 .insert(SpatialBundle::default())
20 .with_children(|route| {
21 route
22 .spawn((
23 UiTreeBundle::<MainUi>::from(UiTree::new2d("MainMenu")),
24 MovableByCamera,
25 ))
26 .with_children(|ui| {
27 let root = UiLink::<MainUi>::path("Root");
28 ui.spawn((
29 root.clone(),
30 UiLayout::window().size(r_size).pack::<Base>(),
31 ));
32 let background = UiLink::<SettingsPgUi>::path("Background");
33 ui.spawn((
34 background.clone(),
35 UiLayout::window_full().pack::<Base>(),
36 Pickable::IGNORE,
37 UiImage2dBundle::from(asset_server.load("Level_base_diffuse.png")),
38 ));
39 });
40 });
41 }
42 }
43}