BiomeDynamicLayerContent class

Пакет: com.hypixel.hytale.builtin.worldgen.modifier.content.layer

Файл: com/hypixel/hytale/builtin/worldgen/modifier/content/layer/BiomeDynamicLayerContent.java

extends: LayerContent

Поля (5)

МодификаторыТипИмя
public static final ArrayCodec<BiomeDynamicLayerContent.DynamicEntry> ARRAY_CODEC
public static final BuilderCodec<BiomeDynamicLayerContent.DynamicEntry> CODEC
protected static final BiomeDynamicLayerContent.DynamicEntry[] EMPTY_ARRAY
final String ID
LayerContainer.DynamicLayerEntry[] var2

Методы (6)

МодификаторыВозвратСигнатура
public DynamicEntrypublic DynamicEntry()
public LayerContainer.DynamicLayerEntry buildpublic LayerContainer.DynamicLayerEntry build(SeedString<SeedStringResource> var1)
protected LayerContainer.DynamicLayerEntry[] buildEntriesLayerContainer.DynamicLayerEntry[] buildEntries(@Nonnull SeedString<SeedStringResource> var1)
for for(int var3 = 0; var3 < this.entries.length; var3++)
if if(this.entries.length != 0)
if if(var1 instanceof ModifyEvents.BiomeDynamicLayers var2)

Исходный код

Показать/скрыть
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));
      }
   }
}