gizmo_physics_rigid/components/
explosion.rs1use gizmo_math::Vec3;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize, Default)]
5pub enum ExplosionFalloff {
6 None, #[default]
8 Linear, Quadratic, }
11
12#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
13pub struct Explosion {
14 pub force_radius: f32,
15 pub force: f32,
16 pub damage: f32,
17 pub damage_radius: f32,
18 pub falloff: ExplosionFalloff,
19 pub offset: Vec3,
20 pub is_active: bool,
21}
22
23impl Default for Explosion {
24 fn default() -> Self {
25 Self {
26 force_radius: 5.0,
27 force: 1000.0,
28 damage: 100.0,
29 damage_radius: 5.0,
30 falloff: ExplosionFalloff::Linear,
31 offset: Vec3::ZERO,
32 is_active: true,
33 }
34 }
35}
36
37gizmo_core::impl_component!(Explosion);