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() {
}
}
}