GradientNoiseProperty class

Пакет: com.hypixel.hytale.procedurallib.property

Файл: com/hypixel/hytale/procedurallib/property/GradientNoiseProperty.java

implements: NoiseProperty

Поля (11)

МодификаторыТипИмя
MAGNITUDE, ANGLE, ANGLE_ABS
final NoiseProperty noise
double var10
double var12
double var14
float var4
var4
float var4
double var6
double var6
double var8

Методы (8)

МодификаторыВозвратСигнатура
GradientMode GradientMode()
abstract throw new UnsupportedOperationExceptionthrow new UnsupportedOperationException()
static float convertRangefloat convertRange(float var0)
abstract return convertRangereturn convertRange(var4)
static double getAbsAngledouble getAbsAngle(double var0, double var2)
static double getAngledouble getAngle(double var0, double var2)
static double getMagnitudedouble getMagnitude(double var0, double var2, double var4)
return switchreturn switch(this.mode)

Исходный код

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

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;

class="kw">public class GradientNoiseProperty class="kw">implements NoiseProperty {
   class="kw">protected class="kw">final NoiseProperty noise;
   class="kw">protected class="kw">final GradientNoiseProperty.GradientMode mode;
   class="kw">protected class="kw">final double distance;
   class="kw">protected class="kw">final double invNormalize;

   class="kw">public GradientNoiseProperty(NoiseProperty var1, GradientNoiseProperty.GradientMode var2, double var3, double var5) {
      this.noise = var1;
      this.mode = var2;
      this.distance = var3;
      this.invNormalize = 1.0 / var3 / var5;
   }

   @Override
   class="kw">public double get(int var1, double var2, double var4) {
      double var6 = this.noise.get(var1, var2, var4);
      double var8 = this.noise.get(var1, var2, var4 + this.distance);
      double var10 = this.noise.get(var1, var2 + this.distance, var4);
      double var12 = var10 - var6;
      double var14 = var8 - var6;

      class="kw">return class="kw">switch (this.mode) {
         case MAGNITUDE -> getMagnitude(var12, var14, this.invNormalize);
         case ANGLE -> getAngle(var12, var14);
         case ANGLE_ABS -> getAbsAngle(var12, var14);
      };
   }

   @Override
   class="kw">public double get(int var1, double var2, double var4, double var6) {
      throw new UnsupportedOperationException();
   }

   class="kw">protected class="kw">static double getAngle(double var0, double var2) {
      float var4 = TrigMathUtil.atan2(var2, var0);
      var4 = (var4 + (float) Math.PI) / (float) (Math.PI * 2);
      class="kw">return convertRange(var4);
   }

   class="kw">protected class="kw">static double getAbsAngle(double var0, double var2) {
      float var4 = TrigMathUtil.atan2(var2, var0);
      class="kw">return Math.abs(var4) / (float) Math.PI;
   }

   class="kw">protected class="kw">static double getMagnitude(double var0, double var2, double var4) {
      double var6 = MathUtil.length(var0, var2);
      class="kw">return MathUtil.clamp(var6 * var4, 0.0, 1.0);
   }

   class="kw">protected class="kw">static float convertRange(float var0) {
      var0 += 0.125F;
      class="kw">return var0 > 1.0F ? var0 - 1.0F : var0;
   }

   class="kw">public enum GradientMode {
      MAGNITUDE,
      ANGLE,
      ANGLE_ABS;

      GradientMode() {
      }
   }
}