BiomeFluidContent class

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

Файл: com/hypixel/hytale/builtin/worldgen/modifier/content/fluid/BiomeFluidContent.java

implements: Content

Поля (3)

МодификаторыТипИмя
final String ID
int var3
int var4

Методы (1)

МодификаторыВозвратСигнатура
if if(var1 instanceof ModifyEvents.BiomeFluids var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.worldgen.modifier.content.fluid;

class="kw">import com.hypixel.hytale.builtin.worldgen.modifier.content.Codecs;
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.procedurallib.supplier.DoubleRange;
class="kw">import com.hypixel.hytale.procedurallib.supplier.DoubleRangeNoiseSupplier;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.fluid.Fluid;
class="kw">import com.hypixel.hytale.server.worldgen.container.WaterContainer;

class="kw">public class BiomeFluidContent class="kw">implements Content {
   class="kw">public class="kw">static class="kw">final String ID = "BiomeFluid";
   class="kw">public class="kw">static class="kw">final BuilderCodec<BiomeFluidContent> CODEC = BuilderCodec.builder(BiomeFluidContent.class, BiomeFluidContent::new)
      .documentation("Define a fluid that should generate between certain heights in the biome")
      .<String>append(new KeyedCodec<>("Fluid", Codecs.FLUID_TYPE), (var0, var1) -> var0.fluid = var1, var0 -> var0.fluid)
      .documentation("The fluid type to place")
      .add()
      .<String>append(new KeyedCodec<>("Block", Codecs.BLOCK_TYPE), (var0, var1) -> var0.block = var1, var0 -> var0.block)
      .documentation("The block type to place in the fluid")
      .add()
      .<HeightMask>append(new KeyedCodec<>("MinY", HeightMask.CODEC), (var0, var1) -> var0.minY = var1, var0 -> var0.minY)
      .documentation("The minimum height that the fluid should generate at")
      .add()
      .<NoiseMask>append(new KeyedCodec<>("MinYNoise", NoiseMask.CODEC), (var0, var1) -> var0.minYNoise = var1, var0 -> var0.minYNoise)
      .documentation("The noise used to modulate the min-y height")
      .add()
      .<HeightMask>append(new KeyedCodec<>("MaxY", HeightMask.CODEC), (var0, var1) -> var0.maxY = var1, var0 -> var0.maxY)
      .documentation("The maximum height that the fluid should generate at")
      .add()
      .<NoiseMask>append(new KeyedCodec<>("MaxYNoise", NoiseMask.CODEC), (var0, var1) -> var0.maxYNoise = var1, var0 -> var0.maxYNoise)
      .documentation("The noise used to modulate the max-y height")
      .add()
      .<NoiseMask>append(new KeyedCodec<>("NoiseMask", NoiseMask.CODEC), (var0, var1) -> var0.noiseMask = var1, var0 -> var0.noiseMask)
      .documentation("The noise mask used to determine where the fluid should be placed")
      .add()
      .build();
   class="kw">protected String fluid = "Empty";
   class="kw">protected String block = "Empty";
   class="kw">protected HeightMask minY = HeightMask.DEFAULT_ZERO;
   class="kw">protected NoiseMask minYNoise = NoiseMask.ZERO;
   class="kw">protected HeightMask maxY = HeightMask.DEFAULT_FLUID;
   class="kw">protected NoiseMask maxYNoise = NoiseMask.ZERO;
   class="kw">protected NoiseMask noiseMask = NoiseMask.DEFAULT;

   class="kw">public BiomeFluidContent() {
   }

   @Override
   class="kw">public Content.Type type() {
      class="kw">return Content.Type.BIOME_FLUID;
   }

   @Override
   class="kw">public <T> void applyTo(ModifyEvent<T> var1) class="kw">throws Exception {
      if (var1 class="kw">instanceof ModifyEvents.BiomeFluids var2) {
         int var3 = Fluid.getAssetMap().getIndexOrDefault(this.fluid, 0);
         int var4 = BlockType.getAssetMap().getIndexOrDefault(this.block, 0);
         var2.entries()
            .add(
               new WaterContainer.Entry(
                  var4,
                  var3,
                  new DoubleRangeNoiseSupplier(
                     new DoubleRange.Normal(this.minY.range().getInclusiveMin(), this.minY.range().getInclusiveMax()), this.minYNoise.buildNoise(var1.seed())
                  ),
                  new DoubleRangeNoiseSupplier(
                     new DoubleRange.Normal(this.maxY.range().getInclusiveMin(), this.maxY.range().getInclusiveMax()), this.maxYNoise.buildNoise(var1.seed())
                  ),
                  this.noiseMask.build(var1.seed())
               )
            );
      }
   }
}