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 + "}";
}
}