pub struct Chunk {
pub generator: String,
pub chunk_x: i32,
pub chunk_z: i32,
pub min_y: i32,
pub height: i32,
pub palette: Vec<String>,
pub cells: Vec<u8>,
}Expand description
A chunk column a generator fills (the world/generation/chunk event,
keyed by generator): where it is, and every block placed so far — a
palette and a cell per block, like the game’s chunk sections, so the host
sets them a section at a time. Several handlers fill one column in turn
(terrain, then a mod’s ores).
Fields§
§generator: StringThe generator type (mymod:custom_terrain).
chunk_x: i32In chunks, not blocks.
chunk_z: i32§min_y: i32The dimension type’s min_y and height.
height: i32§palette: Vec<String>The block ids the cells name: cell value n is palette[n - 1].
cells: Vec<u8>One little-endian u16 per block, Y then Z then X (CELL each;
0: nothing placed); empty until the first block.
Implementations§
Source§impl GeneratedChunk
impl GeneratedChunk
Sourcepub fn set_block(&mut self, x: i32, y: i32, z: i32, block_id: &str) -> bool
pub fn set_block(&mut self, x: i32, y: i32, z: i32, block_id: &str) -> bool
Places block_id at local x/z (0..16), world y (between
min_y and min_y + height) over whatever was there; false
outside the column (or past u16::MAX distinct blocks).
Trait Implementations§
Source§impl Clone for GeneratedChunk
impl Clone for GeneratedChunk
Source§fn clone(&self) -> GeneratedChunk
fn clone(&self) -> GeneratedChunk
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GeneratedChunk
impl Debug for GeneratedChunk
Source§impl Default for GeneratedChunk
impl Default for GeneratedChunk
Source§fn default() -> GeneratedChunk
fn default() -> GeneratedChunk
Returns the “default value” for a type. Read more
Source§impl Event for GeneratedChunk
impl Event for GeneratedChunk
Source§const ADDRESS: &'static str = ids::event_world_generation::CHUNK
const ADDRESS: &'static str = ids::event_world_generation::CHUNK
Where it’s emitted after the game did it.
Source§const PRE: Option<&'static str> = None
const PRE: Option<&'static str> = None
Where it’s emitted before — a handler’s cancel stops it — if it can be stopped.
Source§const KEY: Option<&'static str>
const KEY: Option<&'static str>
The field whose value picks the event’s branch (
entity_type: each
type’s ticks go to …/tick/<type>), if it’s keyed — see crate::keyed.Source§fn address(&self) -> u32
fn address(&self) -> u32
Event::target’s number — the type’s own address cached.Source§fn pre_address(&self) -> Option<u32>
fn pre_address(&self) -> Option<u32>
Event::pre_target’s number.Source§fn target(&self) -> String
fn target(&self) -> String
Where this event goes after the game did it: the address, or its branch for the key.
Source§fn pre_target(&self) -> Option<String>
fn pre_target(&self) -> Option<String>
Where it goes before, if it can be stopped.
Source§impl PartialEq for GeneratedChunk
impl PartialEq for GeneratedChunk
Source§impl Schema for GeneratedChunk
impl Schema for GeneratedChunk
Source§fn encode(&self, __yog_w: &mut Writer)
fn encode(&self, __yog_w: &mut Writer)
Writes itself in the binary form, straight —
Schema::write’s
value encoded, unless the type knows better (derived ones do).Source§fn decode(__yog_d: &mut Decoder<'_>) -> Option<GeneratedChunk>
fn decode(__yog_d: &mut Decoder<'_>) -> Option<GeneratedChunk>
Reads itself from the binary form, straight;
None when it isn’t
what Schema::encode writes — then read_bytes reads the slow
way, which says what’s wrong. Through a value unless the type knows
better (derived ones do).Source§fn pack(&self, __yog_p: &mut Packer)
fn pack(&self, __yog_p: &mut Packer)
Packs itself into a frame (
crate::frame): its binary form as
bytes, unless the type packs itself (derived ones and plain types do).Source§fn unpack(__yog_u: &mut Unpacker<'_>) -> Option<GeneratedChunk>
fn unpack(__yog_u: &mut Unpacker<'_>) -> Option<GeneratedChunk>
Reads itself out of a frame;
None if the bytes aren’t what
Schema::pack writes.Source§fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<GeneratedChunk>
fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<GeneratedChunk>
Reads
v. Problems go to cx at its current path; None when the
value couldn’t be read (the problem is in cx).Source§fn absent() -> Option<Self>
fn absent() -> Option<Self>
The value of a field that isn’t there —
None: the field is required.Source§fn pack_list(items: &[Self], p: &mut Packer)
fn pack_list(items: &[Self], p: &mut Packer)
A list of these packed: a count, then each one (floats raw).
Source§fn encode_list(items: &[Self], w: &mut Writer)
fn encode_list(items: &[Self], w: &mut Writer)
A list of these written straight (numbers pack theirs).
impl StructuralPartialEq for GeneratedChunk
Auto Trait Implementations§
impl Freeze for GeneratedChunk
impl RefUnwindSafe for GeneratedChunk
impl Send for GeneratedChunk
impl Sync for GeneratedChunk
impl Unpin for GeneratedChunk
impl UnsafeUnpin for GeneratedChunk
impl UnwindSafe for GeneratedChunk
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Message for Twhere
T: Schema,
impl<T> Message for Twhere
T: Schema,
Source§fn from_bytes(bytes: &[u8]) -> Option<Self>
fn from_bytes(bytes: &[u8]) -> Option<Self>
The message read from a payload;
None if it isn’t one.Source§fn with_bytes<R>(&self, f: impl FnOnce(&[u8]) -> R) -> R
fn with_bytes<R>(&self, f: impl FnOnce(&[u8]) -> R) -> R
f on the payload, packed in this thread’s reused buffers: nothing
allocated once they’ve grown to the thread’s messages.