BiomePatternGenerator class

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

Файл: com/hypixel/hytale/server/worldgen/biome/BiomePatternGenerator.java

Поля (9)

МодификаторыТипИмя
final IPointGenerator pointGenerator
int var1
var1
CustomBiomeGenerator var13
int var4
ResultBuffer.ResultBuffer2d var4
TileBiome var5
CustomBiome var6
int var8

Методы (7)

МодификаторыВозвратСигнатура
for for(CustomBiome var12 : var3)
for for(CustomBiome var12 : this.customBiomes)
for for(Biome var5 : var0)
protected double getBiomeIndexdouble getBiomeIndex(int var1, int var2, int var3)
public int getExtentsint getExtents()
static int getExtentsint getExtents(@Nonnull Biome[] var0)
if if(this.customBiomes.length > 0)

Исходный код

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

class="kw">import com.hypixel.hytale.common.map.IWeightedMap;
class="kw">import com.hypixel.hytale.math.util.HashUtil;
class="kw">import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
class="kw">import com.hypixel.hytale.procedurallib.logic.point.IPointGenerator;
class="kw">import com.hypixel.hytale.server.worldgen.zone.ZoneGeneratorResult;
class="kw">import java.util.Arrays;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BiomePatternGenerator {
   class="kw">protected class="kw">final IPointGenerator pointGenerator;
   @Nonnull
   class="kw">protected class="kw">final IWeightedMap<TileBiome> tileBiomes;
   @Nonnull
   class="kw">protected class="kw">final CustomBiome[] customBiomes;
   @Nonnull
   class="kw">protected class="kw">final Biome[] biomes;
   class="kw">protected class="kw">final int extents;

   class="kw">public BiomePatternGenerator(IPointGenerator var1, @Nonnull IWeightedMap<TileBiome> var2, @Nonnull CustomBiome[] var3) {
      this.pointGenerator = var1;
      this.tileBiomes = var2;
      this.customBiomes = var3;
      this.biomes = new Biome[var2.size() + var3.length];
      int var4 = 0;

      for (TileBiome var8 : var2.internalKeys()) {
         this.biomes[var4++] = var8;
      }

      for (CustomBiome var12 : var3) {
         this.biomes[var4++] = var12;
      }

      this.extents = getExtents(this.biomes);
   }

   class="kw">public int getExtents() {
      class="kw">return this.extents;
   }

   @Nonnull
   class="kw">public Biome[] getBiomes() {
      class="kw">return this.biomes;
   }

   @Nonnull
   class="kw">public CustomBiome[] getCustomBiomes() {
      class="kw">return this.customBiomes;
   }

   @Nullable
   class="kw">public TileBiome getBiome(int var1, int var2, int var3) {
      class="kw">return this.tileBiomes.get(var1, var2, var3, (var0, var1x, var2x, var3x) -> var3x.getBiomeIndex(var0, var1x, var2x), this);
   }

   class="kw">protected double getBiomeIndex(int var1, int var2, int var3) {
      ResultBuffer.ResultBuffer2d var4 = this.pointGenerator.nearest2D(var1, var2, var3);
      class="kw">return HashUtil.random(var1, var4.ix, var4.iy);
   }

   @Nullable
   class="kw">public TileBiome getBiomeDirect(int var1, int var2, int var3) {
      class="kw">return this.tileBiomes.get(HashUtil.random(var1, Double.doubleToLongBits(var2), Double.doubleToLongBits(var3)));
   }

   @Nonnull
   class="kw">public Biome generateBiomeAt(@Nonnull ZoneGeneratorResult var1, int var2, int var3, int var4) {
      TileBiome var5 = this.getBiome(var2, var3, var4);
      CustomBiome var6 = this.getCustomBiomeAt(var2, var3, var4, var1, var5);
      class="kw">return Objects.requireNonNullElse(var6, var5);
   }

   @Nullable
   class="kw">public CustomBiome getCustomBiomeAt(int var1, double var2, double var4, @Nonnull ZoneGeneratorResult var6, @Nonnull Biome var7) {
      if (this.customBiomes.length > 0) {
         int var8 = var7.getId();

         for (CustomBiome var12 : this.customBiomes) {
            CustomBiomeGenerator var13 = var12.getCustomBiomeGenerator();
            if (var13.isValidParentBiome(var8) && var13.shouldGenerateAt(var1, var2, var4, var6, var12)) {
               class="kw">return var12;
            }
         }
      }

      class="kw">return null;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "BiomePatternGenerator{pointGenerator="
         + this.pointGenerator
         + ", tileBiomes="
         + this.tileBiomes
         + ", customBiomes="
         + Arrays.toString(this.customBiomes)
         + ", biomes="
         + Arrays.toString(this.biomes)
         + "}";
   }

   class="kw">private class="kw">static int getExtents(@Nonnull Biome[] var0) {
      int var1 = 0;

      for (Biome var5 : var0) {
         if (var5.getPrefabContainer() != null) {
            var1 = Math.max(var1, var5.getPrefabContainer().getMaxSize());
         }
      }

      class="kw">return var1;
   }
}