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