pumpkin-world: Move noise_router into noise/router

This commit is contained in:
Alexander Medvedev
2025-08-12 12:21:18 +02:00
parent 8c859953ee
commit 40fb8ec481
30 changed files with 33 additions and 42 deletions

View File

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

View File

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

View File

@@ -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,
},

View File

@@ -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,
},

View File

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

View File

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

View File

@@ -10,7 +10,7 @@ use super::{
WorldAquiferSampler,
},
biome_coords,
noise_router::{
noise::router::{
chunk_density_function::{
ChunkNoiseFunctionBuilderOptions, ChunkNoiseFunctionSampleOptions, SampleAction,
WrapperData,

View File

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

View File

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

View File

@@ -1 +1,2 @@
pub mod perlin;
pub mod router;

View File

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

View File

@@ -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},
},

View File

@@ -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},
},

View File

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

View File

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

View File

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

View File

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

View File

@@ -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::<Vec<_>>();
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},
},

View File

@@ -18,7 +18,7 @@ use crate::{
use super::{
noise::perlin::DoublePerlinNoiseSampler,
noise_router::{
noise::router::{
proto_noise_router::DoublePerlinNoiseBuilder,
surface_height_sampler::SurfaceHeightEstimateSampler,
},

View File

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

View File

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

View File

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