added cylinder invisible with character from blender
This commit is contained in:
parent
ca0987bbe3
commit
d34b52e33f
Binary file not shown.
1
src/comps/core/markers/proxy/bevy/mod.rs
Normal file
1
src/comps/core/markers/proxy/bevy/mod.rs
Normal file
@ -0,0 +1 @@
|
||||
pub mod visbility;
|
78
src/comps/core/markers/proxy/bevy/visbility.rs
Normal file
78
src/comps/core/markers/proxy/bevy/visbility.rs
Normal file
@ -0,0 +1,78 @@
|
||||
/*use bevy::{prelude::*, render::view::Visibility as BevyVisibility};
|
||||
use bevy_rapier3d::prelude::*;
|
||||
|
||||
#[derive(Component, Reflect, Default, Debug)]
|
||||
#[reflect(Component)]
|
||||
pub enum Visibility {
|
||||
Visible,
|
||||
Hidden,
|
||||
#[default]
|
||||
Inherited
|
||||
}
|
||||
|
||||
|
||||
// replaces all physics stand-ins with the actual rapier types
|
||||
pub fn bevy_replace_proxies(
|
||||
mut proxy_colliders: Query<
|
||||
(Entity, &BevyVisibility, &Name, &mut Visibility),
|
||||
(Without<RapierCollider>, Added<Collider>),
|
||||
>,
|
||||
mut commands: Commands,
|
||||
) {
|
||||
|
||||
for proxy_colider in proxy_colliders.iter_mut() {
|
||||
let (entity, collider_proxy, name, mut visibility) = proxy_colider;
|
||||
// we hide the collider meshes: perhaps they should be removed altogether once processed ?
|
||||
if name.ends_with("_collider") || name.ends_with("_sensor") {
|
||||
*visibility = Visibility::Hidden;
|
||||
}
|
||||
|
||||
let mut rapier_collider: RapierCollider;
|
||||
match collider_proxy {
|
||||
Collider::Ball(radius) => {
|
||||
println!("proxy: ball");
|
||||
rapier_collider = RapierCollider::ball(*radius);
|
||||
commands.entity(entity)
|
||||
.insert(rapier_collider)
|
||||
.insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!!
|
||||
;
|
||||
}
|
||||
Collider::Cuboid(size) => {
|
||||
println!("proxy: cuboid");
|
||||
rapier_collider = RapierCollider::cuboid(size.x, size.y, size.z);
|
||||
commands.entity(entity)
|
||||
.insert(rapier_collider)
|
||||
.insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!!
|
||||
;
|
||||
}
|
||||
Collider::Capsule(a, b, radius) => {
|
||||
println!("proxy: capsule");
|
||||
rapier_collider = RapierCollider::capsule(*a, *b, *radius);
|
||||
commands.entity(entity)
|
||||
.insert(rapier_collider)
|
||||
.insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!!
|
||||
;
|
||||
}
|
||||
Collider::Mesh => {
|
||||
println!("proxy: mesh");
|
||||
for (_, collider_mesh) in
|
||||
Mesh::search_in_children(entity, &children, &meshes, &mesh_handles)
|
||||
{
|
||||
rapier_collider = RapierCollider::from_bevy_mesh(
|
||||
collider_mesh,
|
||||
&ComputedColliderShape::TriMesh,
|
||||
)
|
||||
.unwrap();
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(rapier_collider);
|
||||
// FIXME: this is just for demo purposes !!!;
|
||||
//.insert(ActiveEvents::COLLISION_EVENTS);
|
||||
// .insert(ActiveEvents::COLLISION_EVENTS)
|
||||
// break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
@ -1,3 +1,4 @@
|
||||
pub mod character;
|
||||
pub mod plugin;
|
||||
pub mod physics;
|
||||
pub mod bevy;
|
@ -1,7 +1,7 @@
|
||||
use bevy::prelude::*;
|
||||
// use bevy::render::primitives::Aabb;
|
||||
use bevy_rapier3d::geometry::{Collider as RapierCollider, Sensor};
|
||||
use bevy_rapier3d::prelude::{ActiveCollisionTypes, ActiveEvents, ComputedColliderShape};
|
||||
use bevy_rapier3d::geometry::Collider as RapierCollider;
|
||||
use bevy_rapier3d::prelude::{ActiveEvents, ComputedColliderShape};
|
||||
|
||||
use super::utils::*;
|
||||
|
||||
|
@ -10,6 +10,9 @@ pub struct ProxyComponentsPlugin;
|
||||
|
||||
impl Plugin for ProxyComponentsPlugin {
|
||||
fn build(&self, app: &mut bevy::prelude::App) {
|
||||
// Bevy
|
||||
|
||||
|
||||
// Character
|
||||
app.register_type::<PlayerHitBox>();
|
||||
app.register_type::<PlayerCharacter>();
|
||||
|
@ -16,7 +16,7 @@ use crate::{
|
||||
player_values_state::PlayerValuesState,
|
||||
},
|
||||
},
|
||||
setup::{equipment::EquipmentChangeEvent, load_state::GameLoadState, assets::{GltfAsset, GltfAssets}},
|
||||
setup::{equipment::EquipmentChangeEvent, load_state::GameLoadState, assets::GltfAssets},
|
||||
};
|
||||
|
||||
use super::spawn_point::SpawnPoint;
|
||||
@ -49,7 +49,7 @@ pub fn player_spawner(
|
||||
}
|
||||
|
||||
for (player_spawn_point_entity, player_spawn_point) in player_sp_query.iter() {
|
||||
let mut plyer_transform = Transform::from_xyz(25.0, 0.0, 25.0).with_scale(Vec3 { x: 3.0, y: 3.0, z: 3.0 });
|
||||
let plyer_transform = Transform::from_xyz(25.0, 0.0, 25.0).with_scale(Vec3 { x: 3.0, y: 3.0, z: 3.0 });
|
||||
commands.spawn(
|
||||
(
|
||||
SceneBundle {
|
||||
|
@ -1,7 +1,5 @@
|
||||
use bevy::prelude::*;
|
||||
|
||||
use crate::comps::core::markers::proxy::physics::rapier::physics_replace_proxies;
|
||||
|
||||
use super::{
|
||||
item::{item_spawner, ItemSpawnPointPlugin},
|
||||
player::player_spawner,
|
||||
|
@ -5,8 +5,6 @@ use crate::{
|
||||
scenes::scene1::skybox::{Cubemap, CUBEMAPS},
|
||||
};
|
||||
|
||||
use super::load_state::GameLoadState;
|
||||
|
||||
#[derive(PartialEq, Eq, PartialOrd, Ord, Reflect)]
|
||||
pub enum GltfAssetType {
|
||||
Firearm(Firearm),
|
||||
|
Loading…
Reference in New Issue
Block a user