Cylinder class

Пакет: com.hypixel.hytale.math.shape

Файл: com/hypixel/hytale/math/shape/Cylinder.java

implements: Shape

Поля (4)

МодификаторыТипИмя
public double height
double var7
double var7
Box var9

Методы (3)

МодификаторыВозвратСигнатура
public double getHeightdouble getHeight()
public double getRadiusXdouble getRadiusX()
public double getRadiusZdouble getRadiusZ()

Исходный код

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

class="kw">import com.hypixel.hytale.function.predicate.TriIntObjPredicate;
class="kw">import com.hypixel.hytale.function.predicate.TriIntPredicate;
class="kw">import com.hypixel.hytale.math.block.BlockCylinderUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import javax.annotation.Nonnull;

class="kw">public class Cylinder class="kw">implements Shape {
   class="kw">public double height;
   class="kw">public double radiusX;
   class="kw">public double radiusZ;

   class="kw">public Cylinder() {
   }

   class="kw">public Cylinder(double var1, double var3, double var5) {
      this.height = var1;
      this.radiusX = var3;
      this.radiusZ = var5;
   }

   class="kw">public double getRadiusX() {
      class="kw">return this.radiusX;
   }

   class="kw">public double getRadiusZ() {
      class="kw">return this.radiusZ;
   }

   class="kw">public double getHeight() {
      class="kw">return this.height;
   }

   @Nonnull
   class="kw">public Cylinder assign(double var1) {
      this.radiusX = var1;
      this.radiusZ = var1;
      class="kw">return this;
   }

   @Override
   class="kw">public boolean containsPosition(double var1, double var3, double var5) {
      if (!(var3 > this.height) && !(var3 < 0.0)) {
         double var7 = var1 * var1 / (this.radiusX * this.radiusX) + var5 * var5 / (this.radiusZ * this.radiusZ);
         class="kw">return var7 <= 1.0;
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public boolean forEachBlock(double var1, double var3, double var5, double var7, @Nonnull TriIntPredicate var9) {
      class="kw">return BlockCylinderUtil.forEachBlock(
         MathUtil.floor(var1),
         MathUtil.floor(var3),
         MathUtil.floor(var5),
         MathUtil.floor(this.radiusX + var7),
         MathUtil.floor(this.height + var7),
         MathUtil.floor(this.radiusZ + var7),
         null,
         (var1x, var2, var3x, var4) -> var9.test(var1x, var2, var3x)
      );
   }

   @Override
   class="kw">public <T> boolean forEachBlock(double var1, double var3, double var5, double var7, T var9, @Nonnull TriIntObjPredicate<T> var10) {
      class="kw">return BlockCylinderUtil.forEachBlock(
         MathUtil.floor(var1),
         MathUtil.floor(var3),
         MathUtil.floor(var5),
         MathUtil.floor(this.radiusX + var7),
         MathUtil.floor(this.height + var7),
         MathUtil.floor(this.radiusZ + var7),
         var9,
         var10
      );
   }

   @Override
   class="kw">public void expand(double var1) {
      this.radiusX += var1;
      this.radiusZ += var1;
   }

   @Nonnull
   @Override
   class="kw">public Box getBox(double var1, double var3, double var5) {
      double var7 = Math.max(this.radiusX, this.radiusZ);
      Box var9 = new Box();
      var9.min.set(var1 - var7, var3, var5 - var7);
      var9.max.set(var1 + var7, var3 + this.height, var5 + var7);
      class="kw">return var9;
   }

   @Nonnull
   class="kw">protected Cylinder clone() {
      class="kw">return new Cylinder(this.height, this.radiusX, this.radiusZ);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Cylinder{height=" + this.height + ", radiusX=" + this.radiusX + ", radiusZ=" + this.radiusZ + "}";
   }
}