pub struct YogDimensionDef {
pub id: String,
pub dimension_type: YogDimensionTypeDef,
pub generator_type: Option<String>,
pub biome: String,
pub structures: bool,
pub features: bool,
pub mob_spawning: bool,
pub extra: HashMap<String, String>,
}Expand description
A dimension definition — what a mod registers to create a custom
dimension, or to patch an existing (including vanilla) one. Sent as Yog
Data via Registry::register_dimension (in yog-api); the host
registers (or patches) a LevelStem/DimensionType entry from it at
mod-init time.
The actual ServerLevel (world data) is created lazily at runtime — see
the crate-level docs and Registry::register_chunk_generator.
Fields§
§id: StringRegistry id. A new id (e.g. "mymod:my_dim") creates a custom
dimension; a vanilla id ("minecraft:overworld", etc.) patches that
dimension’s type/generator instead.
dimension_type: YogDimensionTypeDef§generator_type: Option<String>Id of a generator type registered via Registry::register_chunk_generator
(e.g. "mymod:custom_terrain") that this dimension should use. None
keeps the dimension’s existing/vanilla generator.
biome: StringThe one biome the dimension is made of ("minecraft:plains"): its
mobs, its features, the structures that may start in it.
structures: boolStructures (villages, …) may generate. Only for dimensions with a registered generator.
features: boolThe biome’s features (trees, flowers, ores) are placed. Only for dimensions with a registered generator.
mob_spawning: boolMobs spawn naturally (a registered generator also offers none to the spawner when off).
extra: HashMap<String, String>Extra platform/metadata mods want the host to know about (arbitrary
JSON-string values), for anything not modeled by dimension_type.
Implementations§
Source§impl YogDimensionDef
impl YogDimensionDef
Sourcepub fn new(id: impl Into<String>) -> YogDimensionDef
pub fn new(id: impl Into<String>) -> YogDimensionDef
Start a new definition with default (overworld-like) type properties.
Sourcepub fn dimension_type(
self,
dimension_type: YogDimensionTypeDef,
) -> YogDimensionDef
pub fn dimension_type( self, dimension_type: YogDimensionTypeDef, ) -> YogDimensionDef
Replace the dimension type properties.
Sourcepub fn generator_type(
self,
generator_type_id: impl Into<String>,
) -> YogDimensionDef
pub fn generator_type( self, generator_type_id: impl Into<String>, ) -> YogDimensionDef
Use the generator type registered under this id (see
Registry::register_chunk_generator).
Sourcepub fn biome(self, biome: impl Into<String>) -> YogDimensionDef
pub fn biome(self, biome: impl Into<String>) -> YogDimensionDef
The biome the dimension is made of.
Sourcepub fn structures(self, on: bool) -> YogDimensionDef
pub fn structures(self, on: bool) -> YogDimensionDef
Whether structures generate (default: yes).
Sourcepub fn features(self, on: bool) -> YogDimensionDef
pub fn features(self, on: bool) -> YogDimensionDef
Whether the biome’s features are placed (default: yes).
Sourcepub fn mob_spawning(self, on: bool) -> YogDimensionDef
pub fn mob_spawning(self, on: bool) -> YogDimensionDef
Whether mobs spawn (default: yes).
Sourcepub fn with_extra(
self,
key: impl Into<String>,
value: impl Into<String>,
) -> YogDimensionDef
pub fn with_extra( self, key: impl Into<String>, value: impl Into<String>, ) -> YogDimensionDef
Set an extra metadata property.
Trait Implementations§
Source§impl Clone for YogDimensionDef
impl Clone for YogDimensionDef
Source§fn clone(&self) -> YogDimensionDef
fn clone(&self) -> YogDimensionDef
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for YogDimensionDef
impl Debug for YogDimensionDef
Source§impl Default for YogDimensionDef
impl Default for YogDimensionDef
Source§fn default() -> YogDimensionDef
fn default() -> YogDimensionDef
Source§impl PartialEq for YogDimensionDef
impl PartialEq for YogDimensionDef
Source§impl Schema for YogDimensionDef
impl Schema for YogDimensionDef
Source§fn encode(&self, __yog_w: &mut Writer)
fn encode(&self, __yog_w: &mut Writer)
Schema::write’s
value encoded, unless the type knows better (derived ones do).Source§fn decode(__yog_d: &mut Decoder<'_>) -> Option<YogDimensionDef>
fn decode(__yog_d: &mut Decoder<'_>) -> Option<YogDimensionDef>
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)
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<YogDimensionDef>
fn unpack(__yog_u: &mut Unpacker<'_>) -> Option<YogDimensionDef>
None if the bytes aren’t what
Schema::pack writes.Source§fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<YogDimensionDef>
fn read(v: &ValueRef<'_>, cx: &mut Reader<'_>) -> Option<YogDimensionDef>
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>
None: the field is required.Source§fn pack_list(items: &[Self], p: &mut Packer)
fn pack_list(items: &[Self], p: &mut Packer)
Source§fn encode_list(items: &[Self], w: &mut Writer)
fn encode_list(items: &[Self], w: &mut Writer)
impl StructuralPartialEq for YogDimensionDef
Auto Trait Implementations§
impl Freeze for YogDimensionDef
impl RefUnwindSafe for YogDimensionDef
impl Send for YogDimensionDef
impl Sync for YogDimensionDef
impl Unpin for YogDimensionDef
impl UnsafeUnpin for YogDimensionDef
impl UnwindSafe for YogDimensionDef
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
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>
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.