CylinderShape class
Пакет: com.hypixel.hytale.builtin.triggervolumes.shape
Файл: com/hypixel/hytale/builtin/triggervolumes/shape/CylinderShape.java
extends: TriggerVolumeShape
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
|
double |
var1 |
|
double |
var1 |
|
double |
var11 |
|
double |
var13 |
|
double |
var3 |
|
double |
var3 |
|
double |
var4 |
|
double |
var5 |
|
double |
var5 |
|
double |
var6 |
|
double |
var7 |
|
double |
var8 |
|
double |
var9 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
double |
getHeightdouble getHeight() |
public |
double |
getRadiusdouble getRadius() |
|
|
if if(var9 * var9 + var11 * var11 > this.radius * this.radius) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.shape;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.YawRotation;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class CylinderShape class="kw">extends TriggerVolumeShape {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<CylinderShape> CODEC = BuilderCodec.builder(CylinderShape.class, CylinderShape::new, BASE_CODEC)
.append(new KeyedCodec<>("Center", Vector3dUtil.CODEC), (var0, var1) -> var0.center = var1, var0 -> var0.center)
.add()
.append(new KeyedCodec<>("Radius", Codec.DOUBLE), (var0, var1) -> var0.radius = var1, var0 -> var0.radius)
.add()
.append(new KeyedCodec<>("Height", Codec.DOUBLE), (var0, var1) -> var0.height = var1, var0 -> var0.height)
.add()
.build();
class="kw">private Vector3d center = new Vector3d();
class="kw">private double radius;
class="kw">private double height;
class="kw">public CylinderShape() {
}
class="kw">public CylinderShape(@Nonnull Vector3d var1, double var2, double var4) {
this.center = var1;
this.radius = var2;
this.height = var4;
}
@Override
class="kw">public boolean contains(@Nonnull Vector3d var1, @Nonnull Vector3d var2) {
double var3 = var1.x() + this.center.x();
double var5 = var1.z() + this.center.z();
double var7 = var1.y() + this.center.y();
double var9 = var2.x() - var3;
double var11 = var2.z() - var5;
if (var9 * var9 + var11 * var11 > this.radius * this.radius) {
class="kw">return false;
}
double var13 = var2.y();
class="kw">return var13 >= var7 && var13 <= var7 + this.height;
}
@Override
class="kw">public double getBoundingRadius() {
double var1 = this.height * 0.5;
class="kw">return Math.sqrt(this.radius * this.radius + var1 * var1);
}
@Override
class="kw">public double getMaxDistanceFromOrigin() {
double var1 = this.height * 0.5;
double var3 = this.center.y() + var1;
double var5 = Math.sqrt(this.center.x() * this.center.x() + var3 * var3 + this.center.z() * this.center.z());
class="kw">return var5 + Math.sqrt(this.radius * this.radius + var1 * var1);
}
@Override
class="kw">public void getWorldAABB(@Nonnull Vector3d var1, @Nonnull Vector3d var2, @Nonnull Vector3d var3) {
double var4 = var1.x() + this.center.x();
double var6 = var1.y() + this.center.y();
double var8 = var1.z() + this.center.z();
var2.set(var4 - this.radius, var6, var8 - this.radius);
var3.set(var4 + this.radius, var6 + this.height, var8 + this.radius);
}
@Override
class="kw">public void rotateInPlace(float var1) {
if (!(Math.abs(var1) < 1.0E-6F)) {
YawRotation.rotate(this.center, var1);
}
}
@Nonnull
class="kw">public CylinderShape copy() {
class="kw">return new CylinderShape(new Vector3d(this.center), this.radius, this.height);
}
@Nonnull
class="kw">public Vector3d getCenter() {
class="kw">return this.center;
}
class="kw">public double getRadius() {
class="kw">return this.radius;
}
class="kw">public double getHeight() {
class="kw">return this.height;
}
}