diff --git a/Cargo.toml b/Cargo.toml index 5a60f17..2b15971 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ resolver = "2" missing_docs = "warn" [workspace.lints.clippy] +type_complexity = "allow" missing_docs_in_private_items = "warn" unwrap_in_result = "warn" unwrap_used = "warn" diff --git a/crates/border-wars/assets/button_menu_icon_hover.png b/crates/border-wars/assets/button_menu_icon_hover.png new file mode 100644 index 0000000..061f334 Binary files /dev/null and b/crates/border-wars/assets/button_menu_icon_hover.png differ diff --git a/crates/border-wars/assets/button_settings_icon_hover.png b/crates/border-wars/assets/button_settings_icon_hover.png new file mode 100644 index 0000000..4f7f284 Binary files /dev/null and b/crates/border-wars/assets/button_settings_icon_hover.png differ diff --git a/crates/border-wars/assets/bw.png b/crates/border-wars/assets/bw.png new file mode 100644 index 0000000..b03136c Binary files /dev/null and b/crates/border-wars/assets/bw.png differ diff --git a/crates/border-wars/assets/host.png b/crates/border-wars/assets/host.png new file mode 100644 index 0000000..fd0acf0 Binary files /dev/null and b/crates/border-wars/assets/host.png differ diff --git a/crates/border-wars/assets/join.png b/crates/border-wars/assets/join.png new file mode 100644 index 0000000..26b453e Binary files /dev/null and b/crates/border-wars/assets/join.png differ diff --git a/crates/border-wars/src/scenes/menu.rs b/crates/border-wars/src/scenes/menu.rs index da3516f..9014458 100644 --- a/crates/border-wars/src/scenes/menu.rs +++ b/crates/border-wars/src/scenes/menu.rs @@ -11,14 +11,18 @@ impl Plugin for MenuPlugin { fn build(&self, app: &mut App) { app.add_systems(Startup, menu_ui.run_if(in_state(CurrentScene::Menu))); app.add_systems(Update, change_scaling); - app.add_systems(Update, handle_button); + app.add_systems(Update, hover_system); + app.add_systems(Update, pressed_system); } } /// TODO #[derive(Component, Clone)] struct HoveredTexture { + /// TODO texture: Handle, + + /// TODO hovered_texture: Handle, } @@ -36,10 +40,9 @@ fn menu_ui(mut commands: Commands, asset_server: Res) { ..default() }, z_index: ZIndex::Local(0), - background_color: Color::GREEN.into(), ..default() }) - .with_children(|node| main_node(node)); + .with_children(|child: &mut ChildBuilder| main_node(child, &asset_server)); create_side_button( UiRect { @@ -52,7 +55,7 @@ fn menu_ui(mut commands: Commands, asset_server: Res) { &mut commands, HoveredTexture { texture: asset_server.load("button_settings_icon.png"), - hovered_texture: asset_server.load("button_menu_icon.png"), + hovered_texture: asset_server.load("button_settings_icon_hover.png"), }, ); @@ -67,7 +70,7 @@ fn menu_ui(mut commands: Commands, asset_server: Res) { &mut commands, HoveredTexture { texture: asset_server.load("button_menu_icon.png"), - hovered_texture: asset_server.load("button_settings_icon.png"), + hovered_texture: asset_server.load("button_menu_icon_hover.png"), }, ); } @@ -87,52 +90,60 @@ fn create_side_button( margin, ..default() }, - z_index: ZIndex::Local(1), - background_color: Color::NONE.into(), + z_index: ZIndex::Global(14), + image: textures.texture.clone().into(), ..default() }) - .insert((target_scene, textures.clone())) - .with_children(|button| { - button.spawn(ImageBundle { - style: Style { - width: Val::Percent(100.), - height: Val::Percent(100.), - ..default() - }, - image: textures.texture.into(), - ..default() - }); - }); + .insert((target_scene, textures)); } -fn handle_button( - interaction_query: Query< - (&Interaction, &CurrentScene, &mut Children, &HoveredTexture), - (Changed, With