HeightThresholdInterpolator class

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

Файл: com/hypixel/hytale/server/worldgen/chunk/HeightThresholdInterpolator.java

Поля (13)

МодификаторыТипИмя
final int MAX_RADIUS
InterpolatedBiomeCountList var10
ZoneBiomeResult var10
InterpolatedBiomeCountList.BiomeCountResult var11
ChunkGenerator var2
int var3
ZoneBiomeResult var4
int var5
int var5
CoreDataCacheEntry var5
int var6
CoreDataCacheEntry var9
int var9

Методы (20)

МодификаторыВозвратСигнатура
for for(int var4 = this.size + this.radius; var3 < var4; var3++)
for for(int var6 = this.size + this.radius; var5 < var6; var5++)
for for(int cxx = 0; cxx < this.size; cxx++)
for for(int var8 = 0; var8 < this.size; var8++)
for for(int var7 = -var5; var7 <= var5; var7++)
for for(int var8 = -var5; var8 <= var5; var8++)
public void generateInterpolatedBiomeCountAtvoid generateInterpolatedBiomeCountAt(int var1, int var2, @Nonnull InterpolatedBiomeCountList var3)
public double getHeightNoisedouble getHeightNoise(int var1, int var2)
public float getHeightThresholdfloat getHeightThreshold(int var1, int var2, int var3, int var4)
public int getHighestNonZeroint getHighestNonZero(int var1, int var2)
public int getLowestNonOneint getLowestNonOne(int var1, int var2)
if if(var9.biomeCountList == null)
if if(var9.heightNoise == Double.NEGATIVE_INFINITY)
if if(var7 != 0 || var8 != 0)
if if(var9 <= var6)
protected int indexLocalint indexLocal(int var1, int var2)
private float interpolateHeightThresholdfloat interpolateHeightThreshold(int var1, int var2, int var3, int var4)
protected void setTableEntryvoid setTableEntry(int var1, int var2, CoreDataCacheEntry var3)
protected CoreDataCacheEntry tableEntryCoreDataCacheEntry tableEntry(int var1, int var2)
protected ZoneBiomeResult zoneBiomeResultZoneBiomeResult zoneBiomeResult(int var1, int var2)

Исходный код

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

class="kw">import com.hypixel.hytale.server.worldgen.cache.CoreDataCacheEntry;
class="kw">import com.hypixel.hytale.server.worldgen.cache.InterpolatedBiomeCountList;
class="kw">import javax.annotation.Nonnull;

class="kw">public class HeightThresholdInterpolator {
   class="kw">public class="kw">static class="kw">final int MAX_RADIUS = 5;
   class="kw">public class="kw">static class="kw">final int MAX_RADIUS2 = 25;
   class="kw">private class="kw">final ChunkGeneratorExecution execution;
   @Nonnull
   class="kw">private class="kw">final CoreDataCacheEntry[] entries;
   class="kw">private class="kw">final int radius;
   class="kw">private class="kw">final int size;
   class="kw">private class="kw">final int totalSize;

   class="kw">public HeightThresholdInterpolator(ChunkGeneratorExecution var1) {
      this.execution = var1;
      this.radius = 5;
      this.size = 32;
      this.totalSize = this.size + 2 * this.radius;
      this.entries = new CoreDataCacheEntry[this.totalSize * this.totalSize];
   }

   @Nonnull
   class="kw">public CoreDataCacheEntry[] getEntries() {
      class="kw">return this.entries;
   }

   @Nonnull
   class="kw">public HeightThresholdInterpolator populate(int var1) {
      ChunkGenerator var2 = this.execution.getChunkGenerator();
      int var3 = -this.radius;

      for (int var4 = this.size + this.radius; var3 < var4; var3++) {
         int var5 = -this.radius;

         for (int var6 = this.size + this.radius; var5 < var6; var5++) {
            this.setTableEntry(var3, var5, var2.getCoreData(var1, this.execution.globalX(var3), this.execution.globalZ(var5)));
         }
      }

      for (int cxx = 0; cxx < this.size; cxx++) {
         for (int var8 = 0; var8 < this.size; var8++) {
            CoreDataCacheEntry var9 = this.tableEntry(cxx, var8);
            if (var9.biomeCountList == null) {
               InterpolatedBiomeCountList var10 = new InterpolatedBiomeCountList();
               this.generateInterpolatedBiomeCountAt(cxx, var8, var10);
               var9.biomeCountList = var10;
            }

            if (var9.heightNoise == Double.NEGATIVE_INFINITY) {
               var9.heightNoise = var2.generateInterpolatedHeightNoise(var9.biomeCountList);
            }
         }
      }

      class="kw">return this;
   }

   class="kw">public void generateInterpolatedBiomeCountAt(int var1, int var2, @Nonnull InterpolatedBiomeCountList var3) {
      ZoneBiomeResult var4 = this.tableEntry(var1, var2).zoneBiomeResult;
      var3.setCenter(var4);
      int var5 = var4.getBiome().getInterpolation().getRadius();
      int var6 = var5 * var5;

      for (int var7 = -var5; var7 <= var5; var7++) {
         for (int var8 = -var5; var8 <= var5; var8++) {
            if (var7 != 0 || var8 != 0) {
               int var9 = var7 * var7 + var8 * var8;
               if (var9 <= var6) {
                  ZoneBiomeResult var10 = this.tableEntry(var1 + var7, var2 + var8).zoneBiomeResult;
                  var3.add(var10, var9);
               }
            }
         }
      }

      if (var3.getBiomeIds().size() == 1) {
         InterpolatedBiomeCountList.BiomeCountResult var11 = var3.get(var4.getBiome());
         var11.heightNoise = var4.heightmapNoise;
         var11.count = 1;
      }
   }

   class="kw">public double getHeightNoise(int var1, int var2) {
      class="kw">return this.tableEntry(var1, var2).heightNoise;
   }

   class="kw">public float getHeightThreshold(int var1, int var2, int var3, int var4) {
      class="kw">return this.interpolateHeightThreshold(var1, var2, var3, var4);
   }

   class="kw">private float interpolateHeightThreshold(int var1, int var2, int var3, int var4) {
      CoreDataCacheEntry var5 = this.tableEntry(this.execution.localX(var2), this.execution.localZ(var3));
      class="kw">return ChunkGenerator.generateInterpolatedThreshold(var1, var2, var3, var4, var5.biomeCountList);
   }

   class="kw">protected CoreDataCacheEntry tableEntry(int var1, int var2) {
      class="kw">return this.entries[this.indexLocal(var1, var2)];
   }

   class="kw">protected void setTableEntry(int var1, int var2, CoreDataCacheEntry var3) {
      this.entries[this.indexLocal(var1, var2)] = var3;
   }

   class="kw">protected ZoneBiomeResult zoneBiomeResult(int var1, int var2) {
      class="kw">return this.tableEntry(var1, var2).zoneBiomeResult;
   }

   class="kw">public int getLowestNonOne(int var1, int var2) {
      class="kw">return this.execution.getChunkGenerator().generateLowestThresholdDependent(this.tableEntry(var1, var2).biomeCountList);
   }

   class="kw">public int getHighestNonZero(int var1, int var2) {
      class="kw">return this.execution.getChunkGenerator().generateHighestThresholdDependent(this.tableEntry(var1, var2).biomeCountList);
   }

   class="kw">protected int indexLocal(int var1, int var2) {
      class="kw">return (var1 + this.radius) * this.totalSize + var2 + this.radius;
   }
}