From 0616d64c6f81de89069e8ce75988ae1c132da824 Mon Sep 17 00:00:00 2001 From: Ben Frankel Date: Thu, 15 Aug 2024 14:57:20 -0700 Subject: [PATCH] Rename things --- .../audio/{bgm => music}/Fluffing A Duck.ogg | Bin .../Monkeys Spinning Monkeys.ogg | Bin .../{sfx => sound_effects}/button_hover.ogg | Bin .../{sfx => sound_effects}/button_press.ogg | Bin assets/audio/{sfx => sound_effects}/step1.ogg | Bin assets/audio/{sfx => sound_effects}/step2.ogg | Bin assets/audio/{sfx => sound_effects}/step3.ogg | Bin assets/audio/{sfx => sound_effects}/step4.ogg | Bin src/asset_tracking.rs | 4 +- src/demo/animation.rs | 4 +- src/demo/player.rs | 10 ++-- src/screens/credits.rs | 56 ++++++++++-------- src/screens/{playing.rs => gameplay.rs} | 19 +++--- src/screens/loading.rs | 17 +++--- src/screens/mod.rs | 12 ++-- src/screens/splash.rs | 14 ++--- src/screens/title.rs | 2 +- src/theme/interaction.rs | 8 +-- 18 files changed, 78 insertions(+), 68 deletions(-) rename assets/audio/{bgm => music}/Fluffing A Duck.ogg (100%) rename assets/audio/{bgm => music}/Monkeys Spinning Monkeys.ogg (100%) rename assets/audio/{sfx => sound_effects}/button_hover.ogg (100%) rename assets/audio/{sfx => sound_effects}/button_press.ogg (100%) rename assets/audio/{sfx => sound_effects}/step1.ogg (100%) rename assets/audio/{sfx => sound_effects}/step2.ogg (100%) rename assets/audio/{sfx => sound_effects}/step3.ogg (100%) rename assets/audio/{sfx => sound_effects}/step4.ogg (100%) rename src/screens/{playing.rs => gameplay.rs} (70%) diff --git a/assets/audio/bgm/Fluffing A Duck.ogg b/assets/audio/music/Fluffing A Duck.ogg similarity index 100% rename from assets/audio/bgm/Fluffing A Duck.ogg rename to assets/audio/music/Fluffing A Duck.ogg diff --git a/assets/audio/bgm/Monkeys Spinning Monkeys.ogg b/assets/audio/music/Monkeys Spinning Monkeys.ogg similarity index 100% rename from assets/audio/bgm/Monkeys Spinning Monkeys.ogg rename to assets/audio/music/Monkeys Spinning Monkeys.ogg diff --git a/assets/audio/sfx/button_hover.ogg b/assets/audio/sound_effects/button_hover.ogg similarity index 100% rename from assets/audio/sfx/button_hover.ogg rename to assets/audio/sound_effects/button_hover.ogg diff --git a/assets/audio/sfx/button_press.ogg b/assets/audio/sound_effects/button_press.ogg similarity index 100% rename from assets/audio/sfx/button_press.ogg rename to assets/audio/sound_effects/button_press.ogg diff --git a/assets/audio/sfx/step1.ogg b/assets/audio/sound_effects/step1.ogg similarity index 100% rename from assets/audio/sfx/step1.ogg rename to assets/audio/sound_effects/step1.ogg diff --git a/assets/audio/sfx/step2.ogg b/assets/audio/sound_effects/step2.ogg similarity index 100% rename from assets/audio/sfx/step2.ogg rename to assets/audio/sound_effects/step2.ogg diff --git a/assets/audio/sfx/step3.ogg b/assets/audio/sound_effects/step3.ogg similarity index 100% rename from assets/audio/sfx/step3.ogg rename to assets/audio/sound_effects/step3.ogg diff --git a/assets/audio/sfx/step4.ogg b/assets/audio/sound_effects/step4.ogg similarity index 100% rename from assets/audio/sfx/step4.ogg rename to assets/audio/sound_effects/step4.ogg diff --git a/src/asset_tracking.rs b/src/asset_tracking.rs index b71076bc..265e712f 100644 --- a/src/asset_tracking.rs +++ b/src/asset_tracking.rs @@ -3,8 +3,8 @@ use bevy::prelude::*; pub(super) fn plugin(app: &mut App) { - app.init_resource::() - .add_systems(PreUpdate, load_resource_assets); + app.init_resource::(); + app.add_systems(PreUpdate, load_resource_assets); } pub trait LoadResource { diff --git a/src/demo/animation.rs b/src/demo/animation.rs index e6a9caad..6f041398 100644 --- a/src/demo/animation.rs +++ b/src/demo/animation.rs @@ -22,7 +22,7 @@ pub(super) fn plugin(app: &mut App) { ( update_animation_movement, update_animation_atlas, - trigger_step_sfx, + trigger_step_sound_effect, ) .chain() .run_if(resource_exists::) @@ -68,7 +68,7 @@ fn update_animation_atlas(mut query: Query<(&PlayerAnimation, &mut TextureAtlas) /// If the player is moving, play a step sound effect synchronized with the /// animation. -fn trigger_step_sfx( +fn trigger_step_sound_effect( mut commands: Commands, player_assets: Res, mut step_query: Query<&PlayerAnimation>, diff --git a/src/demo/player.rs b/src/demo/player.rs index ef3ac701..81172ef1 100644 --- a/src/demo/player.rs +++ b/src/demo/player.rs @@ -79,7 +79,7 @@ fn spawn_player( }, ScreenWrap, player_animation, - StateScoped(Screen::Playing), + StateScoped(Screen::Gameplay), )); } @@ -125,10 +125,10 @@ pub struct PlayerAssets { impl PlayerAssets { pub const PATH_DUCKY: &'static str = "images/ducky.png"; - pub const PATH_STEP_1: &'static str = "audio/sfx/step1.ogg"; - pub const PATH_STEP_2: &'static str = "audio/sfx/step2.ogg"; - pub const PATH_STEP_3: &'static str = "audio/sfx/step3.ogg"; - pub const PATH_STEP_4: &'static str = "audio/sfx/step4.ogg"; + pub const PATH_STEP_1: &'static str = "audio/sound_effects/step1.ogg"; + pub const PATH_STEP_2: &'static str = "audio/sound_effects/step2.ogg"; + pub const PATH_STEP_3: &'static str = "audio/sound_effects/step3.ogg"; + pub const PATH_STEP_4: &'static str = "audio/sound_effects/step4.ogg"; } impl FromWorld for PlayerAssets { diff --git a/src/screens/credits.rs b/src/screens/credits.rs index f5b1ae52..b0f88a8d 100644 --- a/src/screens/credits.rs +++ b/src/screens/credits.rs @@ -5,29 +5,14 @@ use bevy::prelude::*; use crate::{asset_tracking::LoadResource, audio::Music, screens::Screen, theme::prelude::*}; pub(super) fn plugin(app: &mut App) { - app.load_resource::(); - app.add_systems(OnEnter(Screen::Credits), show_credits_screen); - app.add_systems(OnExit(Screen::Credits), stop_bgm); -} - -#[derive(Resource, Asset, Reflect, Clone)] -pub struct CreditsMusic { - #[dependency] - music: Handle, - entity: Option, -} + app.add_systems(OnEnter(Screen::Credits), spawn_credits_screen); -impl FromWorld for CreditsMusic { - fn from_world(world: &mut World) -> Self { - let assets = world.resource::(); - Self { - music: assets.load("audio/bgm/Monkeys Spinning Monkeys.ogg"), - entity: None, - } - } + app.load_resource::(); + app.add_systems(OnEnter(Screen::Credits), play_credits_music); + app.add_systems(OnExit(Screen::Credits), stop_music); } -fn show_credits_screen(mut commands: Commands, mut music: ResMut) { +fn spawn_credits_screen(mut commands: Commands) { commands .ui_root() .insert(StateScoped(Screen::Credits)) @@ -42,9 +27,32 @@ fn show_credits_screen(mut commands: Commands, mut music: ResMut) children.label("Button SFX - CC0 by Jaszunio15"); children.label("Music - CC BY 3.0 by Kevin MacLeod"); - children.button("Back").observe(enter_title); + children.button("Back").observe(enter_title_screen); }); +} + +fn enter_title_screen(_trigger: Trigger, mut next_screen: ResMut>) { + next_screen.set(Screen::Title); +} + +#[derive(Resource, Asset, Reflect, Clone)] +pub struct CreditsMusic { + #[dependency] + music: Handle, + entity: Option, +} + +impl FromWorld for CreditsMusic { + fn from_world(world: &mut World) -> Self { + let assets = world.resource::(); + Self { + music: assets.load("audio/music/Monkeys Spinning Monkeys.ogg"), + entity: None, + } + } +} +fn play_credits_music(mut commands: Commands, mut music: ResMut) { music.entity = Some( commands .spawn(( @@ -58,12 +66,8 @@ fn show_credits_screen(mut commands: Commands, mut music: ResMut) ); } -fn stop_bgm(mut commands: Commands, mut music: ResMut) { +fn stop_music(mut commands: Commands, mut music: ResMut) { if let Some(entity) = music.entity.take() { commands.entity(entity).despawn_recursive(); } } - -fn enter_title(_trigger: Trigger, mut next_screen: ResMut>) { - next_screen.set(Screen::Title); -} diff --git a/src/screens/playing.rs b/src/screens/gameplay.rs similarity index 70% rename from src/screens/playing.rs rename to src/screens/gameplay.rs index b6bd4ab1..66b78572 100644 --- a/src/screens/playing.rs +++ b/src/screens/gameplay.rs @@ -8,17 +8,23 @@ use crate::{ }; pub(super) fn plugin(app: &mut App) { + app.add_systems(OnEnter(Screen::Gameplay), spawn_level); + app.load_resource::(); - app.add_systems(OnEnter(Screen::Playing), spawn_level); - app.add_systems(OnExit(Screen::Playing), stop_bgm); + app.add_systems(OnEnter(Screen::Gameplay), play_gameplay_music); + app.add_systems(OnExit(Screen::Gameplay), stop_music); app.add_systems( Update, return_to_title_screen - .run_if(in_state(Screen::Playing).and_then(input_just_pressed(KeyCode::Escape))), + .run_if(in_state(Screen::Gameplay).and_then(input_just_pressed(KeyCode::Escape))), ); } +fn spawn_level(mut commands: Commands) { + commands.add(spawn_level_command); +} + #[derive(Resource, Asset, Reflect, Clone)] pub struct GameplayMusic { #[dependency] @@ -30,14 +36,13 @@ impl FromWorld for GameplayMusic { fn from_world(world: &mut World) -> Self { let assets = world.resource::(); Self { - handle: assets.load("audio/bgm/Fluffing A Duck.ogg"), + handle: assets.load("audio/music/Fluffing A Duck.ogg"), entity: None, } } } -fn spawn_level(mut commands: Commands, mut music: ResMut) { - commands.add(spawn_level_command); +fn play_gameplay_music(mut commands: Commands, mut music: ResMut) { music.entity = Some( commands .spawn(( @@ -51,7 +56,7 @@ fn spawn_level(mut commands: Commands, mut music: ResMut) { ); } -fn stop_bgm(mut commands: Commands, mut music: ResMut) { +fn stop_music(mut commands: Commands, mut music: ResMut) { if let Some(entity) = music.entity.take() { commands.entity(entity).despawn_recursive(); } diff --git a/src/screens/loading.rs b/src/screens/loading.rs index d3433d13..e6eb5ca1 100644 --- a/src/screens/loading.rs +++ b/src/screens/loading.rs @@ -5,19 +5,20 @@ use bevy::prelude::*; use crate::{ demo::player::PlayerAssets, - screens::{credits::CreditsMusic, playing::GameplayMusic, Screen}, + screens::{credits::CreditsMusic, gameplay::GameplayMusic, Screen}, theme::{interaction::InteractionAssets, prelude::*}, }; pub(super) fn plugin(app: &mut App) { - app.add_systems(OnEnter(Screen::Loading), show_loading_screen); + app.add_systems(OnEnter(Screen::Loading), spawn_loading_screen); + app.add_systems( Update, - continue_to_title.run_if(in_state(Screen::Loading).and_then(all_assets_loaded)), + continue_to_title_screen.run_if(in_state(Screen::Loading).and_then(all_assets_loaded)), ); } -fn show_loading_screen(mut commands: Commands) { +fn spawn_loading_screen(mut commands: Commands) { commands .ui_root() .insert(StateScoped(Screen::Loading)) @@ -29,6 +30,10 @@ fn show_loading_screen(mut commands: Commands) { }); } +fn continue_to_title_screen(mut next_screen: ResMut>) { + next_screen.set(Screen::Title); +} + fn all_assets_loaded( player_assets: Option>, interaction_assets: Option>, @@ -40,7 +45,3 @@ fn all_assets_loaded( && credits_music.is_some() && gameplay_music.is_some() } - -fn continue_to_title(mut next_screen: ResMut>) { - next_screen.set(Screen::Title); -} diff --git a/src/screens/mod.rs b/src/screens/mod.rs index a63828b9..49bdc53f 100644 --- a/src/screens/mod.rs +++ b/src/screens/mod.rs @@ -1,8 +1,8 @@ //! The game's main screen states and transitions between them. -pub mod credits; +mod credits; +mod gameplay; mod loading; -pub mod playing; mod splash; mod title; @@ -13,11 +13,11 @@ pub(super) fn plugin(app: &mut App) { app.enable_state_scoped_entities::(); app.add_plugins(( - splash::plugin, + credits::plugin, + gameplay::plugin, loading::plugin, + splash::plugin, title::plugin, - credits::plugin, - playing::plugin, )); } @@ -29,5 +29,5 @@ pub enum Screen { Loading, Title, Credits, - Playing, + Gameplay, } diff --git a/src/screens/splash.rs b/src/screens/splash.rs index 0a982065..026711a7 100644 --- a/src/screens/splash.rs +++ b/src/screens/splash.rs @@ -11,7 +11,7 @@ use crate::{screens::Screen, theme::prelude::*, AppSet}; pub(super) fn plugin(app: &mut App) { // Spawn splash screen. app.insert_resource(ClearColor(SPLASH_BACKGROUND_COLOR)); - app.add_systems(OnEnter(Screen::Splash), spawn_splash); + app.add_systems(OnEnter(Screen::Splash), spawn_splash_screen); // Animate splash screen. app.add_systems( @@ -39,7 +39,7 @@ pub(super) fn plugin(app: &mut App) { // Exit the splash screen early if the player hits escape. app.add_systems( Update, - exit_splash_screen + continue_to_loading_screen .run_if(input_just_pressed(KeyCode::Escape).and_then(in_state(Screen::Splash))), ); } @@ -48,11 +48,7 @@ const SPLASH_BACKGROUND_COLOR: Color = Color::srgb(0.157, 0.157, 0.157); const SPLASH_DURATION_SECS: f32 = 1.8; const SPLASH_FADE_DURATION_SECS: f32 = 0.6; -fn exit_splash_screen(mut next_screen: ResMut>) { - next_screen.set(Screen::Loading); -} - -fn spawn_splash(mut commands: Commands, asset_server: Res) { +fn spawn_splash_screen(mut commands: Commands, asset_server: Res) { commands .ui_root() .insert(( @@ -151,3 +147,7 @@ fn check_splash_timer(timer: ResMut, mut next_screen: ResMut>) { + next_screen.set(Screen::Loading); +} diff --git a/src/screens/title.rs b/src/screens/title.rs index 29d4f1c2..d9238ba5 100644 --- a/src/screens/title.rs +++ b/src/screens/title.rs @@ -22,7 +22,7 @@ fn show_title_screen(mut commands: Commands) { } fn enter_playing(_trigger: Trigger, mut next_screen: ResMut>) { - next_screen.set(Screen::Playing); + next_screen.set(Screen::Gameplay); } fn enter_credits(_trigger: Trigger, mut next_screen: ResMut>) { diff --git a/src/theme/interaction.rs b/src/theme/interaction.rs index aef211be..ace41a3d 100644 --- a/src/theme/interaction.rs +++ b/src/theme/interaction.rs @@ -10,7 +10,7 @@ pub(super) fn plugin(app: &mut App) { ( trigger_on_press, apply_interaction_palette, - trigger_interaction_sfx, + trigger_interaction_sound_effect, ) .run_if(resource_exists::), ); @@ -68,8 +68,8 @@ pub struct InteractionAssets { } impl InteractionAssets { - pub const PATH_BUTTON_HOVER: &'static str = "audio/sfx/button_hover.ogg"; - pub const PATH_BUTTON_PRESS: &'static str = "audio/sfx/button_press.ogg"; + pub const PATH_BUTTON_HOVER: &'static str = "audio/sound_effects/button_hover.ogg"; + pub const PATH_BUTTON_PRESS: &'static str = "audio/sound_effects/button_press.ogg"; } impl FromWorld for InteractionAssets { @@ -82,7 +82,7 @@ impl FromWorld for InteractionAssets { } } -fn trigger_interaction_sfx( +fn trigger_interaction_sound_effect( interaction_query: Query<&Interaction, Changed>, interaction_assets: Res, mut commands: Commands,