CellNoise class

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

Файл: com/hypixel/hytale/procedurallib/logic/CellNoise.java

implements: NoiseFunction

Поля (29)

МодификаторыТипИмя
final CellDistanceFunction distanceFunction
private final CellNoise.CellFunction function
int var10
double var10
float var10
int var11
float var11
ResultBuffer.ResultBuffer3d var12
double var12
double var12
float var12
double var13
double var14
double var15
double var16
double var17
double var19
double var21
double var23
int var25
var3
var3
var5
var5
int var7
var7
int var8
ResultBuffer.ResultBuffer2d var9
int var9

Методы (26)

МодификаторыВозвратСигнатура
CELL_VALUE CELL_VALUE(new CellNoise.CellFunction()
CellMode CellMode(CellNoise.CellFunction nullxx)
DIRECTION DIRECTION(new CellNoise.CellFunction()
DISTANCE DISTANCE(new CellNoise.CellFunction()
NOISE_LOOKUP NOISE_LOOKUP(new CellNoise.CellFunction()
abstract throw new UnsupportedOperationExceptionthrow new UnsupportedOperationException()
public double evalpublic double eval(int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9)
public double evalpublic double eval(int var1, int var2, double var3, double var5, double var7, @Nonnull ResultBuffer.ResultBuffer3d var9, CellDistanceFunction var10, NoiseProperty var11)
public double evalpublic double eval(int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, @Nonnull CellDistanceFunction var8, @Nonnull NoiseProperty var9)
public double evalpublic double eval(int var1, int var2, double var3, double var5, double var7, @Nonnull ResultBuffer.ResultBuffer3d var9, @Nonnull CellDistanceFunction var10, @Nonnull NoiseProperty var11)
public double evalpublic double eval(int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9)
public double evalpublic double eval(int var1, int var2, double var3, double var5, double var7, @Nonnull ResultBuffer.ResultBuffer3d var9, CellDistanceFunction var10, NoiseProperty var11)
public double evalpublic double eval(int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9)
public double evalpublic double eval(int var1, int var2, double var3, double var5, double var7, ResultBuffer.ResultBuffer3d var9, CellDistanceFunction var10, NoiseProperty var11)
abstract double evaldouble eval(int var1, int var2, double var3, double var5, ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9)
abstract double evaldouble eval(int var1, int var2, double var3, double var5, double var7, ResultBuffer.ResultBuffer3d var9, CellDistanceFunction var10, NoiseProperty var11)
private double getAngleNoiseprivate double getAngleNoise(int var1, int var2, @Nonnull ResultBuffer.ResultBuffer2d var3, @Nullable NoiseProperty var4)
public CellNoise.CellFunction getCellFunctionCellNoise.CellFunction getCellFunction()
public CellDistanceFunction getDistanceFunctionCellDistanceFunction getDistanceFunction()
public CellNoise.CellFunction getFunctionpublic CellNoise.CellFunction getFunction()
protected ResultBuffer.ResultBuffer2d localBuffer2dResultBuffer.ResultBuffer2d localBuffer2d()
protected ResultBuffer.ResultBuffer3d localBuffer3dResultBuffer.ResultBuffer3d localBuffer3d()
public String toStringpublic String toString()
public String toStringpublic String toString()
public String toStringpublic String toString()
public String toStringpublic String toString()

Исходный код

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

class="kw">import com.hypixel.hytale.math.util.HashUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import com.hypixel.hytale.procedurallib.NoiseFunction;
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">import javax.annotation.Nullable;

class="kw">public class CellNoise class="kw">implements NoiseFunction {
   class="kw">protected class="kw">final CellDistanceFunction distanceFunction;
   class="kw">protected class="kw">final PointEvaluator pointEvaluator;
   class="kw">protected class="kw">final CellNoise.CellFunction cellFunction;
   @Nullable
   class="kw">protected class="kw">final NoiseProperty noiseLookup;

   class="kw">public CellNoise(CellDistanceFunction var1, PointEvaluator var2, CellNoise.CellFunction var3, @Nullable NoiseProperty var4) {
      this.distanceFunction = var1;
      this.pointEvaluator = var2;
      this.cellFunction = var3;
      this.noiseLookup = var4;
   }

   class="kw">public CellDistanceFunction getDistanceFunction() {
      class="kw">return this.distanceFunction;
   }

   class="kw">public CellNoise.CellFunction getCellFunction() {
      class="kw">return this.cellFunction;
   }

   @Nullable
   class="kw">public NoiseProperty getNoiseLookup() {
      class="kw">return this.noiseLookup;
   }

   @Override
   class="kw">public double get(int var1, int var2, double var3, double var5) {
      var3 = this.distanceFunction.scale(var3);
      var5 = this.distanceFunction.scale(var5);
      int var7 = this.distanceFunction.getCellX(var3, var5);
      int var8 = this.distanceFunction.getCellY(var3, var5);
      ResultBuffer.ResultBuffer2d var9 = this.localBuffer2d();
      var9.distance = Double.POSITIVE_INFINITY;
      this.distanceFunction.nearest2D(var2, var3, var5, var7, var8, var9, this.pointEvaluator);
      class="kw">return GeneralNoise.limit(this.cellFunction.eval(var1, var2, var3, var5, var9, this.distanceFunction, this.noiseLookup)) * 2.0 - 1.0;
   }

   @Override
   class="kw">public double get(int var1, int var2, double var3, double var5, double var7) {
      var3 = this.distanceFunction.scale(var3);
      var5 = this.distanceFunction.scale(var5);
      var7 = this.distanceFunction.scale(var7);
      int var9 = this.distanceFunction.getCellX(var3, var5, var7);
      int var10 = this.distanceFunction.getCellY(var3, var5, var7);
      int var11 = this.distanceFunction.getCellZ(var3, var5, var7);
      ResultBuffer.ResultBuffer3d var12 = this.localBuffer3d();
      var12.distance = Double.POSITIVE_INFINITY;
      this.distanceFunction.nearest3D(var2, var3, var5, var7, var9, var10, var11, var12, this.pointEvaluator);
      class="kw">return GeneralNoise.limit(this.cellFunction.eval(var1, var2, var3, var5, var7, var12, this.distanceFunction, this.noiseLookup)) * 2.0 - 1.0;
   }

   class="kw">protected ResultBuffer.ResultBuffer2d localBuffer2d() {
      class="kw">return ResultBuffer.buffer2d;
   }

   class="kw">protected ResultBuffer.ResultBuffer3d localBuffer3d() {
      class="kw">return ResultBuffer.buffer3d;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "CellNoise{distanceFunction="
         + this.distanceFunction
         + ", pointEvaluator="
         + this.pointEvaluator
         + ", cellFunction="
         + this.cellFunction
         + ", noiseLookup="
         + this.noiseLookup
         + "}";
   }

   class="kw">public class="kw">interface CellFunction {
      double eval(int var1, int var2, double var3, double var5, ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9);

      double eval(int var1, int var2, double var3, double var5, double var7, ResultBuffer.ResultBuffer3d var9, CellDistanceFunction var10, NoiseProperty var11);
   }

   class="kw">public enum CellMode {
      CELL_VALUE(
         new CellNoise.CellFunction() {
            @Override
            class="kw">public double eval(
               int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9
            ) {
               class="kw">return HashUtil.random(var2, var7.ix, var7.iy);
            }

            @Override
            class="kw">public double eval(
               int var1,
               int var2,
               double var3,
               double var5,
               double var7,
               @Nonnull ResultBuffer.ResultBuffer3d var9,
               CellDistanceFunction var10,
               NoiseProperty var11
            ) {
               class="kw">return HashUtil.random(var2, var9.ix, var9.iy, var9.iz);
            }

            @Nonnull
            @Override
            class="kw">public String toString() {
               class="kw">return "CellValueCellFunction{}";
            }
         }
      ),
      NOISE_LOOKUP(
         new CellNoise.CellFunction() {
            @Override
            class="kw">public double eval(
               int var1,
               int var2,
               double var3,
               double var5,
               @Nonnull ResultBuffer.ResultBuffer2d var7,
               @Nonnull CellDistanceFunction var8,
               @Nonnull NoiseProperty var9
            ) {
               double var10 = var8.invScale(var7.x);
               double var12 = var8.invScale(var7.y);
               class="kw">return var9.get(var1, var10, var12);
            }

            @Override
            class="kw">public double eval(
               int var1,
               int var2,
               double var3,
               double var5,
               double var7,
               @Nonnull ResultBuffer.ResultBuffer3d var9,
               @Nonnull CellDistanceFunction var10,
               @Nonnull NoiseProperty var11
            ) {
               double var12 = var10.invScale(var9.x);
               double var14 = var10.invScale(var9.y);
               double var16 = var10.invScale(var9.z);
               class="kw">return var11.get(var1, var12, var14, var16);
            }

            @Nonnull
            @Override
            class="kw">public String toString() {
               class="kw">return "NoiseLookupCellFunction{}";
            }
         }
      ),
      DISTANCE(
         new CellNoise.CellFunction() {
            @Override
            class="kw">public double eval(
               int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9
            ) {
               class="kw">return Math.sqrt(var7.distance);
            }

            @Override
            class="kw">public double eval(
               int var1,
               int var2,
               double var3,
               double var5,
               double var7,
               @Nonnull ResultBuffer.ResultBuffer3d var9,
               CellDistanceFunction var10,
               NoiseProperty var11
            ) {
               class="kw">return Math.sqrt(var9.distance);
            }

            @Nonnull
            @Override
            class="kw">public String toString() {
               class="kw">return "DistanceCellFunction{}";
            }
         }
      ),
      DIRECTION(
         new CellNoise.CellFunction() {
            @Override
            class="kw">public double eval(
               int var1, int var2, double var3, double var5, @Nonnull ResultBuffer.ResultBuffer2d var7, CellDistanceFunction var8, NoiseProperty var9
            ) {
               float var10 = (float)this.getAngleNoise(var1, var2, var7, var9) * (float) (Math.PI * 2);
               float var11 = TrigMathUtil.sin(var10);
               float var12 = TrigMathUtil.cos(var10);
               double var13 = var7.x;
               double var15 = var7.y;
               double var17 = var13 + var11;
               double var19 = var15 + var12;
               double var21 = MathUtil.distanceToInfLineSq(var3, var5, var13, var15, var17, var19);
               double var23 = MathUtil.clamp(Math.sqrt(var21), 0.0, 1.0);
               int var25 = MathUtil.sideOfLine(var3, var5, var13, var15, var17, var19);
               class="kw">return 0.5 + var25 * var23 * 0.5;
            }

            @Override
            class="kw">public double eval(
               int var1, int var2, double var3, double var5, double var7, ResultBuffer.ResultBuffer3d var9, CellDistanceFunction var10, NoiseProperty var11
            ) {
               throw new UnsupportedOperationException();
            }

            @Nonnull
            @Override
            class="kw">public String toString() {
               class="kw">return "DirectionCellFunction{}";
            }

            class="kw">private double getAngleNoise(int var1, int var2, @Nonnull ResultBuffer.ResultBuffer2d var3, @Nullable NoiseProperty var4) {
               class="kw">return var4 != null ? var4.get(var1, var3.x, var3.y) : HashUtil.random(var2, var3.ix, var3.iy);
            }
         }
      );

      class="kw">private class="kw">final CellNoise.CellFunction function;

      CellMode(CellNoise.CellFunction nullxx) {
         this.function = nullxx;
      }

      class="kw">public CellNoise.CellFunction getFunction() {
         class="kw">return this.function;
      }
   }
}