From 7adf5923b31c24c10f3dd2ca9cd030067b7cf1f3 Mon Sep 17 00:00:00 2001 From: Alex Page Date: Thu, 27 Jan 2022 01:36:39 -0500 Subject: [PATCH] Move sound system to ecs resource --- Cargo.lock | 53 ----------------------------------------------------- Cargo.toml | 2 +- src/main.rs | 42 +++++++++++++++++------------------------- 3 files changed, 18 insertions(+), 79 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b64c595..6e668a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -729,12 +729,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - [[package]] name = "flate2" version = "1.0.22" @@ -912,15 +906,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - [[package]] name = "hibitset" version = "0.6.3" @@ -928,7 +913,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93a1bb8316a44459a7d14253c4d28dd7395cbd23cc04a68c46e851b8e46d64b1" dependencies = [ "atom", - "rayon", ] [[package]] @@ -1492,16 +1476,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.4.3" @@ -1776,31 +1750,6 @@ dependencies = [ "libc", ] -[[package]] -name = "rayon" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" -dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils 0.8.5", - "lazy_static", - "num_cpus", -] - [[package]] name = "redox_syscall" version = "0.2.10" @@ -1920,7 +1869,6 @@ dependencies = [ "arrayvec", "hashbrown", "mopa", - "rayon", "smallvec", "tynm", ] @@ -1981,7 +1929,6 @@ dependencies = [ "hashbrown", "hibitset", "log", - "rayon", "shred", "shrev", "tuple_utils", diff --git a/Cargo.toml b/Cargo.toml index 33b8ec5..6fb9185 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ build = "build.rs" [dependencies] # bracket-lib = { path = "extern/bracket-lib" } bracket-lib = { git = "https://github.com/amethyst/bracket-lib" } -specs = "0.16.1" +specs = { version = "0.16.1", default-features = false } specs-derive = "0.4.1" cpal = "0.13" oddio = "0.5" diff --git a/src/main.rs b/src/main.rs index a2d4329..51ab77b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,15 +27,15 @@ use vga_color as vga; struct State { ecs: World, - sound_system: SoundSystem, } -fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World, sound_system: &mut SoundSystem) { +fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) { let entities = ecs.entities(); let mut positions = ecs.write_storage::(); let mut players = ecs.write_storage::(); let mut map = ecs.write_resource::(); let mut stats = ecs.write_resource::(); + let mut sound_system = ecs.write_resource::(); for (player, pos) in (&mut players, &mut positions).join() { let now = Instant::now(); @@ -76,7 +76,7 @@ fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World, sound_system: &m sound_system.play_sound(sound_effects.step.clone()); } } else { - let static_sound = sound_effects.get_new_static_effect(sound_system); + let static_sound = sound_effects.get_new_static_effect(&sound_system); sound_system.play_sound(static_sound); } @@ -91,32 +91,25 @@ fn player_input(gs: &mut State, ctx: &mut BTerm) { None => {} // Nothing happened Some(key) => match key { VirtualKeyCode::Left | VirtualKeyCode::J => { - try_move_player(-1, 0, &mut gs.ecs, &mut gs.sound_system); - } - VirtualKeyCode::U | VirtualKeyCode::Home => { - try_move_player(-1, -1, &mut gs.ecs, &mut gs.sound_system) + try_move_player(-1, 0, &mut gs.ecs); } + VirtualKeyCode::U | VirtualKeyCode::Home => try_move_player(-1, -1, &mut gs.ecs), VirtualKeyCode::Up | VirtualKeyCode::I => { - try_move_player(0, -1, &mut gs.ecs, &mut gs.sound_system); - } - VirtualKeyCode::O | VirtualKeyCode::PageUp => { - try_move_player(1, -1, &mut gs.ecs, &mut gs.sound_system) + try_move_player(0, -1, &mut gs.ecs); } + VirtualKeyCode::O | VirtualKeyCode::PageUp => try_move_player(1, -1, &mut gs.ecs), VirtualKeyCode::Right | VirtualKeyCode::K => { - try_move_player(1, 0, &mut gs.ecs, &mut gs.sound_system); - } - VirtualKeyCode::Comma | VirtualKeyCode::PageDown => { - try_move_player(1, 1, &mut gs.ecs, &mut gs.sound_system) + try_move_player(1, 0, &mut gs.ecs); } + VirtualKeyCode::Comma | VirtualKeyCode::PageDown => try_move_player(1, 1, &mut gs.ecs), VirtualKeyCode::Down | VirtualKeyCode::M => { - try_move_player(0, 1, &mut gs.ecs, &mut gs.sound_system); - } - VirtualKeyCode::N | VirtualKeyCode::End => { - try_move_player(-1, 1, &mut gs.ecs, &mut gs.sound_system) + try_move_player(0, 1, &mut gs.ecs); } + VirtualKeyCode::N | VirtualKeyCode::End => try_move_player(-1, 1, &mut gs.ecs), VirtualKeyCode::S => { + let mut sound_system = gs.ecs.write_resource::(); let sound_effects = gs.ecs.fetch::(); - gs.sound_system.play_sound(sound_effects.pickup.clone()); + sound_system.play_sound(sound_effects.pickup.clone()); } VirtualKeyCode::D => { let mut show_debug_info = gs.ecs.write_resource::(); @@ -126,8 +119,9 @@ fn player_input(gs: &mut State, ctx: &mut BTerm) { ctx.quit(); } _ => { + let mut sound_system = gs.ecs.write_resource::(); let sound_effects = gs.ecs.fetch::(); - gs.sound_system.play_sound(sound_effects.bad_key.clone()); + sound_system.play_sound(sound_effects.bad_key.clone()); } }, } @@ -180,11 +174,9 @@ fn main() -> BError { let sound_effects = SoundEffects::new(&ss); ss.play_sound(sound_effects.startup.clone()); - let mut gs = State { - ecs: World::new(), - sound_system: ss, - }; + let mut gs = State { ecs: World::new() }; + gs.ecs.insert(ss); gs.ecs.insert(LevelNumber(0)); gs.ecs.insert(ShowDebugInfo(false)); gs.ecs.insert(Clock {