bevy_codex/settings/
systems.rs

1use 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}