Parameterize Rapier user data.
This commit is contained in:
parent
06d47a0a60
commit
16eac466a4
19
src/core.rs
19
src/core.rs
|
@ -1,10 +1,11 @@
|
|||
use std::{
|
||||
cmp::{max, min},
|
||||
fmt::Display,
|
||||
marker::PhantomData,
|
||||
ops::{Add, AddAssign, Sub, SubAssign},
|
||||
};
|
||||
|
||||
use bevy::{core::FloatOrd, prelude::*, transform::TransformSystem};
|
||||
use bevy::{core::FloatOrd, ecs::query::WorldQuery, prelude::*, transform::TransformSystem};
|
||||
use bevy_rapier2d::prelude::*;
|
||||
use derive_more::{Deref, DerefMut};
|
||||
use rand::prelude::*;
|
||||
|
@ -611,14 +612,22 @@ impl Plugin for CorePlugin {
|
|||
}
|
||||
}
|
||||
|
||||
pub struct CorePlugins;
|
||||
pub struct CorePlugins<RapierUserData>(PhantomData<RapierUserData>);
|
||||
|
||||
impl PluginGroup for CorePlugins {
|
||||
impl<RapierUserData> Default for CorePlugins<RapierUserData> {
|
||||
fn default() -> Self {
|
||||
Self(PhantomData)
|
||||
}
|
||||
}
|
||||
|
||||
impl<RapierUserData: 'static + WorldQuery + Send + Sync> PluginGroup
|
||||
for CorePlugins<RapierUserData>
|
||||
{
|
||||
fn build(&mut self, group: &mut bevy::app::PluginGroupBuilder) {
|
||||
group
|
||||
.add(crate::bevy_tts::TtsPlugin)
|
||||
.add(crate::bevy_openal::OpenAlPlugin)
|
||||
.add(CorePlugin)
|
||||
.add(RapierPhysicsPlugin::<NoUserData>::default());
|
||||
.add(RapierPhysicsPlugin::<RapierUserData>::default())
|
||||
.add(CorePlugin);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user