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