DynamicEntry class
Пакет: com.hypixel.hytale.builtin.worldgen.modifier.content.layer
Файл: com/hypixel/hytale/builtin/worldgen/modifier/content/layer/BiomeDynamicLayerContent.java
extends: LayerContent.Entry
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final ArrayCodec<BiomeDynamicLayerContent.DynamicEntry> |
ARRAY_CODEC |
|
public static final BuilderCodec<BiomeDynamicLayerContent.DynamicEntry> |
CODEC |
|
protected static final BiomeDynamicLayerContent.DynamicEntry[] |
EMPTY_ARRAY |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public LayerContainer.DynamicLayerEntry |
buildpublic LayerContainer.DynamicLayerEntry build(SeedString<SeedStringResource> var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.worldgen.modifier.content.layer;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.content.Content;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.content.common.HeightMask;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.content.common.NoiseMask;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.event.ModifyEvent;
class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.event.ModifyEvents;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.procedurallib.json.SeedString;
class="kw">import com.hypixel.hytale.procedurallib.supplier.DoubleRange;
class="kw">import com.hypixel.hytale.procedurallib.supplier.DoubleRangeNoiseSupplier;
class="kw">import com.hypixel.hytale.server.worldgen.SeedStringResource;
class="kw">import com.hypixel.hytale.server.worldgen.container.LayerContainer;
class="kw">import javax.annotation.Nonnull;
class="kw">public class BiomeDynamicLayerContent class="kw">extends LayerContent {
class="kw">public class="kw">static class="kw">final String ID = "BiomeDynamicLayer";
class="kw">public class="kw">static class="kw">final BuilderCodec<BiomeDynamicLayerContent> CODEC = BuilderCodec.builder(
BiomeDynamicLayerContent.class, BiomeDynamicLayerContent::new, LayerContent.CODEC
)
.documentation("Define a layer that is placed relative to terrain surfaces and any other dynamic layers that apply before it")
.<BiomeDynamicLayerContent.DynamicEntry[]>append(
new KeyedCodec<>("Entries", BiomeDynamicLayerContent.DynamicEntry.ARRAY_CODEC), (var0, var1) -> var0.entries = var1, var0 -> var0.entries
)
.documentation("The entries contained within the layer")
.add()
.<HeightMask>append(new KeyedCodec<>("Offset", HeightMask.CODEC), (var0, var1) -> var0.offset = var1, var0 -> var0.offset)
.documentation("The depth offset for the dynamic layer")
.add()
.<NoiseMask>append(new KeyedCodec<>("OffsetNoise", NoiseMask.CODEC), (var0, var1) -> var0.offsetNoise = var1, var0 -> var0.offsetNoise)
.documentation("The noise used to modulate the depth offset")
.add()
.build();
class="kw">protected BiomeDynamicLayerContent.DynamicEntry[] entries = BiomeDynamicLayerContent.DynamicEntry.EMPTY_ARRAY;
class="kw">protected HeightMask offset = HeightMask.DEFAULT_ONE;
class="kw">protected NoiseMask offsetNoise = NoiseMask.ZERO;
class="kw">public BiomeDynamicLayerContent() {
}
@Override
class="kw">public Content.Type type() {
class="kw">return Content.Type.BIOME_DYNAMIC_LAYER;
}
@Override
class="kw">public <T> void applyTo(ModifyEvent<T> var1) class="kw">throws Exception {
if (this.entries.length != 0) {
if (var1 class="kw">instanceof ModifyEvents.BiomeDynamicLayers var2) {
var2.entries()
.add(
new LayerContainer.DynamicLayer(
this.buildEntries(var1.seed()),
this.noiseMask.build(var1.seed()),
0,
new DoubleRangeNoiseSupplier(
new DoubleRange.Normal(this.offset.range().getInclusiveMin(), this.offset.range().getInclusiveMax()),
this.offsetNoise.buildNoise(var1.seed())
)
)
);
}
}
}
class="kw">protected LayerContainer.DynamicLayerEntry[] buildEntries(@Nonnull SeedString<SeedStringResource> var1) {
LayerContainer.DynamicLayerEntry[] var2 = new LayerContainer.DynamicLayerEntry[this.entries.length];
for (int var3 = 0; var3 < this.entries.length; var3++) {
var2[var3] = this.entries[var3].build(var1);
}
class="kw">return var2;
}
class="kw">public class="kw">static class DynamicEntry class="kw">extends LayerContent.Entry {
class="kw">public class="kw">static class="kw">final BuilderCodec<BiomeDynamicLayerContent.DynamicEntry> CODEC = BuilderCodec.builder(
BiomeDynamicLayerContent.DynamicEntry.class, BiomeDynamicLayerContent.DynamicEntry::new, LayerContent.Entry.CODEC
)
.documentation("Define an entry that generates within the dynamic layer")
.build();
class="kw">public class="kw">static class="kw">final ArrayCodec<BiomeDynamicLayerContent.DynamicEntry> ARRAY_CODEC = new ArrayCodec<>(CODEC, BiomeDynamicLayerContent.DynamicEntry[]::new);
class="kw">protected class="kw">static class="kw">final BiomeDynamicLayerContent.DynamicEntry[] EMPTY_ARRAY = new BiomeDynamicLayerContent.DynamicEntry[0];
class="kw">public DynamicEntry() {
}
class="kw">public LayerContainer.DynamicLayerEntry build(SeedString<SeedStringResource> var1) {
class="kw">return new LayerContainer.DynamicLayerEntry(NoiseBlockEntry.buildArray(var1, this.blocks), this.entryNoiseMask.build(var1));
}
}
}