pub struct EndNoises {
pub blended_noise: BlendedNoise,
pub end_islands: EndIslands,
}Expand description
All noise generators needed by this dimension’s density functions.
Created at runtime from a seed via the create method.
Fields§
§blended_noise: BlendedNoise§end_islands: EndIslandsImplementations§
Source§impl EndNoises
impl EndNoises
Sourcepub fn create(
seed: u64,
splitter: &RandomSplitter,
params: &FxHashMap<String, NoiseParameters>,
) -> Self
pub fn create( seed: u64, splitter: &RandomSplitter, params: &FxHashMap<String, NoiseParameters>, ) -> Self
Create all noise generators from a world seed, positional splitter, and noise parameters.
Source§impl EndNoises
impl EndNoises
Sourcefn apply_surface_rule_impl(
ctx: &mut SurfaceRuleContext<'_>,
) -> Option<BlockStateId>
fn apply_surface_rule_impl( ctx: &mut SurfaceRuleContext<'_>, ) -> Option<BlockStateId>
Apply this dimension’s surface rule at the current context position.
Trait Implementations§
Source§impl DimensionNoises for EndNoises
impl DimensionNoises for EndNoises
Source§type ColumnCache = EndColumnCache
type ColumnCache = EndColumnCache
The column cache type for this dimension.
Source§type Settings = EndNoiseSettings
type Settings = EndNoiseSettings
The noise settings type for this dimension.
Source§fn create(
seed: u64,
splitter: &RandomSplitter,
params: &FxHashMap<String, NoiseParameters>,
) -> Self
fn create( seed: u64, splitter: &RandomSplitter, params: &FxHashMap<String, NoiseParameters>, ) -> Self
Create all noise generators from a world seed and its positional splitter.
Source§fn router_final_density(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_final_density( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Final density for terrain generation (positive = solid, negative = air).
Source§fn router_depth(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_depth( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Depth from surface (used for terrain shaping).
Source§fn aquifer_needs_column_cache() -> bool
fn aquifer_needs_column_cache() -> bool
Whether aquifer noise lookups require a prepared column cache. Read more
Source§fn router_barrier(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_barrier( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Barrier noise for aquifer boundaries.
Source§fn router_fluid_level_floodedness(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_fluid_level_floodedness( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Fluid level floodedness for aquifers.
Source§fn router_fluid_level_spread(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_fluid_level_spread( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Fluid level spread for aquifers.
Source§fn router_lava(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_lava( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Lava placement noise for aquifers.
Source§fn router_vein_toggle(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_vein_toggle( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Vein toggle (sign determines copper vs iron).
Source§fn router_vein_ridged(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_vein_ridged( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Vein ridged noise for ore placement.
Source§fn router_vein_gap(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_vein_gap( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Vein gap noise for ore vs filler placement.
Source§fn router_preliminary_surface_level(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_preliminary_surface_level( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Preliminary surface level (cached in column cache).
Source§fn router_erosion(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_erosion( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Erosion value (cached in column cache).
Source§fn router_continentalness(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_continentalness( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Continentalness value (cached in column cache).
Source§fn router_temperature(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_temperature( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Temperature value (cached in column cache).
Source§fn router_vegetation(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_vegetation( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Vegetation/humidity value (cached in column cache).
Source§fn router_ridges(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
) -> f32
fn router_ridges( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, ) -> f32
Ridges/weirdness value (cached in column cache).
Source§fn interpolated_count() -> usize
fn interpolated_count() -> usize
Total number of independently interpolated channels across all router
entries (
final_density + vein_toggle + vein_ridged).Source§fn vein_interp_enabled() -> bool
fn vein_interp_enabled() -> bool
Whether vein functions have interpolation channels.
Source§fn final_density_nonpositive_channels() -> Option<&'static [usize]>
fn final_density_nonpositive_channels() -> Option<&'static [usize]>
Interpolated channels that, when
<= 0 at a block, prove its combined
final density is not positive. Cell corners alone are insufficient for
Vanilla’s repeated-addition interpolation.
Derived by the transpiler from the final-density tree; None when no
such proof exists.Source§fn compute_noise_column(
&self,
x: i32,
block_ys: &[i32],
z: i32,
out: &mut [f32],
)
fn compute_noise_column( &self, x: i32, block_ys: &[i32], z: i32, out: &mut [f32], )
Compute blended noise for an entire column of Y values. Read more
Source§fn fill_cell_corner_densities(
&self,
cache: &mut Self::ColumnCache,
x: i32,
y: i32,
z: i32,
blended_noise_value: f32,
out: &mut [f32],
)
fn fill_cell_corner_densities( &self, cache: &mut Self::ColumnCache, x: i32, y: i32, z: i32, blended_noise_value: f32, out: &mut [f32], )
Evaluate the inner functions of all
Interpolated markers at a cell corner. Read moreSource§fn fill_cell_corner_densities_y_simd<const N: usize>(
&self,
cache: &mut Self::ColumnCache,
x: i32,
ys: [i32; N],
z: i32,
blended_noise_values: [f32; N],
out: &mut [f32],
)
fn fill_cell_corner_densities_y_simd<const N: usize>( &self, cache: &mut Self::ColumnCache, x: i32, ys: [i32; N], z: i32, blended_noise_values: [f32; N], out: &mut [f32], )
Evaluate a batch of Y corners at the same X/Z position. Read more
Source§fn combine_interpolated(
&self,
cache: &mut Self::ColumnCache,
interpolated: &[f32],
x: i32,
y: i32,
z: i32,
) -> f32
fn combine_interpolated( &self, cache: &mut Self::ColumnCache, interpolated: &[f32], x: i32, y: i32, z: i32, ) -> f32
Combine trilinearly interpolated values for
final_density.Source§fn combine_vein_toggle(
&self,
cache: &mut Self::ColumnCache,
interpolated: &[f32],
x: i32,
y: i32,
z: i32,
) -> f32
fn combine_vein_toggle( &self, cache: &mut Self::ColumnCache, interpolated: &[f32], x: i32, y: i32, z: i32, ) -> f32
Combine trilinearly interpolated values for
vein_toggle.Source§fn combine_vein_ridged(
&self,
cache: &mut Self::ColumnCache,
interpolated: &[f32],
x: i32,
y: i32,
z: i32,
) -> f32
fn combine_vein_ridged( &self, cache: &mut Self::ColumnCache, interpolated: &[f32], x: i32, y: i32, z: i32, ) -> f32
Combine trilinearly interpolated values for
vein_ridged.Source§fn surface_noise_ids() -> &'static [&'static str]
fn surface_noise_ids() -> &'static [&'static str]
Noise IDs referenced by this dimension’s surface rule
NoiseThreshold
conditions. Used to construct the SurfaceSystem’s condition noises.Source§fn surface_gradient_ids() -> &'static [&'static str]
fn surface_gradient_ids() -> &'static [&'static str]
Random IDs referenced by this dimension’s surface rule
VerticalGradient
conditions. Used to construct reusable positional random factories.Source§fn surface_rule_block_states() -> &'static [BlockStateId]
fn surface_rule_block_states() -> &'static [BlockStateId]
Block states returned by this dimension’s generated surface rules.
Source§fn surface_rule_uses_biome() -> bool
fn surface_rule_uses_biome() -> bool
Whether the generated surface rule reads biome-dependent context.
Source§fn surface_rule_biome_sets() -> &'static [Box<[u16]>]
fn surface_rule_biome_sets() -> &'static [Box<[u16]>]
Distinct
biome_is sets the generated surface rule tests, as biome
registry ids. Together with a biome’s temperature parameters these are
everything the rule can observe about a biome.Source§fn surface_rule_below_preliminary_surface() -> &'static PartialSurfaceRule
fn surface_rule_below_preliminary_surface() -> &'static PartialSurfaceRule
The surface rule reduced to what is decidable from Y and biome below the
preliminary surface.
Source§fn surface_rule_uses_preliminary_surface() -> bool
fn surface_rule_uses_preliminary_surface() -> bool
Whether the generated surface rule reads preliminary surface level.
Source§fn surface_rule_uses_surface_secondary() -> bool
fn surface_rule_uses_surface_secondary() -> bool
Whether the generated surface rule reads surface secondary noise.
Source§fn surface_rule_uses_steep() -> bool
fn surface_rule_uses_steep() -> bool
Whether the generated surface rule reads steep-column context.
Source§fn try_apply_surface_rule(
ctx: &mut SurfaceRuleContext<'_>,
) -> Option<BlockStateId>
fn try_apply_surface_rule( ctx: &mut SurfaceRuleContext<'_>, ) -> Option<BlockStateId>
Apply the transpiled surface rule at the given context position.
Source§fn material_ore_vein_value_count() -> usize
fn material_ore_vein_value_count() -> usize
Number of prefilled density/richness values for this dimension’s material ore rules.
Source§fn material_ore_vein_value_height() -> usize
fn material_ore_vein_value_height() -> usize
Height of the prefilled Y prefix, starting at
NoiseSettings::MIN_Y.
Keep it within HEIGHT; every omitted ore density must be <= 0.0.Source§fn fill_material_ore_vein_values(
&self,
cache: &mut Self::ColumnCache,
interpolated: &[f32],
x: i32,
y: i32,
z: i32,
out: &mut [f32],
)
fn fill_material_ore_vein_values( &self, cache: &mut Self::ColumnCache, interpolated: &[f32], x: i32, y: i32, z: i32, out: &mut [f32], )
Fill one block’s material ore density/richness values. Read more
Source§fn fill_prefilled_material_ore_vein_results(
&self,
cache: &mut Self::ColumnCache,
ore_veinifier: &OreVeinifier,
values: &[f32],
x: i32,
y: i32,
z: i32,
out: &mut [Option<BlockStateId>],
)
fn fill_prefilled_material_ore_vein_results( &self, cache: &mut Self::ColumnCache, ore_veinifier: &OreVeinifier, values: &[f32], x: i32, y: i32, z: i32, out: &mut [Option<BlockStateId>], )
Evaluates each ore-vein node from this dimension’s material rule using
density/richness values prefilled for this exact block position. Read more
Auto Trait Implementations§
impl Freeze for EndNoises
impl RefUnwindSafe for EndNoises
impl Send for EndNoises
impl Sync for EndNoises
impl Unpin for EndNoises
impl UnsafeUnpin for EndNoises
impl UnwindSafe for EndNoises
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreWraps this value in an
Arc<SyncMutex<>>