EntityFilterHeightDifference class

Пакет: com.hypixel.hytale.server.npc.corecomponents.entity.filters

Файл: com/hypixel/hytale/server/npc/corecomponents/entity/filters/EntityFilterHeightDifference.java

extends: EntityFilterBase

Поля (13)

МодификаторыТипИмя
final int COST
double var10
Box var12
double var13
double var15
TransformComponent var17
double var18
double[] var3
BoundingBox var5
TransformComponent var6
ModelComponent var7
float var8
Vector3d var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var5 == null)
if if(this.useEyePosition)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.entity.filters;

class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.BoundingBox;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.EntityFilterBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.entity.filters.builders.BuilderEntityFilterHeightDifference;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class EntityFilterHeightDifference class="kw">extends EntityFilterBase {
   class="kw">public class="kw">static class="kw">final int COST = 200;
   class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, TransformComponent> TRANSFORM_COMPONENT_TYPE = TransformComponent.getComponentType();
   class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, ModelComponent> MODEL_COMPONENT_TYPE = ModelComponent.getComponentType();
   class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, BoundingBox> BOUNDING_BOX_COMPONENT_TYPE = BoundingBox.getComponentType();
   class="kw">protected class="kw">final double minHeightDifference;
   class="kw">protected class="kw">final double maxHeightDifference;
   class="kw">protected class="kw">final boolean useEyePosition;

   class="kw">public EntityFilterHeightDifference(@Nonnull BuilderEntityFilterHeightDifference var1, @Nonnull BuilderSupport var2) {
      double[] var3 = var1.getHeightDifference(var2);
      this.minHeightDifference = var3[0];
      this.maxHeightDifference = var3[1];
      this.useEyePosition = var1.isUseEyePosition(var2);
   }

   @Override
   class="kw">public boolean matchesEntity(
      @Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ExecutionSupport var3, @Nonnull Store<EntityStore> var4
   ) {
      BoundingBox var5 = var4.getComponent(var2, BOUNDING_BOX_COMPONENT_TYPE);
      if (var5 == null) {
         class="kw">return false;
      }

      TransformComponent var6 = var4.getComponent(var2, TRANSFORM_COMPONENT_TYPE);
      assert var6 != null;
      ModelComponent var7 = var4.getComponent(var2, MODEL_COMPONENT_TYPE);
      float var8 = var7 != null ? var7.getModel().getEyeHeight() : 0.0F;
      Vector3d var9 = var6.getPosition();
      double var10 = var9.y;
      Box var12 = var5.getBoundingBox();
      double var13 = var10 + var12.min.y;
      double var15 = var10 + var12.max.y;
      TransformComponent var17 = var4.getComponent(var1, TRANSFORM_COMPONENT_TYPE);
      assert var17 != null;
      double var18 = var17.getPosition().y;
      if (this.useEyePosition) {
         var18 += var8;
      }

      class="kw">return var13 - var18 < this.maxHeightDifference && var15 - var18 > this.minHeightDifference;
   }

   @Override
   class="kw">public int cost() {
      class="kw">return 200;
   }
}