Thresholds class

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

Файл: com/hypixel/hytale/server/worldgen/climate/ClimateNoise.java

Поля (12)

МодификаторыТипИмя
public static final double BEACH_SIZE_DEFAULT
public static final double ISLAND_DEFAULT
public static final double LAND_DEFAULT
public static final double SHALLOW_OCEAN_SIZE_DEFAULT
public final double beachSize
public final double island
public final transient double islandShallowOceanOuter
public final transient double islandShoreInner
public final double land
public final transient double landShallowOceanOuter
public final transient double landShoreInner
public final double shallowOceanSize

Исходный код

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

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.procedurallib.logic.ResultBuffer;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.PointEvaluator;
class="kw">import com.hypixel.hytale.procedurallib.property.NoiseProperty;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ClimateNoise {
   @Nonnull
   class="kw">public class="kw">final ClimateNoise.Grid grid;
   @Nonnull
   class="kw">public class="kw">final NoiseProperty continent;
   @Nonnull
   class="kw">public class="kw">final NoiseProperty temperature;
   @Nonnull
   class="kw">public class="kw">final NoiseProperty intensity;
   @Nonnull
   class="kw">public class="kw">final ClimateNoise.Thresholds thresholds;

   class="kw">public ClimateNoise(
      @Nonnull ClimateNoise.Grid var1,
      @Nonnull NoiseProperty var2,
      @Nonnull NoiseProperty var3,
      @Nonnull NoiseProperty var4,
      @Nonnull ClimateNoise.Thresholds var5
   ) {
      this.grid = var1;
      this.temperature = var3;
      this.intensity = var4;
      this.continent = var2;
      this.thresholds = var5;
   }

   class="kw">public int generate(int var1, double var2, double var4, @Nonnull ClimateNoise.Buffer var6, @Nonnull ClimateGraph var7) {
      this.grid.eval(var1, var2, var4, var6.pos);
      double var8 = this.continent.get(var1, var2, var4);
      double var10 = this.temperature.get(var1, var6.pos.x, var6.pos.y);
      double var12 = this.intensity.get(var1, var6.pos.x, var6.pos.y);
      int var14 = var7.indexOf(var10, var12);
      var6.continent = var8;
      var6.temperature = var10;
      var6.intensity = var12;
      var6.fade = var7.getFade(var14);
      int var15 = var7.getId(var14);
      int var16 = getContinentFlags(var8, this.thresholds);
      class="kw">return var15 | var16;
   }

   class="kw">private class="kw">static int getContinentFlags(double var0, @Nonnull ClimateNoise.Thresholds var2) {
      boolean var3 = var0 <= var2.landShallowOceanOuter;
      boolean var4 = var0 >= var2.islandShallowOceanOuter;
      boolean var5 = var0 > var2.land && var0 < var2.island;
      boolean var6 = var3 && var0 > var2.landShoreInner || var4 && var0 < var2.islandShoreInner;
      int var7 = 0;
      if (var5) {
         var7 |= Integer.MIN_VALUE;
      }

      if (var6) {
         var7 |= 1073741824;
      }

      if (var4) {
         var7 |= 536870912;
      }

      class="kw">return var7;
   }

   class="kw">public class="kw">static class Buffer {
      class="kw">public double continent = 0.0;
      class="kw">public double temperature = 0.0;
      class="kw">public double intensity = 0.0;
      class="kw">public double fade = 0.0;
      class="kw">public class="kw">final ResultBuffer.ResultBuffer2d pos = new ResultBuffer.ResultBuffer2d();

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

   class="kw">public class="kw">static class Grid {
      class="kw">public class="kw">final int seedOffset;
      class="kw">public class="kw">final double scale;
      @Nonnull
      class="kw">public class="kw">final PointEvaluator evaluator;
      @Nonnull
      class="kw">public class="kw">final CellDistanceFunction grid;
      class="kw">public class="kw">final class="kw">transient double invScale;

      class="kw">public Grid(int var1, double var2, @Nonnull CellDistanceFunction var4, @Nonnull PointEvaluator var5) {
         this.seedOffset = var1;
         this.scale = var2;
         this.evaluator = var5;
         this.grid = var4;
         this.invScale = 1.0 / var2;
      }

      class="kw">public void eval(int var1, double var2, double var4, ResultBuffer.ResultBuffer2d var6) {
         var2 *= this.scale;
         var4 *= this.scale;
         var6.distance = Double.MAX_VALUE;
         var6.distance2 = Double.MAX_VALUE;
         this.grid.nearest2D(var1 + this.seedOffset, var2, var4, MathUtil.floor(var2), MathUtil.floor(var4), var6, this.evaluator);
         var6.x = var6.x * this.invScale;
         var6.y = var6.y * this.invScale;
      }
   }

   class="kw">public class="kw">static class Thresholds {
      class="kw">public class="kw">static class="kw">final double LAND_DEFAULT = 0.5;
      class="kw">public class="kw">static class="kw">final double ISLAND_DEFAULT = 0.8;
      class="kw">public class="kw">static class="kw">final double BEACH_SIZE_DEFAULT = 0.05;
      class="kw">public class="kw">static class="kw">final double SHALLOW_OCEAN_SIZE_DEFAULT = 0.15;
      class="kw">public class="kw">final double land;
      class="kw">public class="kw">final double island;
      class="kw">public class="kw">final double beachSize;
      class="kw">public class="kw">final double shallowOceanSize;
      class="kw">public class="kw">final class="kw">transient double landShoreInner;
      class="kw">public class="kw">final class="kw">transient double islandShoreInner;
      class="kw">public class="kw">final class="kw">transient double landShallowOceanOuter;
      class="kw">public class="kw">final class="kw">transient double islandShallowOceanOuter;

      class="kw">public Thresholds(double var1, double var3, double var5, double var7) {
         this.land = var1;
         this.island = var3;
         this.beachSize = var5;
         this.shallowOceanSize = var7;
         this.landShoreInner = var1 - var5;
         this.islandShoreInner = var3 + var5;
         this.landShallowOceanOuter = var1 + var7;
         this.islandShallowOceanOuter = var3 - var7 * 0.5;
      }
   }
}