menu system: beginnings

This commit is contained in:
Schrottkatze 2025-05-21 20:48:21 +02:00
parent 2e7de9f296
commit 2b18cdea38
Signed by: schrottkatze
SSH key fingerprint: SHA256:FPOYVeBy3QP20FEM42uWF1Wa/Qhlk+L3S2+Wuau/Auo
5 changed files with 206 additions and 0 deletions

50
src/menus.rs Normal file
View file

@ -0,0 +1,50 @@
use bevy::{input::ButtonState, prelude::*};
use lib::{ItemPosition, Menu, MenuItemType, Menus, OnPressAction};
mod lib;
#[derive(States, Debug, Clone, PartialEq, Eq, Hash)]
enum CurrentMenu {
NotInMenus,
MainMenu,
Settings,
HighScores,
StartGame,
}
pub fn todo_meow() {
let plugin = Menus::<CurrentMenu>::new()
.add_menu(
CurrentMenu::MainMenu,
Menu::new().add_items(&[
&MenuItemType::Text(String::from("Hello, World!")),
&(
MenuItemType::Button(String::from("Start Game")),
OnPressAction::SampleAction,
),
&(
MenuItemType::Button(String::from("Settings")),
OnPressAction::NavigateTo(CurrentMenu::Settings),
),
]),
)
.add_menu(
CurrentMenu::Settings,
Menu::new()
.add_items(&[
&MenuItemType::Text(String::from("Hello, World!")),
&(
MenuItemType::Button(String::from("Sample setting")),
OnPressAction::SampleAction,
),
])
.add_items_positioned(
ItemPosition::SouthEast,
&[&(
MenuItemType::Button(String::from("Back")),
OnPressAction::NavigateTo(CurrentMenu::MainMenu),
)],
),
);
dbg!(plugin);
}