use bevy::prelude::Resource;
use crate::prelude::*;
#[cfg_attr(feature = "2d", doc = "use bevy_xpbd_2d::prelude::*;")]
#[cfg_attr(feature = "3d", doc = "use bevy_xpbd_3d::prelude::*;")]
#[derive(Reflect, Resource, Clone, Copy)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
#[reflect(Resource)]
pub struct SubstepCount(pub u32);
impl Default for SubstepCount {
fn default() -> Self {
Self(12)
}
}
#[derive(Reflect, Resource, Clone, Copy, PartialEq, PartialOrd, Debug)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
#[reflect(Resource)]
pub struct SleepingThreshold {
pub linear: Scalar,
pub angular: Scalar,
}
impl Default for SleepingThreshold {
fn default() -> Self {
Self {
linear: 0.1,
angular: 0.2,
}
}
}
#[derive(Reflect, Resource, Clone, Copy, PartialEq, PartialOrd, Debug)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
#[reflect(Resource)]
pub struct DeactivationTime(pub Scalar);
impl Default for DeactivationTime {
fn default() -> Self {
Self(1.0)
}
}
#[cfg_attr(feature = "2d", doc = "use bevy_xpbd_2d::prelude::*;")]
#[cfg_attr(feature = "3d", doc = "use bevy_xpbd_3d::prelude::*;")]
#[cfg_attr(
feature = "2d",
doc = " .insert_resource(Gravity(Vec2::NEG_Y * 100.0))"
)]
#[cfg_attr(
feature = "3d",
doc = " .insert_resource(Gravity(Vec3::NEG_Y * 19.6))"
)]
#[derive(Reflect, Resource, Debug)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
#[reflect(Resource)]
pub struct Gravity(pub Vector);
impl Default for Gravity {
fn default() -> Self {
Self(Vector::Y * -9.81)
}
}
impl Gravity {
pub const ZERO: Gravity = Gravity(Vector::ZERO);
}