From 48efe28f099311c2d0cc67ae2037c24e3da231b3 Mon Sep 17 00:00:00 2001 From: Adam Kobzan Date: Sun, 5 Nov 2023 16:37:11 +0200 Subject: [PATCH] bevy 0.12, meshem 0.3, updates --- Cargo.toml | 3 +- assets/minecraft-blocks.png | Bin 0 -> 82046 bytes src/block_reg.rs | 13 ++- src/chunk/chunk_queue.rs | 5 +- src/main.rs | 13 ++- src/player/mod.rs | 1 - src/player/movement.rs | 3 +- src/sky.rs | 10 +-- src/utils.rs | 170 ------------------------------------ 9 files changed, 24 insertions(+), 194 deletions(-) create mode 100644 assets/minecraft-blocks.png diff --git a/Cargo.toml b/Cargo.toml index 1fb8446..3cb8f7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,8 +6,7 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy = "0.11.3" -bevy_atmosphere = "0.7.0" +bevy = "0.12" bevy_meshem = { git = "https://github.com/Adamkob12/bevy_meshem.git" } # bevy_meshem = { path = "../meshem/workin"} futures-lite = "1.13.0" diff --git a/assets/minecraft-blocks.png b/assets/minecraft-blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..6bac1afa0397eec08468b1dea9db27b7e8d142b4 GIT binary patch literal 82046 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 // Systems app.add_systems(PostStartup, setup) - .add_systems( - PostUpdate, (daylight_cycle).run_if(in_state(InitialChunkLoadState::Complete)),) .add_systems(OnEnter(InitialChunkLoadState::Complete), setup_light) .add_systems(Update, check_if_loaded.run_if(in_state(InitialChunkLoadState::MeshesLoaded)),) .add_systems(Update,(handle_tasks, add_break_detector, /* debug_cage */),) - .add_systems(PostUpdate, (handle_block_break_place, update_seconds)); + .add_systems(PostUpdate, (handle_block_break_place, update_seconds, daylight_cycle)); app.run(); } @@ -228,7 +225,7 @@ fn handle_block_break_place( breg: Res, ) { let breg = breg.into_inner(); - for event in block_change.iter() { + for event in block_change.read() { 'A: for &(chunk, block, onto) in event.blocks.iter() { let ent = chunk_map.get_ent(chunk).expect( "Chunk should be loaded into internal data structure `ChunkMap` but it isn't.", diff --git a/src/player/mod.rs b/src/player/mod.rs index 594ddfa..795e6d5 100644 --- a/src/player/mod.rs +++ b/src/player/mod.rs @@ -1,6 +1,5 @@ pub mod movement; #[allow(unused_imports)] -use crate::utils::{one_d_cords, position_to_chunk}; use crate::*; use bevy::ecs::event::{Events, ManualEventReader}; use bevy::input::mouse::MouseMotion; diff --git a/src/player/movement.rs b/src/player/movement.rs index f04854f..515fa97 100644 --- a/src/player/movement.rs +++ b/src/player/movement.rs @@ -37,7 +37,6 @@ pub(super) fn setup_player(mut commands: Commands) { }, FlyCam, CurrentChunk([0, 0]), - AtmosphereCamera::default(), VelocityVectors { xV: Vec3::ZERO, yV: Vec3::ZERO, @@ -183,7 +182,7 @@ pub(super) fn player_look( ) { if let Ok(window) = primary_window.get_single() { for mut transform in query.iter_mut() { - for ev in state.reader_motion.iter(&motion) { + for ev in state.reader_motion.read(&motion) { let (mut yaw, mut pitch, _) = transform.rotation.to_euler(EulerRot::YXZ); match window.cursor.grab_mode { CursorGrabMode::None => (), diff --git a/src/sky.rs b/src/sky.rs index d953614..568789c 100644 --- a/src/sky.rs +++ b/src/sky.rs @@ -1,6 +1,5 @@ use crate::*; use bevy::prelude::*; -use bevy_atmosphere::prelude::*; pub fn setup_light(mut commands: Commands, primary_window: Query<&Window, With>) { // commands.insert_resource(AtmosphereModel::new(Nishita { @@ -51,13 +50,8 @@ pub struct Sun; #[derive(Resource)] pub struct CycleTimer(pub Timer); -pub fn daylight_cycle( - mut atmosphere: AtmosphereMut, - mut query: Query<(&mut Transform, &mut DirectionalLight), With>, -) { - atmosphere.sun_position = Vec3::new(0.0, 0.9, 0.7); - - if let Some((mut light_trans, mut directional)) = query.single_mut().into() { +pub fn daylight_cycle(mut query: Query<(&mut Transform, &mut DirectionalLight), With>) { + if let Ok((mut light_trans, mut directional)) = query.get_single_mut() { let t = Transform::from_xyz(0.0, 0.0, 0.0).looking_to(Vec3::new(0.6, -1.0, 0.6), Vec3::Y); light_trans.rotation = t.rotation; directional.illuminance = 9000.0; diff --git a/src/utils.rs b/src/utils.rs index e450079..a80eaf0 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,173 +1,3 @@ use crate::Face; use crate::Face::*; use bevy::prelude::Vec3; - -pub fn position_to_chunk(pos: Vec3, chunk_dims: (usize, usize, usize)) -> [i32; 2] { - let chunk_width = chunk_dims.0; - let chunk_length = chunk_dims.1; - let x = pos.x + 0.5; - let z = pos.z + 0.5; - [ - (x / chunk_width as f32 + (x.signum() - 1.0) / 2.0) as i32, - (z / chunk_length as f32 + (z.signum() - 1.0) / 2.0) as i32, - ] -} - -// the bool is for whether or not the pos is within the height bounds -pub fn position_to_chunk_position( - pos: Vec3, - chunk_dims: (usize, usize, usize), -) -> ([i32; 2], [usize; 3], bool) { - let chunk_width = chunk_dims.0; - let chunk_length = chunk_dims.2; - let chunk_height = chunk_dims.1; - let chunk = position_to_chunk(pos, chunk_dims); - - let x = pos.x + 0.5; - let z = pos.z + 0.5; - let y = pos.y + 0.5; - - let chunk_pos = [ - (x - chunk[0] as f32 * chunk_width as f32) as usize, - y as usize, - (z - chunk[1] as f32 * chunk_length as f32) as usize, - ]; - - let flag = y >= 0.0 && y <= chunk_height as f32; - (chunk, chunk_pos, flag) -} - -pub const fn three_d_cords(oned: usize, dims: (usize, usize, usize)) -> (usize, usize, usize) { - let height = dims.2; - let length = dims.1; - let width = dims.0; - - let h = (oned / (length * width)) as usize; - let l = ((oned - h * (length * width)) / width) as usize; - let w = (oned - h * (length * width) - l * width) as usize; - - assert!(w < width, "Out of bounds to convert into 3d coordinate."); - assert!(h < height, "Out of bounds to convert into 3d coordinate."); - assert!(l < length, "Out of bounds to convert into 3d coordinate."); - - (w, h, l) -} - -pub const fn three_d_cords_arr(oned: usize, dims: (usize, usize, usize)) -> [usize; 3] { - let height = dims.2; - let length = dims.1; - let width = dims.0; - - let h = (oned / (length * width)) as usize; - let l = ((oned - h * (length * width)) / width) as usize; - let w = (oned - h * (length * width) - l * width) as usize; - - assert!(w < width, "Out of bounds to convert into 3d coordinate."); - assert!(h < height, "Out of bounds to convert into 3d coordinate."); - assert!(l < length, "Out of bounds to convert into 3d coordinate."); - - [w, h, l] -} - -pub const fn one_d_cords(threed: [usize; 3], dims: (usize, usize, usize)) -> usize { - assert!(threed[0] < dims.0, "3d coordinate out of dimension bounds."); - assert!(threed[1] < dims.1, "3d coordinate out of dimension bounds."); - assert!(threed[2] < dims.2, "3d coordinate out of dimension bounds."); - threed[1] * (dims.0 * dims.2) + threed[2] * dims.0 + threed[0] -} - -pub const fn one_d_cords_safe(threed: [usize; 3], dims: (usize, usize, usize)) -> Option { - if threed[0] >= dims.0 || threed[1] >= dims.1 || threed[2] >= dims.2 { - None - } else { - Some(threed[1] * (dims.0 * dims.2) + threed[2] * dims.0 + threed[0]) - } -} - -// Extract the vertex data for the physics engine. -use bevy::render::mesh::{Mesh, VertexAttributeValues}; -pub fn extract_position_vertex_data(mesh: &Mesh) -> Vec { - let VertexAttributeValues::Float32x3(pos_vertices) = - mesh.attribute(Mesh::ATTRIBUTE_POSITION).unwrap() else { - panic!("Vertex position data should be in `VertexAttributeValues::Float32x3`") - }; - pos_vertices - .iter() - .map(|[x, y, z]| Vec3::new(*x, *y, *z)) - .collect() -} - -// Extract the indices for the physics engine. -use bevy::render::mesh::Indices; -use bevy_meshem::Dimensions; -pub fn extract_indices_data(mesh: &Mesh) -> Vec<[u32; 3]> { - let Indices::U32(indices) = mesh.indices().unwrap() else { - panic!("Indices data shoud be in `Indices::U32` format") - }; - indices - .chunks(3) - .map(|chunk| [chunk[0], chunk[1], chunk[2]]) - .collect() -} - -pub fn iter_faces_of_chunk(dims: Dimensions, face: Face) -> impl Iterator { - let all = 0..(dims.0 * dims.1 * dims.2); - let m = [dims.1 - 1, 0, dims.0 - 1, 0, dims.2 - 1, 0]; - let i = match face { - Top | Bottom => 1, - Right | Left => 0, - Forward | Back => 2, - }; - let all = all.filter(move |x| three_d_cords_arr(*x, dims)[i] == m[face as usize]); - all -} - -pub fn is_block_on_edge(dims: Dimensions, index: usize) -> Vec { - let mut to_return = vec![]; - let all = 0..(dims.0 * dims.1 * dims.2); - let m = [dims.1 - 1, 0, dims.0 - 1, 0, dims.2 - 1, 0]; - for i in 0..6 { - let face = Face::from(i); - let j = match face { - Top | Bottom => 1, - Right | Left => 0, - Forward | Back => 2, - }; - if three_d_cords_arr(index, dims)[j] == m[face as usize] { - to_return.push(face); - } - } - to_return -} - -pub fn get_neigbhor_across_chunk(dims: Dimensions, index: usize, face: Face) -> usize { - for f in is_block_on_edge(dims, index) { - if f as usize == face as usize { - return match face { - Right => index - dims.0 + 1, - Left => index + dims.0 - 1, - Back => index - dims.0 * (dims.2 - 1), - Forward => index + dims.0 * (dims.2 - 1), - _ => panic!("Shouldn't happen"), - }; - } - } - panic!("`get_neigbhor_across_chunk` was called on a block that wasn't on the edge of a chunk"); -} - -pub fn get_neigbhors_from_across_chunks(dims: Dimensions, index: usize) -> Vec<(Face, usize)> { - let edges = is_block_on_edge(dims, index); - if edges.is_empty() { - return vec![]; - } - edges - .iter() - .filter_map(|f| { - if (*f as usize) < 2 { - None - } else { - Some((*f, get_neigbhor_across_chunk(dims, index, *f))) - } - }) - .collect() -}