Skip to main content

ChunkRef

Struct ChunkRef 

pub struct ChunkRef { /* private fields */ }
Expand description

A chunk position in an open level. A handle may be kept after unloading; reads resolve it again, returning false or None when it is no longer loaded.

Implementations§

§

impl ChunkRef

pub fn forced(self, host: &dyn Host) -> Option<bool>

Side: server. Whether /forceload holds the chunk (ServerLevel.getForcedChunks), loaded or not; a mod’s own ticket on it does not count. None for a stale handle or on a client.

pub fn loaded(self, host: &dyn Host) -> bool

Side: server. Whether this chunk is loaded; false on a client or for a stale handle.

pub fn status(self, host: &dyn Host) -> Option<ChunkStatus>

Side: server. The status of a loaded chunk. Proto chunks are not exposed here.

pub fn watchers(self, host: &dyn Host) -> Option<Vec<PlayerRef>>

Side: server. ChunkMap.getPlayers(pos, false): the players watching this chunk, those it is inside the view of and was sent to, in the order the server keeps its players. A player watches it from its chunk_watch until it leaves the view; Horizon’s far-ring columns past the view distance are not watched. Fake players watch nothing. Loaded or not, a chunk nobody watches gives an empty list. None on a client and for a stale handle.

pub fn set_forced(self, host: &mut dyn ServerHost, forced: bool) -> bool

Side: server. /forceload add or remove of one chunk (ServerLevel.setChunkForced): true when the forced set changed. A forced chunk is kept loaded and entity ticking, saved with the level, and the level keeps ticking without a player. This is the world’s own /forceload state, not a ticket the mod owns: the chunk stays forced across restarts, and after the mod is unloaded or removed, until set_forced(false) or /forceload remove clears it. Unlike vanilla, the chunk is not loaded before this returns: it loads over the next ticks, as after /forceload. False for a stale handle, on a client, and for a level the server has not opened.

pub fn set_mod_forced( self, host: &mut dyn ServerHost, controller: TicketController, owner: TicketOwner, forced: bool, natural_spawning: bool, ) -> bool

Side: server. The chunk ticket of controller for owner on chunk (TicketController.forceChunk): true when the controller’s tickets changed. The controller must be the calling mod’s own. A chunk stays forced, entity ticking and saved, and its level keeps ticking, while any ticket or /forceload holds it. With natural_spawning the chunk joins the spawning chunks (inhabited time, thunder, a spawn attempt) while it lies in the spawning area of a player (ChunkMap.collectSpawningChunks); the local mob cap still lets mobs spawn only with a non-spectator within 128 blocks. One owner holds a plain and a natural-spawning ticket on a chunk apart. Tickets are scoped by (controller, owner, chunk), so two owners in one chunk, or two controllers, release separately. They are saved in data/horizon/mod_chunk_tickets.dat under the controller’s id; when the world loads, those of a controller no loaded mod registers are discarded. False outside a mod’s hook, for another mod’s controller, on a client, for a chunk outside the world and for a level the server has not opened.

§

impl ChunkRef

pub fn pos(self) -> [i32; 2]

The chunk coordinates, [x, z].

pub fn level(self) -> LevelRef

The level containing the chunk.

Trait Implementations§

§

impl Clone for ChunkRef

§

fn clone(&self) -> ChunkRef

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for ChunkRef

§

impl Debug for ChunkRef

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Eq for ChunkRef

§

impl Hash for ChunkRef

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for ChunkRef

§

fn eq(&self, other: &ChunkRef) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
§

impl StructuralPartialEq for ChunkRef

§

impl Wire for ChunkRef

§

const MIN: usize

Minimum encoded size, used to reject impossible collection lengths.
§

fn put(&self, out: &mut Writer)

Encodes this value, recording failures on the writer.
§

fn put_owned(self, out: &mut Writer)

Consumes owned data when a resource’s ownership must cross the boundary.
§

fn take(input: &mut Reader<'_>) -> Result<ChunkRef, WireError>

Decodes one value, leaving any following bytes for the caller.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

§

impl<T> Put for T
where T: Wire,

§

fn put_to(&self, out: &mut Writer)

Writes it.
§

impl<T> Record for T
where T: Wire,

§

fn encode(&self, out: &mut Writer)

Writes the argument into a hook call.
§

fn apply(&mut self, bytes: &[u8]) -> Result<(), WireError>

Applies one complete reply, refusing malformed or trailing bytes atomically.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.