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. Serialized
to JSON and sent across the ABI via Registry::register_dimension (in
yog-api), which the Java host parses to register (or patch) a
LevelStem/DimensionType entry 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<'de> Deserialize<'de> for YogDimensionDefwhere
YogDimensionDef: Default,
impl<'de> Deserialize<'de> for YogDimensionDefwhere
YogDimensionDef: Default,
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<YogDimensionDef, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<YogDimensionDef, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for YogDimensionDef
impl Serialize for YogDimensionDef
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.