diff --git a/pumpkin-world/benches/chunk_gen.rs b/pumpkin-world/benches/chunk_gen.rs index f0efa12e5..21d1fc0e1 100644 --- a/pumpkin-world/benches/chunk_gen.rs +++ b/pumpkin-world/benches/chunk_gen.rs @@ -3,7 +3,7 @@ use criterion::{Criterion, criterion_group, criterion_main}; use pumpkin_data::BlockDirection; use pumpkin_util::math::position::BlockPos; use pumpkin_util::math::vector2::Vector2; -use pumpkin_world::generation::implementation::WorldGenerator; +use pumpkin_world::generation::generator::WorldGenerator; use std::sync::Arc; use temp_dir::TempDir; diff --git a/pumpkin-world/src/biome/end.rs b/pumpkin-world/src/biome/end.rs index 065ae24bc..0c524364d 100644 --- a/pumpkin-world/src/biome/end.rs +++ b/pumpkin-world/src/biome/end.rs @@ -5,7 +5,7 @@ use crate::{ biome::BiomeSupplier, dimension::Dimension, generation::{ - biome_coords, noise_router::multi_noise_sampler::MultiNoiseSampler, section_coords, + biome_coords, noise::router::multi_noise_sampler::MultiNoiseSampler, section_coords, }, }; diff --git a/pumpkin-world/src/biome/mod.rs b/pumpkin-world/src/biome/mod.rs index df3a27deb..5bb9b851c 100644 --- a/pumpkin-world/src/biome/mod.rs +++ b/pumpkin-world/src/biome/mod.rs @@ -6,7 +6,7 @@ use pumpkin_data::chunk::{Biome, BiomeTree, NETHER_BIOME_SOURCE, OVERWORLD_BIOME use pumpkin_util::math::vector3::Vector3; use crate::{ - dimension::Dimension, generation::noise_router::multi_noise_sampler::MultiNoiseSampler, + dimension::Dimension, generation::noise::router::multi_noise_sampler::MultiNoiseSampler, }; pub mod end; pub mod multi_noise; @@ -65,7 +65,7 @@ mod test { chunk::palette::BIOME_NETWORK_MAX_BITS, dimension::Dimension, generation::{ - noise_router::{ + noise::router::{ multi_noise_sampler::{MultiNoiseSampler, MultiNoiseSamplerBuilderOptions}, proto_noise_router::ProtoNoiseRouters, }, diff --git a/pumpkin-world/src/biome/multi_noise.rs b/pumpkin-world/src/biome/multi_noise.rs index cf3dfbb07..278ceadeb 100644 --- a/pumpkin-world/src/biome/multi_noise.rs +++ b/pumpkin-world/src/biome/multi_noise.rs @@ -41,7 +41,7 @@ mod test { biome::{BiomeSupplier, MultiNoiseBiomeSupplier}, dimension::Dimension, generation::{ - noise_router::{ + noise::router::{ multi_noise_sampler::{MultiNoiseSampler, MultiNoiseSamplerBuilderOptions}, proto_noise_router::ProtoNoiseRouters, }, diff --git a/pumpkin-world/src/generation/aquifer_sampler.rs b/pumpkin-world/src/generation/aquifer_sampler.rs index b81555bba..675115e63 100644 --- a/pumpkin-world/src/generation/aquifer_sampler.rs +++ b/pumpkin-world/src/generation/aquifer_sampler.rs @@ -7,7 +7,7 @@ use pumpkin_util::{ use super::{ chunk_noise::{LAVA_BLOCK, WATER_BLOCK}, - noise_router::{ + noise::router::{ chunk_density_function::ChunkNoiseFunctionSampleOptions, chunk_noise_router::ChunkNoiseRouter, density_function::{NoisePos, UnblendedNoisePos}, @@ -662,7 +662,7 @@ mod test { BlockStateSampler, ChainedBlockStateSampler, ChunkNoiseGenerator, LAVA_BLOCK, WATER_BLOCK, }, - noise_router::{ + noise::router::{ chunk_density_function::{ChunkNoiseFunctionSampleOptions, SampleAction}, chunk_noise_router::ChunkNoiseRouter, density_function::UnblendedNoisePos, diff --git a/pumpkin-world/src/generation/blender/mod.rs b/pumpkin-world/src/generation/blender/mod.rs index 4d2082b06..e2215cb85 100644 --- a/pumpkin-world/src/generation/blender/mod.rs +++ b/pumpkin-world/src/generation/blender/mod.rs @@ -1,6 +1,6 @@ use enum_dispatch::enum_dispatch; -use super::noise_router::density_function::NoisePos; +use super::noise::router::density_function::NoisePos; pub struct BlendResult { alpha: f64, diff --git a/pumpkin-world/src/generation/chunk_noise.rs b/pumpkin-world/src/generation/chunk_noise.rs index 35d72f579..78f6d1d2e 100644 --- a/pumpkin-world/src/generation/chunk_noise.rs +++ b/pumpkin-world/src/generation/chunk_noise.rs @@ -10,7 +10,7 @@ use super::{ WorldAquiferSampler, }, biome_coords, - noise_router::{ + noise::router::{ chunk_density_function::{ ChunkNoiseFunctionBuilderOptions, ChunkNoiseFunctionSampleOptions, SampleAction, WrapperData, diff --git a/pumpkin-world/src/generation/implementation/mod.rs b/pumpkin-world/src/generation/generator/mod.rs similarity index 98% rename from pumpkin-world/src/generation/implementation/mod.rs rename to pumpkin-world/src/generation/generator/mod.rs index 093ef59b7..26878cba5 100644 --- a/pumpkin-world/src/generation/implementation/mod.rs +++ b/pumpkin-world/src/generation/generator/mod.rs @@ -8,7 +8,7 @@ use pumpkin_data::noise_router::{ use pumpkin_util::math::{vector2::Vector2, vector3::Vector3}; use super::{ - biome_coords, noise_router::proto_noise_router::ProtoNoiseRouters, + biome_coords, noise::router::proto_noise_router::ProtoNoiseRouters, settings::gen_settings_from_dimension, }; use crate::chunk::format::LightContainer; diff --git a/pumpkin-world/src/generation/mod.rs b/pumpkin-world/src/generation/mod.rs index 3d08439dc..a3ec37877 100644 --- a/pumpkin-world/src/generation/mod.rs +++ b/pumpkin-world/src/generation/mod.rs @@ -8,11 +8,10 @@ mod block_state_provider; pub mod carver; pub mod chunk_noise; mod feature; +pub mod generator; pub mod height_limit; pub mod height_provider; -pub mod implementation; pub mod noise; -pub mod noise_router; pub mod ore_sampler; pub mod positions; pub mod proto_chunk; @@ -24,7 +23,7 @@ mod surface; pub mod y_offset; use derive_getters::Getters; -use implementation::{GeneratorInit, VanillaGenerator, WorldGenerator}; +use generator::{GeneratorInit, VanillaGenerator, WorldGenerator}; use pumpkin_util::random::{ RandomDeriver, RandomDeriverImpl, RandomImpl, legacy_rand::LegacyRand, xoroshiro128::Xoroshiro, }; diff --git a/pumpkin-world/src/generation/noise/mod.rs b/pumpkin-world/src/generation/noise/mod.rs index dc06e2af5..38edf2401 100644 --- a/pumpkin-world/src/generation/noise/mod.rs +++ b/pumpkin-world/src/generation/noise/mod.rs @@ -1 +1,2 @@ pub mod perlin; +pub mod router; diff --git a/pumpkin-world/src/generation/noise_router/chunk_density_function.rs b/pumpkin-world/src/generation/noise/router/chunk_density_function.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/chunk_density_function.rs rename to pumpkin-world/src/generation/noise/router/chunk_density_function.rs diff --git a/pumpkin-world/src/generation/noise_router/chunk_noise_router.rs b/pumpkin-world/src/generation/noise/router/chunk_noise_router.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/chunk_noise_router.rs rename to pumpkin-world/src/generation/noise/router/chunk_noise_router.rs diff --git a/pumpkin-world/src/generation/noise_router/density_function/math.rs b/pumpkin-world/src/generation/noise/router/density_function/math.rs similarity index 99% rename from pumpkin-world/src/generation/noise_router/density_function/math.rs rename to pumpkin-world/src/generation/noise/router/density_function/math.rs index cb490e7a9..49aacc165 100644 --- a/pumpkin-world/src/generation/noise_router/density_function/math.rs +++ b/pumpkin-world/src/generation/noise/router/density_function/math.rs @@ -1,6 +1,6 @@ use pumpkin_data::noise_router::{BinaryData, BinaryOperation, ClampData, LinearData, UnaryData}; -use crate::generation::noise_router::{ +use crate::generation::noise::router::{ chunk_density_function::ChunkNoiseFunctionSampleOptions, chunk_noise_router::{ChunkNoiseFunctionComponent, StaticChunkNoiseFunctionComponentImpl}, }; diff --git a/pumpkin-world/src/generation/noise_router/density_function/misc.rs b/pumpkin-world/src/generation/noise/router/density_function/misc.rs similarity index 99% rename from pumpkin-world/src/generation/noise_router/density_function/misc.rs rename to pumpkin-world/src/generation/noise/router/density_function/misc.rs index 382507ae7..29c4a8f8c 100644 --- a/pumpkin-world/src/generation/noise_router/density_function/misc.rs +++ b/pumpkin-world/src/generation/noise/router/density_function/misc.rs @@ -11,7 +11,7 @@ use pumpkin_util::{ use crate::generation::{ noise::perlin::DoublePerlinNoiseSampler, - noise_router::{ + noise::router::{ chunk_density_function::ChunkNoiseFunctionSampleOptions, chunk_noise_router::{ChunkNoiseFunctionComponent, StaticChunkNoiseFunctionComponentImpl}, }, diff --git a/pumpkin-world/src/generation/noise_router/density_function/mod.rs b/pumpkin-world/src/generation/noise/router/density_function/mod.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/density_function/mod.rs rename to pumpkin-world/src/generation/noise/router/density_function/mod.rs diff --git a/pumpkin-world/src/generation/noise_router/density_function/noise.rs b/pumpkin-world/src/generation/noise/router/density_function/noise.rs similarity index 99% rename from pumpkin-world/src/generation/noise_router/density_function/noise.rs rename to pumpkin-world/src/generation/noise/router/density_function/noise.rs index 75587db7e..01dd7b183 100644 --- a/pumpkin-world/src/generation/noise_router/density_function/noise.rs +++ b/pumpkin-world/src/generation/noise/router/density_function/noise.rs @@ -7,7 +7,7 @@ use pumpkin_util::{ use crate::generation::{ noise::perlin::DoublePerlinNoiseSampler, - noise_router::{ + noise::router::{ chunk_density_function::ChunkNoiseFunctionSampleOptions, chunk_noise_router::{ChunkNoiseFunctionComponent, StaticChunkNoiseFunctionComponentImpl}, }, diff --git a/pumpkin-world/src/generation/noise_router/density_function/spline.rs b/pumpkin-world/src/generation/noise/router/density_function/spline.rs similarity index 99% rename from pumpkin-world/src/generation/noise_router/density_function/spline.rs rename to pumpkin-world/src/generation/noise/router/density_function/spline.rs index 1e5538f06..cbad455ca 100644 --- a/pumpkin-world/src/generation/noise_router/density_function/spline.rs +++ b/pumpkin-world/src/generation/noise/router/density_function/spline.rs @@ -1,6 +1,6 @@ use pumpkin_util::math::lerp; -use crate::generation::noise_router::{ +use crate::generation::noise::router::{ chunk_density_function::ChunkNoiseFunctionSampleOptions, chunk_noise_router::{ChunkNoiseFunctionComponent, StaticChunkNoiseFunctionComponentImpl}, proto_noise_router::ProtoNoiseFunctionComponent, diff --git a/pumpkin-world/src/generation/noise_router/density_function/test.rs b/pumpkin-world/src/generation/noise/router/density_function/test.rs similarity index 99% rename from pumpkin-world/src/generation/noise_router/density_function/test.rs rename to pumpkin-world/src/generation/noise/router/density_function/test.rs index 2ea130ea6..414c0c1cc 100644 --- a/pumpkin-world/src/generation/noise_router/density_function/test.rs +++ b/pumpkin-world/src/generation/noise/router/density_function/test.rs @@ -6,14 +6,14 @@ use std::path::Path; use std::sync::LazyLock; use crate::generation::GlobalRandomConfig; -use crate::generation::noise_router::chunk_density_function::ChunkNoiseFunctionBuilderOptions; -use crate::generation::noise_router::chunk_density_function::{ +use crate::generation::noise::router::chunk_density_function::ChunkNoiseFunctionBuilderOptions; +use crate::generation::noise::router::chunk_density_function::{ ChunkNoiseFunctionSampleOptions, SampleAction, }; -use crate::generation::noise_router::chunk_noise_router::{ +use crate::generation::noise::router::chunk_noise_router::{ ChunkNoiseDensityFunction, ChunkNoiseFunctionComponent, }; -use crate::generation::noise_router::proto_noise_router::{ +use crate::generation::noise::router::proto_noise_router::{ ProtoNoiseFunctionComponent, ProtoNoiseRouters, }; diff --git a/pumpkin-world/src/generation/noise_router/density_function/test_deserializer.rs b/pumpkin-world/src/generation/noise/router/density_function/test_deserializer.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/density_function/test_deserializer.rs rename to pumpkin-world/src/generation/noise/router/density_function/test_deserializer.rs diff --git a/pumpkin-world/src/generation/noise_router/mod.rs b/pumpkin-world/src/generation/noise/router/mod.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/mod.rs rename to pumpkin-world/src/generation/noise/router/mod.rs diff --git a/pumpkin-world/src/generation/noise_router/multi_noise_sampler.rs b/pumpkin-world/src/generation/noise/router/multi_noise_sampler.rs similarity index 99% rename from pumpkin-world/src/generation/noise_router/multi_noise_sampler.rs rename to pumpkin-world/src/generation/noise/router/multi_noise_sampler.rs index 5b56eabc1..32a0b7fb0 100644 --- a/pumpkin-world/src/generation/noise_router/multi_noise_sampler.rs +++ b/pumpkin-world/src/generation/noise/router/multi_noise_sampler.rs @@ -231,7 +231,7 @@ mod test { use crate::{ GlobalRandomConfig, biome::multi_noise::NoiseValuePoint, - generation::noise_router::proto_noise_router::ProtoNoiseRouters, + generation::noise::router::proto_noise_router::ProtoNoiseRouters, }; use super::{MultiNoiseSampler, MultiNoiseSamplerBuilderOptions}; diff --git a/pumpkin-world/src/generation/noise_router/proto_noise_router.rs b/pumpkin-world/src/generation/noise/router/proto_noise_router.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/proto_noise_router.rs rename to pumpkin-world/src/generation/noise/router/proto_noise_router.rs diff --git a/pumpkin-world/src/generation/noise_router/surface_height_sampler.rs b/pumpkin-world/src/generation/noise/router/surface_height_sampler.rs similarity index 100% rename from pumpkin-world/src/generation/noise_router/surface_height_sampler.rs rename to pumpkin-world/src/generation/noise/router/surface_height_sampler.rs diff --git a/pumpkin-world/src/generation/ore_sampler.rs b/pumpkin-world/src/generation/ore_sampler.rs index da79679fe..5fbeef0d1 100644 --- a/pumpkin-world/src/generation/ore_sampler.rs +++ b/pumpkin-world/src/generation/ore_sampler.rs @@ -4,9 +4,9 @@ use pumpkin_util::{ random::{RandomDeriver, RandomDeriverImpl, RandomImpl}, }; -use crate::generation::noise_router::chunk_noise_router::ChunkNoiseRouter; +use crate::generation::noise::router::chunk_noise_router::ChunkNoiseRouter; -use super::noise_router::{ +use super::noise::router::{ chunk_density_function::ChunkNoiseFunctionSampleOptions, density_function::NoisePos, }; diff --git a/pumpkin-world/src/generation/proto_chunk.rs b/pumpkin-world/src/generation/proto_chunk.rs index 7f46bb168..fb12d169b 100644 --- a/pumpkin-world/src/generation/proto_chunk.rs +++ b/pumpkin-world/src/generation/proto_chunk.rs @@ -30,7 +30,7 @@ use super::{ chunk_noise::{CHUNK_DIM, ChunkNoiseGenerator, LAVA_BLOCK, WATER_BLOCK}, feature::placed_features::PLACED_FEATURES, height_limit::HeightLimitView, - noise_router::{ + noise::router::{ multi_noise_sampler::{MultiNoiseSampler, MultiNoiseSamplerBuilderOptions}, proto_noise_router::{DoublePerlinNoiseBuilder, ProtoNoiseRouters}, surface_height_sampler::{ @@ -380,7 +380,7 @@ impl<'a> ProtoChunk<'a> { local_pos.z & 15, ); if local_pos.y < 0 || local_pos.y >= self.height() as i32 { - return RawBlockState::AIR; + return RawBlockState(Block::VOID_AIR.default_state.id); } let index = self.local_pos_to_block_index(&local_pos); RawBlockState(self.flat_block_map[index]) @@ -436,9 +436,6 @@ impl<'a> ProtoChunk<'a> { let start_biome_x = biome_coords::from_block(start_block_x); let start_biome_z = biome_coords::from_block(start_block_z); - #[cfg(debug_assertions)] - let mut indices = (0..self.flat_biome_map.len()).collect::>(); - for i in bottom_section..=top_section { let start_block_y = section_coords::section_to_block(i); let start_biome_y = biome_coords::from_block(start_block_y); @@ -447,7 +444,6 @@ impl<'a> ProtoChunk<'a> { for x in 0..biomes_per_section { for y in 0..biomes_per_section { for z in 0..biomes_per_section { - // panic!("{}:{}", start_y, y); let biome_pos = Vector3::new(start_biome_x + x, start_biome_y + y, start_biome_z + z); let biome = if dimension == Dimension::End { @@ -463,7 +459,7 @@ impl<'a> ProtoChunk<'a> { dimension, ) }; - //panic!("Populating biome: {:?} -> {:?}", biome_pos, biome); + //dbg!("Populating biome: {:?} -> {:?}", biome_pos, biome); let local_biome_pos = Vector3 { x, @@ -473,16 +469,11 @@ impl<'a> ProtoChunk<'a> { }; let index = self.local_biome_pos_to_biome_index(&local_biome_pos); - #[cfg(debug_assertions)] - indices.retain(|i| *i != index); self.flat_biome_map[index] = biome; } } } } - - #[cfg(debug_assertions)] - assert!(indices.is_empty(), "Not all biome indices were set!"); } pub fn populate_noise(&mut self) { @@ -801,7 +792,7 @@ mod test { dimension::Dimension, generation::{ GlobalRandomConfig, - noise_router::{ + noise::router::{ density_function::{NoiseFunctionComponentRange, PassThrough}, proto_noise_router::{ProtoNoiseFunctionComponent, ProtoNoiseRouters}, }, diff --git a/pumpkin-world/src/generation/structure/mod.rs b/pumpkin-world/src/generation/structure/mod.rs new file mode 100644 index 000000000..e69de29bb diff --git a/pumpkin-world/src/generation/surface/mod.rs b/pumpkin-world/src/generation/surface/mod.rs index eddbc7ece..518afef86 100644 --- a/pumpkin-world/src/generation/surface/mod.rs +++ b/pumpkin-world/src/generation/surface/mod.rs @@ -18,7 +18,7 @@ use crate::{ use super::{ noise::perlin::DoublePerlinNoiseSampler, - noise_router::{ + noise::router::{ proto_noise_router::DoublePerlinNoiseBuilder, surface_height_sampler::SurfaceHeightEstimateSampler, }, diff --git a/pumpkin-world/src/generation/surface/terrain.rs b/pumpkin-world/src/generation/surface/terrain.rs index 96f9f6e1b..5276ecae5 100644 --- a/pumpkin-world/src/generation/surface/terrain.rs +++ b/pumpkin-world/src/generation/surface/terrain.rs @@ -10,7 +10,7 @@ use crate::{ generation::{ chunk_noise::WATER_BLOCK, height_limit::HeightLimitView, noise::perlin::DoublePerlinNoiseSampler, - noise_router::proto_noise_router::DoublePerlinNoiseBuilder, + noise::router::proto_noise_router::DoublePerlinNoiseBuilder, }, }; diff --git a/pumpkin-world/src/level.rs b/pumpkin-world/src/level.rs index f6fd33acb..e699b6873 100644 --- a/pumpkin-world/src/level.rs +++ b/pumpkin-world/src/level.rs @@ -7,7 +7,7 @@ use crate::{ io::{Dirtiable, FileIO, LoadedData, file_manager::ChunkFileManager}, }, dimension::Dimension, - generation::{Seed, get_world_gen, implementation::WorldGenerator}, + generation::{Seed, generator::WorldGenerator, get_world_gen}, tick::{OrderedTick, ScheduledTick, TickPriority}, world::BlockRegistryExt, }; @@ -602,7 +602,7 @@ impl Level { relative.y, relative.z as usize, ) else { - return RawBlockState(Block::AIR.default_state.id); + return RawBlockState(Block::VOID_AIR.default_state.id); }; RawBlockState(id) diff --git a/pumpkin-world/src/lib.rs b/pumpkin-world/src/lib.rs index c4aa4600f..43ea948e8 100644 --- a/pumpkin-world/src/lib.rs +++ b/pumpkin-world/src/lib.rs @@ -41,7 +41,7 @@ macro_rules! global_path { // TODO: is there a way to do in-file benches? pub use generation::{ - GlobalRandomConfig, noise_router::proto_noise_router::ProtoNoiseRouters, + GlobalRandomConfig, noise::router::proto_noise_router::ProtoNoiseRouters, proto_chunk::ProtoChunk, settings::GENERATION_SETTINGS, settings::GeneratorSetting, };