From 28ad53fd6829208b8a47ae131b2680dd21ecb9a9 Mon Sep 17 00:00:00 2001 From: extrawurst <776816+extrawurst@users.noreply.github.com> Date: Fri, 20 Jun 2025 17:35:00 +0200 Subject: [PATCH] Player can loose head (#46) --- src/head_drop.rs | 63 ++++++++++++++++++++++++++++++--------- src/heads/mod.rs | 20 +++++++++++++ src/player.rs | 77 ++++++++++++++++++++++++++++++------------------ 3 files changed, 118 insertions(+), 42 deletions(-) diff --git a/src/head_drop.rs b/src/head_drop.rs index 9375f0a..b1b750b 100644 --- a/src/head_drop.rs +++ b/src/head_drop.rs @@ -37,7 +37,13 @@ impl HeadDrops { #[derive(Component, Reflect)] #[reflect(Component)] -struct HeadDrop(pub usize); +struct HeadDrop { + pub head_id: usize, +} + +#[derive(Component, Reflect)] +#[reflect(Component)] +struct HeadDropEnableTime(f32); #[derive(Component, Reflect)] #[reflect(Component)] @@ -47,6 +53,11 @@ struct SecretHeadMarker; pub struct HeadCollected(pub usize); pub fn plugin(app: &mut App) { + app.add_systems( + Update, + enable_collectible.run_if(in_state(GameState::Playing)), + ); + app.add_systems(OnEnter(GameState::Playing), spawn); global_observer!(app, on_head_drop); @@ -69,6 +80,7 @@ fn on_head_drop( assets: Res, heads_db: Res, gltf_assets: Res>, + time: Res