EntityFilterViewSector class
Пакет: com.hypixel.hytale.server.npc.corecomponents.entity.filters
Файл: com/hypixel/hytale/server/npc/corecomponents/entity/filters/EntityFilterViewSector.java
extends: EntityFilterBase
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
COST |
|
TransformComponent |
var5 |
|
Vector3d |
var6 |
|
HeadRotation |
var7 |
|
TransformComponent |
var8 |
|
Vector3d |
var9 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
float |
getViewAnglefloat getViewAngle() |
|
|
if if(this.viewCone == 0.0F) |
Исходный код
Показать/скрыть
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.server.core.modules.entity.component.HeadRotation;
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.BuilderEntityFilterViewSector;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.util.NPCPhysicsMath;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class EntityFilterViewSector class="kw">extends EntityFilterBase {
class="kw">public class="kw">static class="kw">final int COST = 300;
class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, TransformComponent> TRANSFORM_COMPONENT_TYPE = TransformComponent.getComponentType();
class="kw">protected class="kw">final float viewCone;
class="kw">public EntityFilterViewSector(@Nonnull BuilderEntityFilterViewSector var1, @Nonnull BuilderSupport var2) {
this.viewCone = var1.getViewSectorRadians(var2);
}
@Override
class="kw">public boolean matchesEntity(
@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ExecutionSupport var3, @Nonnull Store<EntityStore> var4
) {
if (this.viewCone == 0.0F) {
class="kw">return true;
}
TransformComponent var5 = var4.getComponent(var1, TRANSFORM_COMPONENT_TYPE);
assert var5 != null;
Vector3d var6 = var5.getPosition();
HeadRotation var7 = var4.getComponent(var1, HeadRotation.getComponentType());
assert var7 != null;
TransformComponent var8 = var4.getComponent(var2, TRANSFORM_COMPONENT_TYPE);
assert var8 != null;
Vector3d var9 = var8.getPosition();
class="kw">return NPCPhysicsMath.inViewSector(var6.x(), var6.z(), var7.getRotation().yaw(), this.viewCone, var9.x(), var9.z());
}
@Override
class="kw">public int cost() {
class="kw">return 300;
}
class="kw">public float getViewAngle() {
class="kw">return this.viewCone;
}
}