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