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;
}
}
}