Skip to content

Commit 7817e30

Browse files
committed
feat: add labels to colliders created
1 parent bac2f74 commit 7817e30

3 files changed

Lines changed: 15 additions & 0 deletions

File tree

crates/bevy_animation_graph/src/core/animated_scene/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ fn process_scene_into_animscn(
214214
.into(),
215215
},
216216
offset_mode: cfg.offset_mode,
217+
label: cfg.label.clone(),
217218
};
218219
let mirror_bone_collider_list = foreach_bone.entry(mirror_bone_id).or_default();
219220
mirror_bone_collider_list.push(mirror_cfg);
@@ -233,6 +234,8 @@ fn process_scene_into_animscn(
233234
use avian3d::prelude::{ColliderConstructor, CollisionLayers};
234235

235236
let cfg_to_bundle = |cfg: ColliderConfig| {
237+
use crate::core::colliders::core::ColliderLabel;
238+
236239
(
237240
cfg.local_transform(default_transforms),
238241
match cfg.shape {
@@ -262,6 +265,7 @@ fn process_scene_into_animscn(
262265
skeleton_colliders.default_layer_filter,
263266
)
264267
},
268+
ColliderLabel(cfg.label.clone()),
265269
)
266270
};
267271

crates/bevy_animation_graph/src/core/colliders/core.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use bevy::{
22
asset::{Asset, Handle},
3+
ecs::component::Component,
34
math::{
45
Isometry3d, Vec3,
56
primitives::{Capsule3d, Cuboid, Sphere},
@@ -46,6 +47,9 @@ pub enum ColliderOffsetMode {
4647
Global,
4748
}
4849

50+
#[derive(Component, Default, Clone, Reflect, PartialEq, Eq)]
51+
pub struct ColliderLabel(pub String);
52+
4953
#[derive(Debug, Clone, Reflect)]
5054
pub struct ColliderConfig {
5155
pub id: SkeletonColliderId,
@@ -56,6 +60,8 @@ pub struct ColliderConfig {
5660
pub attached_to: BoneId,
5761
pub offset: Isometry3d,
5862
pub offset_mode: ColliderOffsetMode,
63+
/// Label that will be attached to the created collider in a [`ColliderLabel`] component.
64+
pub label: String,
5965
}
6066

6167
impl ColliderConfig {
@@ -83,6 +89,7 @@ impl Default for ColliderConfig {
8389
attached_to: BoneId::default(),
8490
offset: Isometry3d::default(),
8591
offset_mode: ColliderOffsetMode::default(),
92+
label: "".to_string(),
8693
}
8794
}
8895
}

crates/bevy_animation_graph/src/core/colliders/serial.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ pub struct ColliderConfigSerial {
2323
pub offset: Isometry3d,
2424
#[serde(default)]
2525
pub offset_mode: ColliderOffsetMode,
26+
#[serde(default)]
27+
pub label: String,
2628
}
2729

2830
#[derive(Debug, Clone, Default, Reflect, Serialize, Deserialize)]
@@ -50,6 +52,7 @@ impl SkeletonCollidersSerial {
5052
offset: config.offset,
5153
id: config.id,
5254
offset_mode: config.offset_mode,
55+
label: config.label.clone(),
5356
};
5457

5558
colliders.push(config_serial);
@@ -89,6 +92,7 @@ impl SkeletonCollidersSerial {
8992
offset: config_serial.offset,
9093
id: config_serial.id,
9194
offset_mode: config_serial.offset_mode,
95+
label: config_serial.label.clone(),
9296
};
9397

9498
colliders.add_collider(config);

0 commit comments

Comments
 (0)