Skip to content

Commit

Permalink
Got text color showing victory states, and added a player.
Browse files Browse the repository at this point in the history
  • Loading branch information
Earthmark committed Apr 16, 2022
1 parent a1bd7b8 commit 84acc1c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 13 deletions.
17 changes: 16 additions & 1 deletion src/level/loader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ pub fn initial_events_on_load(
axis_changed.send(AxisChanged { axis: maze.axis() });
}

pub fn spawn_maze_root(
pub fn load_maze_assets(
mut c: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
Expand All @@ -81,6 +81,21 @@ pub fn spawn_maze_root(
});
}

pub fn spawn_player(
mut c: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
c.spawn_bundle(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Capsule {
radius: 0.3,
..default()
})),
material: materials.add(Color::rgb(0.5, 0.5, 0.8).into()),
..Default::default()
});
}

#[derive(Component)]
pub struct MazeAssets {
joint: Handle<Mesh>,
Expand Down
6 changes: 0 additions & 6 deletions src/level/maze_level.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,6 @@ struct MazeImpl<const DIMS: usize> {
axis: [u8; 2],
}

struct MazeCursor<const DIMS: usize> {
maze: MazeImpl<DIMS>,
pos: [u8; DIMS],
axis: [u8; 2],
}

#[derive(Clone, Debug)]
pub struct AxisChanged {
pub axis: [u8; 2],
Expand Down
12 changes: 8 additions & 4 deletions src/level/maze_ui_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,6 @@ pub fn spawn_ui(mut c: Commands, maze: Res<MazeLevel>, assets: Res<AssetServer>)
});
}

#[derive(Component)]
struct MazeUiRoot;

#[derive(Component, Clone)]
pub struct MazeAxisLabel {
dim: u8,
Expand Down Expand Up @@ -251,7 +248,14 @@ pub fn maze_position_label_update_listener(
for (label, mut text) in query.iter_mut() {
if let Some(section) = text.sections.first_mut() {
if let Some(target) = maze.dims().get(label.dimension) {
section.value = format!("{}", target);
let position = target + 1;
section.value = format!("{}", position);
section.style.color =
if maze.dims_limit().get(label.dimension) == Some(&position) {
Color::LIME_GREEN
} else {
Color::WHITE
};
}
}
}
Expand Down
10 changes: 8 additions & 2 deletions src/level/plugin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,29 @@ use super::*;
use crate::AppState;
use bevy::prelude::*;

#[derive(Debug, Clone, PartialEq, Eq, Hash, SystemLabel)]
struct LevelInit;

pub struct LevelPlugin;

impl Plugin for LevelPlugin {
fn build(&self, app: &mut App) {
app.add_system(loader::level_load_system)
app.add_startup_system(loader::load_maze_assets)
.add_system(loader::level_load_system.before(LevelInit))
.add_event::<loader::LoadLevel>()
.add_event::<maze_level::AxisChanged>()
.add_event::<maze_level::PositionChanged>()
.add_system_set(
SystemSet::on_enter(AppState::InMaze)
.label(LevelInit)
.with_system(maze_renderer::spawn_maze_root)
.with_system(maze_ui_renderer::spawn_ui)
.with_system(loader::initial_events_on_load)
.with_system(loader::spawn_maze_root),
.with_system(loader::spawn_player),
)
.add_system_set(
SystemSet::on_update(AppState::InMaze)
.after(LevelInit)
.with_system(maze_ui_renderer::maze_axis_label_update_listener)
.with_system(maze_ui_renderer::maze_position_label_update_listener)
.with_system(maze_ui_renderer::maze_axis_label_background_updater)
Expand Down

0 comments on commit 84acc1c

Please sign in to comment.