Factory class
Пакет: com.hypixel.hytale.server.worldgen.cave.shape.distorted
Файл: com/hypixel/hytale/server/worldgen/cave/shape/distorted/AbstractDistortedBody.java
implements: DistortedShape.Factory
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
double |
var18 |
|
double |
var20 |
|
double |
var22 |
|
double |
var24 |
|
double |
var26 |
|
double |
var28 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public DistortedShape |
createpublic DistortedShape create(Vector3d var1,
@Nonnull Vector3d var2,
double var3,
double var5,
double var7,
double var9,
double var11,
double var13,
double var15,
GeneralNoise.InterpolationFunction var17) |
abstract |
protected abstract DistortedShape |
createShapeprotected abstract DistortedShape createShape(Vector3d var1, Vector3d var2, double var3, double var5, double var7, double var9, double var11, GeneralNoise.InterpolationFunction var13) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.cave.shape.distorted;
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.logic.GeneralNoise;
class="kw">import com.hypixel.hytale.procedurallib.random.CoordinateRotator;
class="kw">import com.hypixel.hytale.server.worldgen.cave.CaveType;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class="kw">abstract class AbstractDistortedBody class="kw">extends AbstractDistortedShape {
@Nonnull
class="kw">protected class="kw">final Vector3d o;
class="kw">protected class="kw">final Vector3d v;
@Nonnull
class="kw">protected class="kw">final CoordinateRotator rotation;
class="kw">public AbstractDistortedBody(@Nonnull Vector3d var1, Vector3d var2, double var3, double var5, double var7, double var9, double var11) {
this(var1, var2, new CoordinateRotator(var5, var3), var7, var9, var11);
}
class="kw">private AbstractDistortedBody(@Nonnull Vector3d var1, Vector3d var2, @Nonnull CoordinateRotator var3, double var4, double var6, double var8) {
super(var1, maxX(var3, var4, var6, var8), maxY(var3, var4, var6, var8), maxZ(var3, var4, var6, var8));
this.o = var1;
this.v = var2;
this.rotation = var3;
}
class="kw">protected class="kw">abstract double getHeight(int var1, double var2, double var4, double var6, double var8, CaveType var10, ShapeDistortion var11);
@Nonnull
@Override
class="kw">public Vector3d getStart() {
class="kw">return new Vector3d(this.o.x, this.getHighBoundY(), this.o.z);
}
@Nonnull
@Override
class="kw">public Vector3d getEnd() {
class="kw">return new Vector3d(this.o.x, this.getLowBoundY(), this.o.z);
}
@Override
class="kw">public double getHeightAtProjection(int var1, double var2, double var4, double var6, double var8, CaveType var10, ShapeDistortion var11) {
double var12 = var2 - this.o.x;
double var14 = var4 - this.o.z;
var2 = this.o.x + this.rotation.rotateX(var12, 0.0, var14);
var4 = this.o.z + this.rotation.rotateZ(var12, 0.0, var14);
class="kw">return this.getHeight(var1, var2, var4, var6, var8, var10, var11);
}
@Override
class="kw">public double getFloor(double var1, double var3, double var5, double var7) {
double var9 = var1 - this.o.x;
double var11 = var3 - this.o.z;
double var13 = this.rotation.rotateY(var9, -var7, var11);
class="kw">return var5 + var13;
}
@Override
class="kw">public double getCeiling(double var1, double var3, double var5, double var7) {
double var9 = var1 - this.o.x;
double var11 = var3 - this.o.z;
double var13 = this.rotation.rotateY(var9, var7, var11);
class="kw">return var5 + var13;
}
class="kw">private class="kw">static double maxX(@Nonnull CoordinateRotator var0, double var1, double var3, double var5) {
double var7 = Math.abs(var0.rotateX(var1, var3, var5));
double var9 = Math.abs(var0.rotateX(-var1, var3, var5));
class="kw">return MathUtil.maxValue(var7, var9);
}
class="kw">private class="kw">static double maxY(@Nonnull CoordinateRotator var0, double var1, double var3, double var5) {
double var7 = Math.abs(var0.rotateY(var1, var3, var5));
double var9 = Math.abs(var0.rotateY(var1, -var3, var5));
class="kw">return Math.max(var7, var9);
}
class="kw">private class="kw">static double maxZ(@Nonnull CoordinateRotator var0, double var1, double var3, double var5) {
double var7 = Math.abs(var0.rotateZ(var1, var3, var5));
double var9 = Math.abs(var0.rotateZ(var1, var3, -var5));
class="kw">return MathUtil.maxValue(var7, var9);
}
class="kw">protected class="kw">abstract class="kw">static class Factory class="kw">implements DistortedShape.Factory {
class="kw">protected Factory() {
}
@Override
class="kw">public DistortedShape create(
Vector3d var1,
@Nonnull Vector3d var2,
double var3,
double var5,
double var7,
double var9,
double var11,
double var13,
double var15,
GeneralNoise.InterpolationFunction var17
) {
double var24 = 1.0 / var2.length();
double var18 = var2.x * var24;
double var20 = var2.y * var24;
double var22 = var2.z * var24;
double var26 = TrigMathUtil.atan2(var18, var22);
double var28 = TrigMathUtil.asin(-var20);
class="kw">return this.createShape(var1, var2, var26, var28, var5, var7, var3, var17);
}
class="kw">protected class="kw">abstract DistortedShape createShape(
Vector3d var1, Vector3d var2, double var3, double var5, double var7, double var9, double var11, GeneralNoise.InterpolationFunction var13
);
}
}