DynamicLayer class

Пакет: com.hypixel.hytale.server.worldgen.container

Файл: com/hypixel/hytale/server/worldgen/container/LayerContainer.java

extends: LayerContainer.Layer<LayerContainer.DynamicLayerEntry>

Поля (1)

МодификаторыТипИмя
protected final IDoubleCoordinateSupplier offset

Методы (3)

МодификаторыВозвратСигнатура
public int getOffsetpublic int getOffset(int var1, int var2, int var3)
abstract super super(var1, var2, var3)
public String toStringpublic String toString()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.container;

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.procedurallib.condition.ICoordinateCondition;
class="kw">import com.hypixel.hytale.procedurallib.supplier.IDoubleCoordinateSupplier;
class="kw">import com.hypixel.hytale.server.worldgen.util.BlockFluidEntry;
class="kw">import com.hypixel.hytale.server.worldgen.util.ListPool;
class="kw">import com.hypixel.hytale.server.worldgen.util.NoiseBlockArray;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class LayerContainer {
   class="kw">public class="kw">static class="kw">final ListPool<LayerContainer.StaticLayer> STATIC_POOL = new ListPool<>(10, new LayerContainer.StaticLayer[0]);
   class="kw">public class="kw">static class="kw">final ListPool<LayerContainer.DynamicLayer> DYNAMIC_POOL = new ListPool<>(10, new LayerContainer.DynamicLayer[0]);
   @Nonnull
   class="kw">protected class="kw">final BlockFluidEntry filling;
   class="kw">protected class="kw">final int fillingEnvironment;
   class="kw">protected class="kw">final LayerContainer.StaticLayer[] staticLayers;
   class="kw">protected class="kw">final LayerContainer.DynamicLayer[] dynamicLayers;

   class="kw">public LayerContainer(int var1, int var2, LayerContainer.StaticLayer[] var3, LayerContainer.DynamicLayer[] var4) {
      this.filling = new BlockFluidEntry(var1, 0, 0);
      this.fillingEnvironment = var2;
      this.staticLayers = var3;
      this.dynamicLayers = var4;
   }

   class="kw">public BlockFluidEntry getFilling() {
      class="kw">return this.filling;
   }

   class="kw">public int getFillingEnvironment() {
      class="kw">return this.fillingEnvironment;
   }

   class="kw">public LayerContainer.StaticLayer[] getStaticLayers() {
      class="kw">return this.staticLayers;
   }

   class="kw">public LayerContainer.DynamicLayer[] getDynamicLayers() {
      class="kw">return this.dynamicLayers;
   }

   class="kw">public BlockFluidEntry getTopBlockAt(int var1, int var2, int var3) {
      for (LayerContainer.DynamicLayer var7 : this.dynamicLayers) {
         LayerContainer.DynamicLayerEntry var8 = var7.getActiveEntry(var1, var2, var3);
         if (var8 != null) {
            class="kw">return var8.blockArray.getTopBlockAt(var1, var2, var3);
         }
      }

      class="kw">return this.filling;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "LayerContainer{filling="
         + this.filling
         + ", staticLayers="
         + Arrays.toString(this.staticLayers)
         + ", dynamicLayers="
         + Arrays.toString(this.dynamicLayers)
         + "}";
   }

   class="kw">public class="kw">static class DynamicLayer class="kw">extends LayerContainer.Layer<LayerContainer.DynamicLayerEntry> {
      class="kw">protected class="kw">final IDoubleCoordinateSupplier offset;

      class="kw">public DynamicLayer(LayerContainer.DynamicLayerEntry[] var1, ICoordinateCondition var2, int var3, IDoubleCoordinateSupplier var4) {
         super(var1, var2, var3);
         this.offset = var4;
      }

      class="kw">public int getOffset(int var1, int var2, int var3) {
         class="kw">return MathUtil.floor(this.offset.get(var1, var2, var3));
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "DynamicLayer{entries=" + Arrays.toString(this.entries) + ", offset=" + this.offset + "}";
      }
   }

