EmptyLineCaveNodeShapeGenerator class

Пакет: com.hypixel.hytale.server.worldgen.cave.shape

Файл: com/hypixel/hytale/server/worldgen/cave/shape/EmptyLineCaveNodeShape.java

implements: CaveNodeShapeEnum.CaveNodeShapeGenerator

Поля (3)

МодификаторыТипИмя
private final IDoubleRange length
Vector3d var10
double var8

Методы (2)

МодификаторыВозвратСигнатура
abstract return new EmptyLineCaveNodeShapereturn new EmptyLineCaveNodeShape(var5, var10)
public CaveNodeShape generateCaveNodeShapepublic CaveNodeShape generateCaveNodeShape(@Nonnull Random var1, CaveType var2, CaveNode var3, CaveNodeType.CaveNodeChildEntry var4, Vector3d var5, float var6, float var7)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.cave.shape;

class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import com.hypixel.hytale.procedurallib.supplier.IDoubleRange;
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;

class="kw">public class EmptyLineCaveNodeShape class="kw">extends AbstractCaveNodeShape class="kw">implements IWorldBounds {
   class="kw">private class="kw">final Vector3d o;
   class="kw">private class="kw">final Vector3d v;

   class="kw">public EmptyLineCaveNodeShape(Vector3d var1, Vector3d var2) {
      this.o = var1;
      this.v = var2;
   }

   @Nonnull
   @Override
   class="kw">public Vector3d getStart() {
      class="kw">return new Vector3d(this.o);
   }

   @Nonnull
   @Override
   class="kw">public Vector3d getEnd() {
      double var1 = this.o.x + this.v.x;
      double var3 = this.o.y + this.v.y;
      double var5 = this.o.z + this.v.z;
      class="kw">return new Vector3d(var1, var3, var5);
   }

   @Nonnull
   @Override
   class="kw">public Vector3d getAnchor(@Nonnull Vector3d var1, double var2, double var4, double var6) {
      class="kw">return CaveNodeShapeUtils.getLineAnchor(var1, this.o, this.v, var2);
   }

   @Nonnull
   @Override
   class="kw">public IWorldBounds getBounds() {
      class="kw">return this;
   }

   @Override
   class="kw">public int getLowBoundX() {
      class="kw">return 0;
   }

   @Override
   class="kw">public int getLowBoundZ() {
      class="kw">return 0;
   }

   @Override
   class="kw">public int getHighBoundX() {
      class="kw">return 0;
   }

   @Override
   class="kw">public int getHighBoundZ() {
      class="kw">return 0;
   }

   @Override
   class="kw">public int getLowBoundY() {
      class="kw">return 0;
   }

   @Override
   class="kw">public int getHighBoundY() {
      class="kw">return 0;
   }

   @Override
   class="kw">public boolean shouldReplace(int var1, double var2, double var4, int var6) {
      class="kw">return false;
   }

   @Override
   class="kw">public double getFloorPosition(int var1, double var2, double var4) {
      class="kw">return -1.0;
   }

   @Override
   class="kw">public double getCeilingPosition(int var1, double var2, double var4) {
      class="kw">return -1.0;
   }

   @Override
   class="kw">public boolean hasGeometry() {
      class="kw">return false;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "EmptyLineCaveNodeShape{o=" + this.o + ", v=" + this.v + "}";
   }

   class="kw">public class="kw">static class EmptyLineCaveNodeShapeGenerator class="kw">implements CaveNodeShapeEnum.CaveNodeShapeGenerator {
      class="kw">private class="kw">final IDoubleRange length;

      class="kw">public EmptyLineCaveNodeShapeGenerator(IDoubleRange var1) {
         this.length = var1;
      }

      @Nonnull
      @Override
      class="kw">public CaveNodeShape generateCaveNodeShape(
         @Nonnull Random var1, CaveType var2, CaveNode var3, CaveNodeType.CaveNodeChildEntry var4, Vector3d var5, float var6, float var7
      ) {
         double var8 = this.length.getValue(var1.nextDouble());
         Vector3d var10 = new Vector3d(TrigMathUtil.sin(var7) * TrigMathUtil.cos(var6), TrigMathUtil.cos(var7), TrigMathUtil.sin(var7) * TrigMathUtil.sin(var6))
            .mul(var8);
         class="kw">return new EmptyLineCaveNodeShape(var5, var10);
      }
   }
}