SensorEntityEvent class

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

Файл: com/hypixel/hytale/server/npc/corecomponents/world/SensorEntityEvent.java

extends: SensorEvent

Поля (11)

МодификаторыТипИмя
break
break
final boolean flockOnly
EntityEventType var3
PlayerEntityEventSupport var3
NPCEntityEventSupport var3
int var4
TransformComponent var4
TransformComponent var4
Vector3d var5
Vector3d var5

Методы (2)

МодификаторыВозвратСигнатура
abstract super super(var1, var2)
switch switch(this.searchType)

Исходный код

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

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.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.blackboard.view.event.entity.EntityEventType;
class="kw">import com.hypixel.hytale.server.npc.components.messaging.NPCEntityEventSupport;
class="kw">import com.hypixel.hytale.server.npc.components.messaging.PlayerEntityEventSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.world.builders.BuilderSensorEntityEvent;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class SensorEntityEvent class="kw">extends SensorEvent {
   class="kw">private class="kw">final boolean flockOnly;

   class="kw">public SensorEntityEvent(@Nonnull BuilderSensorEntityEvent var1, @Nonnull BuilderSupport var2) {
      super(var1, var2);
      this.flockOnly = var1.isFlockOnly(var2);
      EntityEventType var3 = var1.getEventType(var2);
      int var4 = var1.getNPCGroup(var2);
      class="kw">switch (this.searchType) {
         case PlayerFirst:
         case NpcFirst:
            this.playerEventMessageSlot = var2.getEntityEventSlot(var3, var4, this.range, true);
            this.npcEventMessageSlot = var2.getEntityEventSlot(var3, var4, this.range, false);
            break;
         case PlayerOnly:
            this.playerEventMessageSlot = var2.getEntityEventSlot(var3, var4, this.range, true);
            this.npcEventMessageSlot = -1;
            break;
         case NpcOnly:
            this.playerEventMessageSlot = -1;
            this.npcEventMessageSlot = var2.getEntityEventSlot(var3, var4, this.range, false);
      }
   }

   @Nullable
   @Override
   class="kw">protected Ref<EntityStore> getPlayerTarget(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
      PlayerEntityEventSupport var3 = var2.getComponent(var1, PlayerEntityEventSupport.getComponentType());
      assert var3 != null;
      TransformComponent var4 = var2.getComponent(var1, TRANSFORM_COMPONENT_TYPE);
      assert var4 != null;
      Vector3d var5 = var4.getPosition();
      class="kw">return !var3.hasFlockMatchingMessage(this.playerEventMessageSlot, var5, this.range, this.flockOnly)
         ? null
         : var3.pollMessage(this.playerEventMessageSlot);
   }

   @Nullable
   @Override
   class="kw">protected Ref<EntityStore> getNpcTarget(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
      NPCEntityEventSupport var3 = var2.getComponent(var1, NPCEntityEventSupport.getComponentType());
      assert var3 != null;
      TransformComponent var4 = var2.getComponent(var1, TRANSFORM_COMPONENT_TYPE);
      assert var4 != null;
      Vector3d var5 = var4.getPosition();
      class="kw">return !var3.hasFlockMatchingMessage(this.npcEventMessageSlot, var5, this.range, this.flockOnly) ? null : var3.pollMessage(this.npcEventMessageSlot);
   }
}