BoundingBox class
Пакет: com.hypixel.hytale.server.core.modules.entity.component
Файл: com/hypixel/hytale/server/core/modules/entity/component/BoundingBox.java
implements: Component<EntityStore>
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
HytaleLogger |
LOGGER |
|
BoundingBox |
var1 |
|
HashMap |
var2 |
|
DetailBox[] |
var5 |
|
DetailBox[] |
var6 |
|
|
var6 |
Методы (10)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
applyRotationvoid applyRotation(float var1, float var2, float var3) |
|
|
for for(int var7 = 0; var7 < var5.length; var7++) |
static |
ComponentType<EntityStore, BoundingBox> |
getComponentTypeComponentType<EntityStore, BoundingBox> getComponentType() |
public |
Map<String, DetailBox[]> |
getDetailBoxesMap<String, DetailBox[]> getDetailBoxes() |
|
|
if if(this.baseModelBox != null) |
|
|
if if(this.detailBoxes != null) |
|
|
if if(var5 != null) |
public |
void |
setBaseModelBoxvoid setBaseModelBox(@Nullable Box var1) |
public |
void |
setBoundingBoxvoid setBoundingBox(@Nonnull Box var1) |
public |
void |
setDetailBoxesvoid setDetailBoxes(Map<String, DetailBox[]> var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.component;
class="kw">import com.google.common.flogger.StackSize;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.DetailBox;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class BoundingBox class="kw">implements Component<EntityStore> {
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">private class="kw">final Box boundingBox = new Box();
@Nullable
class="kw">private Box baseModelBox;
class="kw">protected Map<String, DetailBox[]> detailBoxes;
class="kw">public class="kw">static ComponentType<EntityStore, BoundingBox> getComponentType() {
class="kw">return EntityModule.get().getBoundingBoxComponentType();
}
class="kw">public BoundingBox() {
}
class="kw">public BoundingBox(@Nonnull Box var1) {
this.setBoundingBox(var1);
}
@Nonnull
class="kw">public Box getBoundingBox() {
class="kw">return this.boundingBox;
}
class="kw">public void setBoundingBox(@Nonnull Box var1) {
this.boundingBox.assign(var1);
}
class="kw">public void setBaseModelBox(@Nullable Box var1) {
this.baseModelBox = var1 != null ? var1.clone() : null;
}
class="kw">public void applyRotation(float var1, float var2, float var3) {
if (this.baseModelBox != null) {
if (Float.isFinite(var1) && Float.isFinite(var2) && Float.isFinite(var3)) {
this.boundingBox.assign(this.baseModelBox.enclosingRotatedAABB(var1, var2, var3));
} else {
((HytaleLogger.Api)((HytaleLogger.Api)LOGGER.at(Level.SEVERE).atMostEvery(1, TimeUnit.MINUTES)).withStackTrace(StackSize.MEDIUM))
.log("Non-finite entity rotation reached applyRotation (pitch=%s, yaw=%s, roll=%s); leaving bounding box unrotated", var1, var2, var3);
this.boundingBox.assign(this.baseModelBox);
}
}
}
class="kw">public Map<String, DetailBox[]> getDetailBoxes() {
class="kw">return this.detailBoxes;
}
class="kw">public void setDetailBoxes(Map<String, DetailBox[]> var1) {
this.detailBoxes = var1;
}
@Nonnull
@Override
class="kw">public Component<EntityStore> clone() {
BoundingBox var1 = new BoundingBox(this.boundingBox);
var1.baseModelBox = this.baseModelBox != null ? this.baseModelBox.clone() : null;
if (this.detailBoxes != null) {
HashMap var2 = new HashMap<>(this.detailBoxes.size());
for (Entry var4 : this.detailBoxes.entrySet()) {
DetailBox[] var5 = var4.getValue();
DetailBox[] var6 = null;
if (var5 != null) {
var6 = new DetailBox[var5.length];
for (int var7 = 0; var7 < var5.length; var7++) {
var6[var7] = var5[var7] != null ? new DetailBox(var5[var7]) : null;
}
}
var2.put(var4.getKey(), var6);
}
var1.detailBoxes = var2;
}
class="kw">return var1;
}
}