update to bevy 0.18
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
use bevy::ecs::world::CommandQueue;
|
||||
use bevy::prelude::*;
|
||||
use bevy::tasks::*;
|
||||
use bevy::utils::futures;
|
||||
use bevy_rapier3d::geometry::Collider;
|
||||
use bevy_rapier3d::geometry::TriMeshFlags;
|
||||
use shared::events::ChunkModifiedEvent;
|
||||
@@ -20,8 +19,8 @@ pub struct ChunkRebuildPlugin;
|
||||
impl Plugin for ChunkRebuildPlugin {
|
||||
fn build(&self, app: &mut App) {
|
||||
app.init_resource::<PhosChunkRegistry>();
|
||||
app.add_event::<ChunkModifiedEvent>();
|
||||
app.add_event::<TileModifiedEvent>();
|
||||
app.add_message::<ChunkModifiedEvent>();
|
||||
app.add_message::<TileModifiedEvent>();
|
||||
app.add_systems(PreUpdate, chunk_rebuilder.run_if(in_state(GeneratorState::Idle)));
|
||||
app.add_systems(PostUpdate, collider_task_resolver);
|
||||
}
|
||||
@@ -55,7 +54,8 @@ fn chunk_rebuilder(
|
||||
collider_data.0,
|
||||
collider_data.1,
|
||||
TriMeshFlags::DELETE_DUPLICATE_TRIANGLES,
|
||||
);
|
||||
)
|
||||
.expect("Failed to build chunk mesh");
|
||||
#[cfg(feature = "tracing")]
|
||||
drop(trimesh_span);
|
||||
queue.push(move |world: &mut World| {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#[cfg(feature = "tracing")]
|
||||
use bevy::log::*;
|
||||
use bevy::{
|
||||
pbr::{ExtendedMaterial, NotShadowCaster},
|
||||
light::NotShadowCaster,
|
||||
pbr::ExtendedMaterial,
|
||||
prelude::*,
|
||||
render::render_resource::{ColorTargetState, FragmentState, RenderPipelineDescriptor},
|
||||
};
|
||||
@@ -51,10 +52,7 @@ impl Plugin for MapInitPlugin {
|
||||
ChunkRebuildPlugin,
|
||||
// TerraFormingTestPlugin,
|
||||
MaterialPlugin::<ExtendedMaterial<StandardMaterial, ChunkMaterial>>::default(),
|
||||
MaterialPlugin::<ExtendedMaterial<StandardMaterial, WaterMaterial>> {
|
||||
prepass_enabled: false,
|
||||
..Default::default()
|
||||
},
|
||||
MaterialPlugin::<ExtendedMaterial<StandardMaterial, WaterMaterial>> { ..Default::default() },
|
||||
));
|
||||
|
||||
app.configure_loading_state(
|
||||
@@ -78,7 +76,7 @@ impl Plugin for MapInitPlugin {
|
||||
app.add_systems(Update, despawn_map.run_if(in_state(GeneratorState::Regenerate)));
|
||||
app.add_systems(
|
||||
Update,
|
||||
spawn_map.run_if(in_state(AssetLoadState::LoadComplete).and_then(in_state(GeneratorState::SpawnMap))),
|
||||
spawn_map.run_if(in_state(AssetLoadState::LoadComplete).and(in_state(GeneratorState::SpawnMap))),
|
||||
);
|
||||
|
||||
app.insert_resource(TileManager::default());
|
||||
|
||||
@@ -53,10 +53,9 @@ impl Default for RenderDistanceVisibility {
|
||||
|
||||
fn render_distance_system(
|
||||
mut objects: Query<(&Transform, &mut Visibility, &RenderDistanceVisibility)>,
|
||||
camera_query: Query<&Transform, With<MainCamera>>,
|
||||
camera: Single<&Transform, With<MainCamera>>,
|
||||
settings: Res<RenderDistanceSettings>,
|
||||
) {
|
||||
let camera = camera_query.single();
|
||||
let cam_pos = Vec3::new(camera.translation.x, 0.0, camera.translation.z);
|
||||
for (t, mut vis, r) in objects.iter_mut() {
|
||||
let dist = (cam_pos - (t.translation + r.offset)).length();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use bevy::{prelude::*, utils::hashbrown::HashSet, window::PrimaryWindow};
|
||||
use bevy::{platform::collections::HashSet, prelude::*, window::PrimaryWindow};
|
||||
use bevy_rapier3d::{pipeline::QueryFilter, plugin::RapierContext};
|
||||
use shared::{
|
||||
events::{ChunkModifiedEvent, TileModifiedEvent},
|
||||
@@ -31,8 +31,8 @@ fn deform(
|
||||
mut heightmap: ResMut<Map>,
|
||||
chunks: Res<PhosChunkRegistry>,
|
||||
tile_under_cursor: Res<TileUnderCursor>,
|
||||
mut chunk_modified: EventWriter<ChunkModifiedEvent>,
|
||||
mut tile_modified: EventWriter<TileModifiedEvent>,
|
||||
mut chunk_modified: MessageWriter<ChunkModifiedEvent>,
|
||||
mut tile_modified: MessageWriter<TileModifiedEvent>,
|
||||
) {
|
||||
let mut multi = 0.;
|
||||
if mouse.just_pressed(MouseButton::Left) {
|
||||
@@ -53,11 +53,11 @@ fn deform(
|
||||
for (tile, height) in modified_tiles {
|
||||
let chunk = tile.to_chunk_index(heightmap.width);
|
||||
if !chunk_set.contains(&chunk) {
|
||||
chunk_modified.send(ChunkModifiedEvent { index: chunk });
|
||||
chunk_modified.write(ChunkModifiedEvent { index: chunk });
|
||||
chunk_set.insert(chunk);
|
||||
commands.entity(chunks.chunks[chunk]).insert(RebuildChunk);
|
||||
}
|
||||
tile_modified.send(TileModifiedEvent::HeightChanged(tile, height));
|
||||
tile_modified.write(TileModifiedEvent::HeightChanged(tile, height));
|
||||
}
|
||||
// commands.entity(e).insert(RebuildChunk);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user