TetrahedronCaveNodeShape class
Пакет: com.hypixel.hytale.server.worldgen.cave.shape
Файл: com/hypixel/hytale/server/worldgen/cave/shape/TetrahedronCaveNodeShape.java
extends: AbstractCaveNodeShape
implements: IWorldBounds
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
|
double |
var11 |
|
double |
var13 |
|
double |
var15 |
|
double |
var17 |
|
Vector3d |
var2 |
|
Vector3d |
var3 |
|
int |
var6 |
|
int |
var6 |
|
double |
var7 |
|
double |
var9 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
TetrahedronCaveNodeShapeGeneratorpublic TetrahedronCaveNodeShapeGenerator() |
abstract |
return new |
Vector3dreturn new Vector3d(this.o) |
static |
boolean |
determineboolean determine(@Nonnull Vector3d var0, @Nonnull Vector3d var1, double var2, double var4, double var6) |
static |
boolean |
determineboolean determine(double var0, double var2, double var4, @Nonnull Vector3d var6, double var7, double var9, double var11) |
abstract |
return |
determinereturn determine(var0.x, var0.y, var0.z, var1, var2, var4, var6) |
abstract |
|
for for(var6 = this.getLowBoundY() |
abstract |
|
for for(var6 = this.getHighBoundY() |
|
public CaveNodeShape |
generateCaveNodeShapepublic CaveNodeShape generateCaveNodeShape(Random var1, CaveType var2, CaveNode var3, CaveNodeType.CaveNodeChildEntry var4, @Nonnull Vector3d var5, float var6, float var7) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.cave.shape;
class="kw">import com.hypixel.hytale.server.worldgen.cave.CaveNodeType;
class="kw">import com.hypixel.hytale.server.worldgen.cave.CaveType;
class="kw">import com.hypixel.hytale.server.worldgen.cave.element.CaveNode;
class="kw">import com.hypixel.hytale.server.worldgen.util.bounds.IWorldBounds;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
@Deprecated
class="kw">public class TetrahedronCaveNodeShape class="kw">extends AbstractCaveNodeShape class="kw">implements IWorldBounds {
@Nonnull
class="kw">private class="kw">final Vector3d o;
@Nonnull
class="kw">private class="kw">final Vector3d a;
@Nonnull
class="kw">private class="kw">final Vector3d b;
@Nonnull
class="kw">private class="kw">final Vector3d c;
@Nonnull
class="kw">private class="kw">final Vector3d n1;
@Nonnull
class="kw">private class="kw">final Vector3d n2;
@Nonnull
class="kw">private class="kw">final Vector3d n3;
@Nonnull
class="kw">private class="kw">final Vector3d n4;
class="kw">private class="kw">final int lowBoundX;
class="kw">private class="kw">final int lowBoundY;
class="kw">private class="kw">final int lowBoundZ;
class="kw">private class="kw">final int highBoundX;
class="kw">private class="kw">final int highBoundY;
class="kw">private class="kw">final int highBoundZ;
class="kw">public TetrahedronCaveNodeShape(@Nonnull Vector3d var1) {
this.o = var1;
this.a = new Vector3d(10.0, 0.0, 0.0);
this.b = new Vector3d(0.0, 10.0, 0.0);
this.c = new Vector3d(0.0, 0.0, 10.0);
this.n1 = this.c.cross(this.b, new Vector3d());
this.n2 = this.b.cross(this.a, new Vector3d());
this.n3 = this.a.cross(this.c, new Vector3d());
Vector3d var2 = new Vector3d(this.a).sub(this.b);
Vector3d var3 = new Vector3d(this.c).sub(this.b);
this.n4 = var3.cross(var2, new Vector3d());
this.lowBoundX = (int)(var1.x - 10.0);
this.lowBoundY = (int)(var1.y - 10.0);
this.lowBoundZ = (int)(var1.z - 10.0);
this.highBoundX = (int)(var1.x + 10.0);
this.highBoundY = (int)(var1.y + 10.0);
this.highBoundZ = (int)(var1.z + 10.0);
}
@Nonnull
@Override
class="kw">public Vector3d getStart() {
class="kw">return new Vector3d(this.o);
}
@Nonnull
@Override
class="kw">public Vector3d getEnd() {
class="kw">return new Vector3d(this.o).add(this.c);
}
@Nonnull
@Override
class="kw">public Vector3d getAnchor(@Nonnull Vector3d var1, double var2, double var4, double var6) {
class="kw">return CaveNodeShapeUtils.getBoxAnchor(var1, this, var2, var4, var6);
}
@Nonnull
@Override
class="kw">public IWorldBounds getBounds() {
class="kw">return this;
}
@Override
class="kw">public int getLowBoundX() {
class="kw">return this.lowBoundX;
}
@Override
class="kw">public int getLowBoundZ() {
class="kw">return this.lowBoundZ;
}
@Override
class="kw">public int getHighBoundX() {
class="kw">return this.highBoundX;
}
@Override
class="kw">public int getHighBoundZ() {
class="kw">return this.highBoundZ;
}
@Override
class="kw">public int getLowBoundY() {
class="kw">return this.lowBoundY;
}
@Override
class="kw">public int getHighBoundY() {
class="kw">return this.highBoundY;
}
@Override
class="kw">public boolean shouldReplace(int var1, double var2, double var4, int var6) {
if (determine(this.o, this.n1, var2, var6, var4) && determine(this.o, this.n2, var2, var6, var4) && determine(this.o, this.n3, var2, var6, var4)) {
double var7 = this.o.x + this.b.x;
double var9 = this.o.y + this.b.y;
double var11 = this.o.z + this.b.z;
class="kw">return true;
} else {
class="kw">return false;
}
}
@Override
class="kw">public double getFloorPosition(int var1, double var2, double var4) {
int var6;
for (var6 = this.getLowBoundY(); var6 < this.getHighBoundY(); var6++) {
if (this.shouldReplace(var1, var2, var4, var6)) {
class="kw">return var6;
}
}
class="kw">return var6;
}
@Override
class="kw">public double getCeilingPosition(int var1, double var2, double var4) {
int var6;
for (var6 = this.getHighBoundY(); var6 < this.getLowBoundY(); var6--) {
if (this.shouldReplace(var1, var2, var4, var6)) {
class="kw">return var6;
}
}
class="kw">return var6;
}
class="kw">private class="kw">static boolean determine(@Nonnull Vector3d var0, @Nonnull Vector3d var1, double var2, double var4, double var6) {
class="kw">return determine(var0.x, var0.y, var0.z, var1, var2, var4, var6);
}
class="kw">private class="kw">static boolean determine(double var0, double var2, double var4, @Nonnull Vector3d var6, double var7, double var9, double var11) {
double var13 = (var7 - var0) * var6.x;
double var15 = (var9 - var2) * var6.y;
double var17 = (var11 - var4) * var6.z;
class="kw">return var13 + var15 + var17 >= 0.0;
}
class="kw">public class="kw">static class TetrahedronCaveNodeShapeGenerator class="kw">implements CaveNodeShapeEnum.CaveNodeShapeGenerator {
class="kw">public TetrahedronCaveNodeShapeGenerator() {
}
@Nonnull
@Override
class="kw">public CaveNodeShape generateCaveNodeShape(
Random var1, CaveType var2, CaveNode var3, CaveNodeType.CaveNodeChildEntry var4, @Nonnull Vector3d var5, float var6, float var7
) {
class="kw">return new TetrahedronCaveNodeShape(var5);
}
}
}