bevy_tnua/builtins/
walk_sensors.rs1use crate::ghost_overrides::{TnuaGhostOverwrite, TnuaGhostOverwritesForBasis};
2use crate::sensor_sets::TnuaSensors;
3use bevy::prelude::*;
4use bevy_tnua_physics_integration_layer::data_for_backends::TnuaProximitySensor;
5
6#[derive(Copy, Clone)]
7pub struct TnuaBuiltinWalkSensors<'a> {
8 pub ground: &'a TnuaProximitySensor,
10
11 pub headroom: Option<&'a TnuaProximitySensor>,
13}
14
15impl<'a> TnuaSensors<'a> for TnuaBuiltinWalkSensors<'a> {
16 type Entities = TnuaBuiltinWalkSensorsEntities;
17 type GhostOverwrites = TnuaBuiltinWalkSensorsGhostOverwrites;
18}
19
20#[derive(Default)]
21pub struct TnuaBuiltinWalkSensorsEntities {
22 pub ground: Option<Entity>,
24
25 pub headroom: Option<Entity>,
27}
28
29#[derive(Component, Default)]
30#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
31pub struct TnuaBuiltinWalkSensorsGhostOverwrites {
32 pub ground: TnuaGhostOverwrite,
34}
35
36impl TnuaGhostOverwritesForBasis for TnuaBuiltinWalkSensorsGhostOverwrites {
37 type Entities = TnuaBuiltinWalkSensorsEntities;
38}