setup
This commit is contained in:
@@ -12,9 +12,9 @@ bevy-inspector-egui = "0.23.4"
|
||||
iyes_perf_ui = "0.2.3"
|
||||
noise = "0.8.2"
|
||||
world_generation ={path="../../engine/world_generation"}
|
||||
bevy_rapier3d = { version = "0.25.0", features = [ "simd-stable", "debug-render-3d","parallel" ] }
|
||||
rayon = "1.10.0"
|
||||
bevy_xpbd_3d = { version= "0.4.2", features= ["simd", "parallel"] }
|
||||
|
||||
|
||||
[features]
|
||||
tracing = ["bevy/trace_tracy", "world_generation/tracing"]
|
||||
tracing = ["bevy/trace_tracy", "world_generation/tracing"]
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
use bevy::core_pipeline::experimental::taa::{TemporalAntiAliasBundle, TemporalAntiAliasPlugin};
|
||||
use bevy::input::mouse::{MouseMotion, MouseScrollUnit, MouseWheel};
|
||||
use bevy::pbr::ScreenSpaceAmbientOcclusionBundle;
|
||||
use bevy::prelude::*;
|
||||
use bevy::window::CursorGrabMode;
|
||||
use bevy_rapier3d::plugin::RapierContext;
|
||||
use world_generation::hex_utils::HexCoord;
|
||||
use world_generation::prelude::Map;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use bevy::prelude::*;
|
||||
use bevy_rapier3d::geometry::{Collider, TriMeshFlags};
|
||||
use bevy_xpbd_3d::plugins::collision::Collider;
|
||||
use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
|
||||
use world_generation::{
|
||||
biome_painter::BiomePainterAsset,
|
||||
@@ -65,8 +65,7 @@ fn chunk_rebuilder(
|
||||
let chunk = &heightmap.chunks[*idx];
|
||||
let mesh = generate_chunk_mesh(chunk, &heightmap, cur_painter, &tile_assets, &tile_mappers);
|
||||
let (col_verts, col_indicies) = generate_chunk_collider(chunk, &heightmap);
|
||||
let collider =
|
||||
Collider::trimesh_with_flags(col_verts, col_indicies, TriMeshFlags::MERGE_DUPLICATE_VERTICES);
|
||||
let collider = Collider::trimesh(col_verts, col_indicies);
|
||||
return (
|
||||
mesh,
|
||||
collider,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
use bevy::log::*;
|
||||
use bevy::{asset::LoadState, pbr::ExtendedMaterial, prelude::*};
|
||||
use bevy_inspector_egui::quick::ResourceInspectorPlugin;
|
||||
use bevy_rapier3d::geometry::Collider;
|
||||
use bevy_xpbd_3d::plugins::collision::Collider;
|
||||
use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
|
||||
use world_generation::{
|
||||
biome_painter::*,
|
||||
@@ -181,8 +181,8 @@ fn create_map(mut commands: Commands, mut cam: Query<(&mut Transform, Entity), W
|
||||
noise_scale: 450.,
|
||||
sea_level: 8.5,
|
||||
border_size: 64.,
|
||||
size: UVec2::splat(1024 / Chunk::SIZE as u32),
|
||||
// size: UVec2::splat(1),
|
||||
//size: UVec2::splat(1024 / Chunk::SIZE as u32),
|
||||
size: UVec2::splat(2),
|
||||
};
|
||||
let heightmap = generate_heightmap(&config, 4);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use bevy::{prelude::*, window::PrimaryWindow};
|
||||
use bevy_rapier3d::{pipeline::QueryFilter, plugin::RapierContext};
|
||||
use bevy_xpbd_3d::plugins::spatial_query::{SpatialQuery, SpatialQueryFilter};
|
||||
use world_generation::{hex_utils::HexCoord, prelude::Map};
|
||||
|
||||
use crate::{camera_system::components::PhosCamera, prelude::PhosChunkRegistry};
|
||||
@@ -18,7 +18,7 @@ fn deform(
|
||||
cam_query: Query<(&GlobalTransform, &Camera), With<PhosCamera>>,
|
||||
window: Query<&Window, With<PrimaryWindow>>,
|
||||
mouse: Res<ButtonInput<MouseButton>>,
|
||||
rapier_context: Res<RapierContext>,
|
||||
spatial_query: SpatialQuery,
|
||||
mut heightmap: ResMut<Map>,
|
||||
mut rebuild: ResMut<ChunkRebuildQueue>,
|
||||
time: Res<Time>,
|
||||
@@ -44,16 +44,16 @@ fn deform(
|
||||
return;
|
||||
};
|
||||
|
||||
let collision = rapier_context.cast_ray(
|
||||
let collision = spatial_query.cast_ray(
|
||||
cam_ray.origin,
|
||||
cam_ray.direction.into(),
|
||||
100.,
|
||||
true,
|
||||
QueryFilter::only_fixed(),
|
||||
SpatialQueryFilter::default(),
|
||||
);
|
||||
|
||||
if let Some((_, dist)) = collision {
|
||||
let contact_point = cam_ray.get_point(dist);
|
||||
if let Some(hit) = collision {
|
||||
let contact_point = cam_ray.get_point(hit.time_of_impact);
|
||||
let contact_coord = HexCoord::from_world_pos(contact_point);
|
||||
let cur_height = heightmap.sample_height(&contact_coord);
|
||||
heightmap.set_height(&contact_coord, cur_height + 1. * time.delta_seconds() * multi);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
use crate::camera_system::camera_plugin::PhosCameraPlugin;
|
||||
use crate::camera_system::components::PhosCamera;
|
||||
use crate::map_rendering::chunk_rebuild::ChunkRebuildPlugin;
|
||||
use crate::map_rendering::map_init::MapInitPlugin;
|
||||
use crate::shader_extensions::chunk_material::ChunkMaterial;
|
||||
use crate::utlis::render_distance_system::RenderDistancePlugin;
|
||||
@@ -9,9 +8,9 @@ use bevy::{
|
||||
pbr::{wireframe::WireframeConfig, CascadeShadowConfig},
|
||||
prelude::*,
|
||||
};
|
||||
use bevy_rapier3d::dynamics::{Ccd, RigidBody, Velocity};
|
||||
use bevy_rapier3d::geometry::Collider;
|
||||
use bevy_rapier3d::plugin::{NoUserData, RapierPhysicsPlugin};
|
||||
use bevy_xpbd_3d::components::{LinearVelocity, RigidBody};
|
||||
use bevy_xpbd_3d::plugins::collision::Collider;
|
||||
use bevy_xpbd_3d::plugins::PhysicsPlugins;
|
||||
use iyes_perf_ui::prelude::*;
|
||||
use world_generation::biome_painter::BiomePainterPlugin;
|
||||
use world_generation::tile_manager::TileAssetPlugin;
|
||||
@@ -45,7 +44,7 @@ impl Plugin for PhosGamePlugin {
|
||||
app.add_plugins(TileMapperAssetPlugin);
|
||||
app.add_plugins(BiomePainterPlugin);
|
||||
//Physics
|
||||
app.add_plugins(RapierPhysicsPlugin::<NoUserData>::default());
|
||||
app.add_plugins(PhysicsPlugins::default());
|
||||
// app.add_plugins(RapierDebugRenderPlugin::default());
|
||||
|
||||
app.insert_resource(WireframeConfig {
|
||||
@@ -104,10 +103,9 @@ fn spawn_sphere(
|
||||
transform: Transform::from_translation(cam_transform.translation),
|
||||
..default()
|
||||
},
|
||||
Collider::ball(0.3),
|
||||
Collider::sphere(0.3),
|
||||
RigidBody::Dynamic,
|
||||
Ccd::enabled(),
|
||||
Velocity::linear(cam_transform.forward() * 50.),
|
||||
LinearVelocity(cam_transform.forward() * 50.),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user