   class="kw">public class="kw">static class DynamicLayerEntry class="kw">extends LayerContainer.LayerEntry {
      class="kw">public DynamicLayerEntry(NoiseBlockArray var1, ICoordinateCondition var2) {
         super(var1, var2);
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "DynamicLayerEntry{blockArray=" + this.blockArray + ", mapCondition=" + this.mapCondition + "}";
      }
   }

   class="kw">public class="kw">static class Layer<T class="kw">extends LayerContainer.LayerEntry> {
      class="kw">protected class="kw">final T[] entries;
      class="kw">protected class="kw">final ICoordinateCondition mapCondition;
      class="kw">protected class="kw">final int environmentId;

      class="kw">public Layer(T[] var1, ICoordinateCondition var2, int var3) {
         this.entries = var1;
         this.mapCondition = var2;
         this.environmentId = var3;
      }

      class="kw">public int getEnvironmentId() {
         class="kw">return this.environmentId;
      }

      @Nullable
      class="kw">public T getActiveEntry(int var1, int var2, int var3) {
         if (!this.mapCondition.eval(var1, var2, var3)) {
            class="kw">return null;
         }

         for (LayerContainer.LayerEntry var7 : this.entries) {
            if (var7.isActive(var1, var2, var3)) {
               class="kw">return var7;
            }
         }

         class="kw">return null;
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "Layer{entries=" + Arrays.toString(this.entries) + "}";
      }
   }

   class="kw">public class="kw">abstract class="kw">static class LayerEntry {
      class="kw">protected class="kw">final NoiseBlockArray blockArray;
      class="kw">protected class="kw">final ICoordinateCondition mapCondition;

      class="kw">public LayerEntry(NoiseBlockArray var1, ICoordinateCondition var2) {
         this.blockArray = var1;
         this.mapCondition = var2;
      }

      class="kw">public boolean isActive(int var1, int var2, int var3) {
         class="kw">return this.mapCondition.eval(var1, var2, var3);
      }

      class="kw">public NoiseBlockArray getBlockArray() {
         class="kw">return this.blockArray;
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "LayerEntry{blockArray=" + this.blockArray + ", mapCondition=" + this.mapCondition + "}";
      }
   }

   class="kw">public class="kw">static class StaticLayer class="kw">extends LayerContainer.Layer<LayerContainer.StaticLayerEntry> {
      class="kw">public StaticLayer(LayerContainer.StaticLayerEntry[] var1, ICoordinateCondition var2, int var3) {
         super(var1, var2, var3);
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "StaticLayer{entries=" + Arrays.toString(this.entries) + "}";
      }
   }

   class="kw">public class="kw">static class StaticLayerEntry class="kw">extends LayerContainer.LayerEntry {
      class="kw">protected class="kw">final IDoubleCoordinateSupplier min;
      class="kw">protected class="kw">final IDoubleCoordinateSupplier max;

      class="kw">public StaticLayerEntry(NoiseBlockArray var1, ICoordinateCondition var2, IDoubleCoordinateSupplier var3, IDoubleCoordinateSupplier var4) {
         super(var1, var2);
         this.min = var3;
         this.max = var4;
      }

      class="kw">public int getMinInt(int var1, int var2, int var3) {
         class="kw">return MathUtil.floor(this.getMinValue(var1, var2, var3));
      }

      class="kw">public double getMinValue(int var1, int var2, int var3) {
         class="kw">return this.min.get(var1, var2, var3);
      }

      class="kw">public int getMaxInt(int var1, int var2, int var3) {
         class="kw">return MathUtil.floor(this.getMaxValue(var1, var2, var3));
      }

      class="kw">public double getMaxValue(int var1, int var2, int var3) {
         class="kw">return this.max.get(var1, var2, var3);
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "StaticLayerEntry{blockArray=" + this.blockArray + ", mapCondition=" + this.mapCondition + ", min=" + this.min + ", max=" + this.max + "}";
      }
   }
}