2026-04-10 20:28:55 +03:00
|
|
|
use bevy::prelude::*;
|
2026-04-15 23:04:03 +03:00
|
|
|
use crate::states::main_menu::*;
|
2026-04-10 20:28:55 +03:00
|
|
|
use crate::ui::button_click::ButtonClickMessage;
|
|
|
|
|
use crate::ui::click::handle_click_system;
|
|
|
|
|
|
|
|
|
|
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
|
|
|
|
pub struct MainMenuButtonSet;
|
|
|
|
|
|
|
|
|
|
pub struct MainMenuUiPlugin;
|
|
|
|
|
|
|
|
|
|
impl Plugin for MainMenuUiPlugin {
|
|
|
|
|
fn build(&self, app: &mut App) {
|
|
|
|
|
app.add_message::<ButtonClickMessage<MainMenuNewGameButton>>()
|
|
|
|
|
.add_message::<ButtonClickMessage<MainMenuSettingsButton>>()
|
2026-04-15 23:04:03 +03:00
|
|
|
.add_message::<ButtonClickMessage<MainMenuLinearButton>>()
|
2026-04-10 20:28:55 +03:00
|
|
|
.add_systems(
|
|
|
|
|
Update,
|
|
|
|
|
(
|
|
|
|
|
handle_click_system::<MainMenuNewGameButton>,
|
|
|
|
|
handle_click_system::<MainMenuSettingsButton>,
|
2026-04-15 23:04:03 +03:00
|
|
|
handle_click_system::<MainMenuLinearButton>,
|
2026-04-10 20:28:55 +03:00
|
|
|
).in_set(MainMenuButtonSet)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|