linear state integration
This commit is contained in:
parent
c5a4d77684
commit
895193778b
9 changed files with 42 additions and 11 deletions
|
|
@ -13,6 +13,7 @@ mod ui;
|
|||
use crate::states::game::state::MainGameState;
|
||||
use crate::states::main_menu::state::MainMenuState;
|
||||
use crate::states::settings_menu::state::SettingsMenuState;
|
||||
use crate::states::linear::plugin::LinearPlugin;
|
||||
|
||||
const FACTOR: u32 = 80;
|
||||
const WIDTH: u32 = 16;
|
||||
|
|
@ -36,6 +37,7 @@ fn main() {
|
|||
MainMenuState,
|
||||
SettingsMenuState,
|
||||
MainGameState,
|
||||
LinearPlugin,
|
||||
))
|
||||
.add_systems(Startup, setup)
|
||||
.add_systems(Update, exit_system)
|
||||
|
|
|
|||
|
|
@ -8,4 +8,5 @@ pub enum AppState {
|
|||
GameState,
|
||||
GameRestart,
|
||||
LevelState,
|
||||
LinearState,
|
||||
}
|
||||
|
|
@ -8,3 +8,6 @@ pub struct MainMenuNewGameButton;
|
|||
|
||||
#[derive(Component, Copy, Clone)]
|
||||
pub struct MainMenuSettingsButton;
|
||||
|
||||
#[derive(Component, Copy, Clone)]
|
||||
pub struct MainMenuLinearButton;
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
pub mod state;
|
||||
pub mod components;
|
||||
pub(crate) mod state;
|
||||
pub use state::*;
|
||||
mod components;
|
||||
pub use components::*;
|
||||
pub mod systems;
|
||||
mod systems;
|
||||
pub use systems::*;
|
||||
pub mod plugin;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use bevy::prelude::*;
|
||||
use crate::states::main_menu::{MainMenuNewGameButton, MainMenuSettingsButton};
|
||||
use crate::states::main_menu::*;
|
||||
use crate::ui::button_click::ButtonClickMessage;
|
||||
use crate::ui::click::handle_click_system;
|
||||
|
||||
|
|
@ -12,11 +12,13 @@ impl Plugin for MainMenuUiPlugin {
|
|||
fn build(&self, app: &mut App) {
|
||||
app.add_message::<ButtonClickMessage<MainMenuNewGameButton>>()
|
||||
.add_message::<ButtonClickMessage<MainMenuSettingsButton>>()
|
||||
.add_message::<ButtonClickMessage<MainMenuLinearButton>>()
|
||||
.add_systems(
|
||||
Update,
|
||||
(
|
||||
handle_click_system::<MainMenuNewGameButton>,
|
||||
handle_click_system::<MainMenuSettingsButton>,
|
||||
handle_click_system::<MainMenuLinearButton>,
|
||||
).in_set(MainMenuButtonSet)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
use crate::states::AppState;
|
||||
use crate::states::main_menu::{MainMenuNewGameButton, MainMenuRootMarker, MainMenuSettingsButton};
|
||||
use crate::states::main_menu::systems::*;
|
||||
use crate::states::*;
|
||||
use crate::states::main_menu::*;
|
||||
use crate::ui::button_hover::button_hover;
|
||||
use crate::ui::{ButtonStyle, spawn_background, spawn_button};
|
||||
use bevy::prelude::*;
|
||||
|
|
@ -20,6 +19,7 @@ impl Plugin for MainMenuState {
|
|||
button_hover,
|
||||
new_game_button_system,
|
||||
settings_button_system,
|
||||
linear_button_system,
|
||||
)
|
||||
.run_if(in_state(AppState::MainMenu)),
|
||||
)
|
||||
|
|
@ -92,6 +92,14 @@ fn setup_main_menu(mut commands: Commands, asset_server: Res<AssetServer>) {
|
|||
MainMenuNewGameButton,
|
||||
);
|
||||
|
||||
spawn_button(
|
||||
&mut commands,
|
||||
menu_root,
|
||||
"Линейное",
|
||||
&mm_button_style,
|
||||
MainMenuLinearButton,
|
||||
);
|
||||
|
||||
spawn_button(
|
||||
&mut commands,
|
||||
menu_root,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use crate::states::AppState;
|
||||
use crate::states::main_menu::{MainMenuNewGameButton, MainMenuSettingsButton};
|
||||
use crate::states::main_menu::*;
|
||||
use bevy::prelude::*;
|
||||
|
||||
pub fn new_game_button_system(
|
||||
|
|
@ -23,3 +23,15 @@ pub fn settings_button_system(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn linear_button_system(
|
||||
interaction_query: Query<&Interaction, (Changed<Interaction>, With<MainMenuLinearButton>)>,
|
||||
mut next_state: ResMut<NextState<AppState>>,
|
||||
) {
|
||||
for interaction in &interaction_query {
|
||||
if matches!(interaction, Interaction::Pressed) {
|
||||
println!("Линейное нажата");
|
||||
next_state.set(AppState::LinearState);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,3 +6,4 @@ pub mod main_menu;
|
|||
pub mod settings_menu;
|
||||
pub mod game;
|
||||
mod level;
|
||||
pub mod linear;
|
||||
Loading…
Add table
Add a link
Reference in a new issue