update to bevy 0.18

This commit is contained in:
2026-02-26 15:57:42 -05:00
parent 94b85c9cf7
commit e8735b83b3
35 changed files with 3143 additions and 3277 deletions

View File

@@ -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| {

View File

@@ -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());

View File

@@ -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();

View File

@@ -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);
}