complete switch from character id to Player component as 'tag'

This commit is contained in:
Nixon 2022-08-24 19:26:25 +08:00
commit e86ca82bc3
4 changed files with 149 additions and 160 deletions

View file

@ -7,7 +7,6 @@ mod level1;
use crate::game::*;
use bevy::prelude::*;
use std::collections::BTreeSet;
pub fn setup_level(
commands: &mut Commands,
@ -19,8 +18,6 @@ pub fn setup_level(
let level_entity = commands
.spawn()
.insert(Level)
.insert(SelectedCharacterId(None))
.insert(CharacterIdList(BTreeSet::new()))
.id();
current_level.0 = Some(level_id);
@ -41,35 +38,26 @@ pub fn post_setup_level(
character_meshes: Res<CharacterMeshes>,
mut materials: ResMut<Assets<ColorMaterial>>,
current_level: Res<CurrentLevel>,
mut level_query: Query<(&mut SelectedCharacterId, &mut CharacterIdList)>,
mut level_startup_event: EventReader<LevelStartupEvent>,
asset_server: Res<AssetServer>,
audio: Res<crossbeam_channel::Sender<AudioMsg>>,
) {
for LevelStartupEvent(level_entity) in level_startup_event.iter() {
if let Ok((mut selected_character_id, mut character_id_list)) =
level_query.get_mut(*level_entity)
{
if let Some(level_id) = current_level.0 {
match level_id.0 {
0 => level0::setup(
&mut commands,
&character_meshes,
&mut materials,
&mut selected_character_id,
&mut character_id_list,
&audio,
),
1 => level1::setup(
&mut commands,
&character_meshes,
&mut materials,
&mut selected_character_id,
&mut character_id_list,
&audio,
),
_ => game_over::setup(&mut commands, &asset_server),
}
if let Some(level_id) = current_level.0 {
match level_id.0 {
0 => level0::setup(
&mut commands,
&character_meshes,
&mut materials,
&audio,
),
1 => level1::setup(
&mut commands,
&character_meshes,
&mut materials,
&audio,
),
_ => game_over::setup(&mut commands, &asset_server),
}
}
}