Skip to main content

OverworldClimateSampler

Struct OverworldClimateSampler 

Source
pub struct OverworldClimateSampler {
    noises: Box<OverworldNoises>,
}
Expand description

Climate sampler for the overworld using compiled density functions.

Evaluates the overworld noise router (temperature, vegetation, continentalness, erosion, depth, ridges) to produce TargetPoint values for biome lookup.

Fields§

§noises: Box<OverworldNoises>

All noise generators needed by the overworld density functions. Boxed because OverworldNoises is ~5600 bytes (35 NormalNoise fields).

Implementations§

Source§

impl OverworldClimateSampler

Source

pub fn new(seed: u64) -> Self

Create a new overworld climate sampler with the given seed.

Source

pub fn sample( &self, quart_x: i32, quart_y: i32, quart_z: i32, cache: &mut OverworldColumnCache, ) -> TargetPoint

Sample climate at a quart position.

The cache holds column-level (xz-only) precomputed values. It should persist across calls for the same chunk to avoid redundant noise evaluations when only y changes.

Source

pub fn init_column_grid( &self, cache: &mut OverworldColumnCache, chunk_block_x: i32, chunk_block_z: i32, )

Pre-populate a column cache’s flat-noise grid for a chunk’s quart columns.

The biome stage samples every quart cell in a chunk (1536 for the overworld) in section → x → y → z order. Without a grid, the cache is a single-entry lazy cache that misses on every cell (the innermost z loop changes column each step), so the expensive flat (xz-only) climate noise is recomputed per cell. Pre-computing the grid once — exactly as the noise stage’s fill_from_noise does — turns those into O(1) lookups. Bit-identical because the grid evaluates the same functions at the same quart coordinates.

Source

pub fn find_spawn_position(&self) -> BlockPos

Finds the climate-biased overworld spawn origin.

This mirrors vanilla’s Climate.Sampler.findSpawnPosition() with OverworldBiomeBuilder.spawnTarget().

Source

fn spawn_position_and_fitness( &self, spawn_targets: &[ParameterPoint; 2], block_x: i32, block_z: i32, ) -> SpawnSearchResult

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> IntoShared for T

§

fn into_shared(self) -> Arc<Mutex<RawMutex, Self>>

Wraps this value in an Arc<SyncMutex<>>
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more