From 856a3252f693421df519cbc4d9bc03cfc0f0c212 Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 17 Sep 2023 21:44:17 -0500 Subject: heightmaps --- azalea-core/src/math.rs | 20 ++++++++++++-------- azalea-core/src/position.rs | 11 +++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) (limited to 'azalea-core/src') diff --git a/azalea-core/src/math.rs b/azalea-core/src/math.rs index 6683dd10..01695a0a 100644 --- a/azalea-core/src/math.rs +++ b/azalea-core/src/math.rs @@ -9,17 +9,17 @@ pub static SIN: LazyLock<[f32; 65536]> = LazyLock::new(|| { }); /// A sine function that uses a lookup table. -pub fn sin(var0: f32) -> f32 { - let var0 = var0 * 10430.378; - let var0 = var0 as usize; - SIN[var0 & 65535] +pub fn sin(x: f32) -> f32 { + let x = x * 10430.378; + let x = x as usize; + SIN[x & 65535] } /// A cosine function that uses a lookup table. -pub fn cos(var0: f32) -> f32 { - let var0 = var0 * 10430.378 + 16384.0; - let var0 = var0 as usize; - SIN[var0 & 65535] +pub fn cos(x: f32) -> f32 { + let x = x * 10430.378 + 16384.0; + let x = x as usize; + SIN[x & 65535] } // TODO: make this generic @@ -56,6 +56,10 @@ pub fn lerp(amount: T, a: T, b: T) -> T { a + amount * (b - a) } +pub fn ceil_log2(x: u32) -> u32 { + u32::BITS - x.leading_zeros() +} + #[cfg(test)] mod tests { use super::*; diff --git a/azalea-core/src/position.rs b/azalea-core/src/position.rs index eb6bcd89..f8072fa4 100755 --- a/azalea-core/src/position.rs +++ b/azalea-core/src/position.rs @@ -346,6 +346,17 @@ impl From for ChunkPos { } } +impl From<&Vec3> for ChunkBlockPos { + fn from(pos: &Vec3) -> Self { + ChunkBlockPos::from(&BlockPos::from(pos)) + } +} +impl From for ChunkBlockPos { + fn from(pos: Vec3) -> Self { + ChunkBlockPos::from(&pos) + } +} + const PACKED_X_LENGTH: u64 = 1 + 25; // minecraft does something a bit more complicated to get this 25 const PACKED_Z_LENGTH: u64 = PACKED_X_LENGTH; const PACKED_Y_LENGTH: u64 = 64 - PACKED_X_LENGTH - PACKED_Z_LENGTH; -- cgit v1.2.3