From fc300dae01f9c6e29d883174eb29448ce53a8e95 Mon Sep 17 00:00:00 2001 From: extrawurst Date: Mon, 5 May 2025 23:17:42 +0200 Subject: [PATCH] give collectibales physics layer this keeps keys, dropped-hedz and cash from "colliding" with the camera arm --- src/head_drop.rs | 6 ++++-- src/keys.rs | 6 ++++-- src/physics_layers.rs | 1 + src/tb_entities.rs | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/head_drop.rs b/src/head_drop.rs index 9280dc1..a336e8d 100644 --- a/src/head_drop.rs +++ b/src/head_drop.rs @@ -1,6 +1,7 @@ use crate::{ - GameState, billboards::Billboard, global_observer, loading_assets::GameAssets, player::Player, - sounds::PlaySound, squish_animation::SquishAnimation, + GameState, billboards::Billboard, global_observer, loading_assets::GameAssets, + physics_layers::GameLayer, player::Player, sounds::PlaySound, + squish_animation::SquishAnimation, }; use avian3d::prelude::*; use bevy::prelude::*; @@ -40,6 +41,7 @@ fn on_head_drop(trigger: Trigger, mut commands: Commands, assets: Res ExternalImpulse::new(spawn_dir * 180.).with_persistence(false), LockedAxes::ROTATION_LOCKED, RigidBody::Dynamic, + CollisionLayers::new(LayerMask(GameLayer::Collectibles.to_bits()), LayerMask::ALL), CollisionEventsEnabled, Restitution::new(0.6), )) diff --git a/src/keys.rs b/src/keys.rs index c7484cd..1b53e05 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -1,6 +1,7 @@ use crate::{ - GameState, billboards::Billboard, global_observer, loading_assets::GameAssets, player::Player, - sounds::PlaySound, squish_animation::SquishAnimation, + GameState, billboards::Billboard, global_observer, loading_assets::GameAssets, + physics_layers::GameLayer, player::Player, sounds::PlaySound, + squish_animation::SquishAnimation, }; use avian3d::prelude::*; use bevy::prelude::*; @@ -37,6 +38,7 @@ fn on_spawn_key(trigger: Trigger, mut commands: Commands, assets: Res< ExternalImpulse::new(spawn_dir * 180.).with_persistence(false), LockedAxes::ROTATION_LOCKED, RigidBody::Dynamic, + CollisionLayers::new(LayerMask(GameLayer::Collectibles.to_bits()), LayerMask::ALL), CollisionEventsEnabled, Restitution::new(0.6), Children::spawn(Spawn(( diff --git a/src/physics_layers.rs b/src/physics_layers.rs index 6b46bd2..ea7ca80 100644 --- a/src/physics_layers.rs +++ b/src/physics_layers.rs @@ -8,4 +8,5 @@ pub enum GameLayer { Player, Npc, Projectile, + Collectibles, } diff --git a/src/tb_entities.rs b/src/tb_entities.rs index ce7efe1..1771665 100644 --- a/src/tb_entities.rs +++ b/src/tb_entities.rs @@ -168,6 +168,7 @@ impl CashSpawn { SceneRoot(mesh), Cash, Collider::cuboid(2., 3.0, 2.), + CollisionLayers::new(LayerMask(GameLayer::Collectibles.to_bits()), LayerMask::ALL), CollisionEventsEnabled, Sensor, ));