use bevy::prelude::*; use crate::sounds::PlaySound; #[derive(Component, Reflect, Default)] #[reflect(Component)] #[require(Transform)] pub struct Cash; #[derive(Component, Reflect, Default)] #[reflect(Component)] struct CashText; #[derive(Resource, Reflect, Default)] pub struct CashResource { pub cash: i32, } #[derive(Event)] pub struct CashCollectEvent; pub fn plugin(app: &mut App) { app.init_resource::(); app.add_systems(Startup, setup); app.add_systems(Update, (rotate, update_ui)); app.add_observer(on_collect); } fn on_collect( _trigger: Trigger, mut commands: Commands, mut cash: ResMut, ) { commands.trigger(PlaySound::CashCollect); cash.cash += 100; } fn rotate(time: Res