chunkgen 0.2.0

Minecraft world generation library
Documentation
pub mod biome_manager;
pub mod biome_source;
pub mod climate;
pub mod multi_noise;
pub mod overworld_biome_builder;

use sha2::{Digest, Sha256};

pub fn obfuscate_biome_seed(seed: i64) -> i64 {
    let mut hasher = Sha256::new();
    hasher.update(seed.to_le_bytes());
    let result = hasher.finalize();
    let mut bytes = [0; 8];
    bytes.copy_from_slice(&result[..8]);
    i64::from_le_bytes(bytes)
}

#[cfg(test)]
mod tests {
    use super::obfuscate_biome_seed;

    #[test]
    fn obfuscate_biome_seed_matches_guava_hash_long() {
        assert_eq!(obfuscate_biome_seed(0), 8_794_265_229_978_523_055);
        assert_eq!(obfuscate_biome_seed(1), -6_467_378_160_175_308_932);
        assert_eq!(obfuscate_biome_seed(12_345), 293_737_985_876_514_017);
        assert_eq!(obfuscate_biome_seed(-1), 6_759_447_113_877_070_610);
    }
}