use bevy::{input::common_conditions::input_just_pressed, prelude::*};
use iyes_progress::prelude::*;
use pyri_state::prelude::*;
fn main() -> AppExit {
App::new()
.add_plugins((DefaultPlugins, StatePlugin))
.insert_resource(StateDebugSettings {
log_flush: true,
..default()
})
.init_state::<Screen>()
.add_plugins(
ProgressPlugin::new()
.with_state_transition(Screen::Loading.bevy(), Screen::Gameplay.bevy()),
)
.add_systems(
Update,
Screen::Title.on_update(
Screen::Loading
.enter()
.run_if(input_just_pressed(KeyCode::Enter)),
),
)
.run()
}
#[derive(State, Reflect, Clone, PartialEq, Eq, Hash, Debug, Default)]
#[state(bevy_state, log_flush)]
#[reflect(Resource)]
enum Screen {
#[default]
Title,
Loading,
Gameplay,
}