refactor: remove MazePluginLoaded resource

This commit is contained in:
Kristofers Solo 2025-01-05 18:39:20 +02:00
parent 101626cf3d
commit 3709bfa58d
7 changed files with 16 additions and 13 deletions

View File

@ -1,7 +1,8 @@
use crate::{
floor::components::{CurrentFloor, Floor},
maze::{components::MazeConfig, events::RespawnMaze, GlobalMazeConfig, MazePluginLoaded},
maze::{components::MazeConfig, events::RespawnMaze, GlobalMazeConfig},
player::events::RespawnPlayer,
screens::Screen,
};
use bevy::{prelude::*, window::PrimaryWindow};
use bevy_egui::{
@ -13,8 +14,11 @@ use rand::{thread_rng, Rng};
use std::ops::RangeInclusive;
pub fn maze_controls_ui(world: &mut World) {
if world.get_resource::<MazePluginLoaded>().is_none() {
return;
if let Some(state) = world.get_resource::<State<Screen>>() {
// Check if the current state is NOT Gameplay
if *state.get() != Screen::Gameplay {
return;
}
}
let Ok(egui_context) = world

View File

@ -2,7 +2,7 @@ mod despawn;
mod movement;
mod spawn;
use crate::maze::MazePluginLoaded;
use crate::screens::Screen;
use bevy::prelude::*;
use despawn::despawn_floor;
use movement::{handle_floor_transition_events, move_floors};
@ -18,6 +18,6 @@ pub(super) fn plugin(app: &mut App) {
move_floors,
)
.chain()
.run_if(resource_exists::<MazePluginLoaded>),
.run_if(in_state(Screen::Gameplay)),
);
}

View File

@ -9,7 +9,7 @@ pub mod triggers;
use bevy::{ecs::system::RunSystemOnce, prelude::*};
use components::HexMaze;
use events::{DespawnMaze, RespawnMaze, SpawnMaze};
pub use resources::{GlobalMazeConfig, MazePluginLoaded};
pub use resources::GlobalMazeConfig;
pub(super) fn plugin(app: &mut App) {
app.init_resource::<GlobalMazeConfig>()
@ -22,5 +22,4 @@ pub(super) fn plugin(app: &mut App) {
pub fn spawn_level_command(world: &mut World) {
let _ = world.run_system_once(systems::setup::setup);
world.insert_resource(MazePluginLoaded);
}

View File

@ -1,9 +1,5 @@
use bevy::prelude::*;
#[derive(Debug, Default, Reflect, Resource)]
#[reflect(Resource)]
pub struct MazePluginLoaded;
#[derive(Debug, Reflect, Resource, Clone)]
#[reflect(Resource)]
pub struct GlobalMazeConfig {

View File

@ -8,6 +8,7 @@ use crate::{
events::SpawnMaze,
resources::GlobalMazeConfig,
},
screens::Screen,
theme::palette::rose_pine::RosePineDawn,
};
@ -53,6 +54,7 @@ pub(crate) fn spawn_maze(
config.clone(),
Transform::from_translation(Vec3::ZERO.with_y(y_offset)),
Visibility::Visible,
StateScoped(Screen::Gameplay),
))
.insert_if(CurrentFloor, || *floor == 1)
.id();

View File

@ -3,7 +3,7 @@ mod movement;
pub mod setup;
mod vertical_transition;
use crate::maze::MazePluginLoaded;
use crate::screens::Screen;
use bevy::prelude::*;
use input::player_input;
use movement::player_movement;
@ -17,6 +17,6 @@ pub(super) fn plugin(app: &mut App) {
player_movement.after(player_input),
handle_floor_transition,
)
.run_if(resource_exists::<MazePluginLoaded>),
.run_if(in_state(Screen::Gameplay)),
);
}

View File

@ -6,6 +6,7 @@ use crate::{
components::{CurrentPosition, Player},
events::SpawnPlayer,
},
screens::Screen,
};
use bevy::prelude::*;
@ -34,5 +35,6 @@ pub(super) fn spawn_player(
Mesh3d(meshes.add(generate_pill_mesh(player_radius, player_height / 2.))),
MeshMaterial3d(materials.add(blue_material())),
Transform::from_xyz(start_pos.x, y_offset, start_pos.y),
StateScoped(Screen::Gameplay),
));
}