SensorEntityPrioritiserDefault class

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

Файл: com/hypixel/hytale/server/npc/corecomponents/entity/prioritisers/SensorEntityPrioritiserDefault.java

implements: ISensorEntityPrioritiser

Поля (13)

МодификаторыТипИмя
final ComponentType<EntityStore, TransformComponent> TRANSFORM_COMPONENT_TYPE
private Ref<EntityStore> target
Vector3d var10
Vector3d var11
double var12
var12
var12
double var14
var14
var14
MotionController var16
TransformComponent var8
TransformComponent var9

Методы (7)

МодификаторыВозвратСигнатура
private DefaultPrioritiserprivate DefaultPrioritiser()
public void cleanuppublic void cleanup()
public Ref<EntityStore> getHighestPriorityTargetpublic Ref<EntityStore> getHighestPriorityTarget()
if if(var6)
if if(this.target == null)
public void initpublic void init(ExecutionSupport var1)
public boolean testpublic boolean test(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ComponentAccessor<EntityStore> var3)

Исходный код

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

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
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.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.IEntityFilter;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.ISensorEntityPrioritiser;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.movement.controllers.MotionController;
class="kw">import com.hypixel.hytale.server.npc.util.IEntityByPriorityFilter;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class SensorEntityPrioritiserDefault class="kw">implements ISensorEntityPrioritiser {
   class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, TransformComponent> TRANSFORM_COMPONENT_TYPE = TransformComponent.getComponentType();
   class="kw">private class="kw">final SensorEntityPrioritiserDefault.DefaultPrioritiser playerPrioritiser = new SensorEntityPrioritiserDefault.DefaultPrioritiser();
   class="kw">private class="kw">final SensorEntityPrioritiserDefault.DefaultPrioritiser npcPrioritiser = new SensorEntityPrioritiserDefault.DefaultPrioritiser();

   class="kw">public SensorEntityPrioritiserDefault() {
   }

   @Nonnull
   @Override
   class="kw">public IEntityByPriorityFilter getNPCPrioritiser() {
      class="kw">return this.npcPrioritiser;
   }

   @Nonnull
   @Override
   class="kw">public IEntityByPriorityFilter getPlayerPrioritiser() {
      class="kw">return this.playerPrioritiser;
   }

   @Nonnull
   @Override
   class="kw">public Ref<EntityStore> pickTarget(
      Ref<EntityStore> var1,
      @Nonnull ExecutionSupport var2,
      @Nonnull Vector3d var3,
      @Nonnull Ref<EntityStore> var4,
      @Nonnull Ref<EntityStore> var5,
      boolean var6,
      @Nonnull Store<EntityStore> var7
   ) {
      TransformComponent var8 = var7.getComponent(var4, TRANSFORM_COMPONENT_TYPE);
      assert var8 != null;
      TransformComponent var9 = var7.getComponent(var5, TRANSFORM_COMPONENT_TYPE);
      assert var9 != null;
      Vector3d var10 = var8.getPosition();
      Vector3d var11 = var9.getPosition();
      double var12;
      double var14;
      if (var6) {
         MotionController var16 = var2.getMotionContextSupport().getActiveMotionController();
         var12 = var16.getSquaredDistance(var3, var10, true);
         var14 = var16.getSquaredDistance(var3, var11, true);
      } else {
         var12 = var3.distanceSquared(var10);
         var14 = var3.distanceSquared(var11);
      }

      class="kw">return var12 <= var14 ? var4 : var5;
   }

   @Override
   class="kw">public boolean providesFilters() {
      class="kw">return false;
   }

   @Override
   class="kw">public void buildProvidedFilters(List<IEntityFilter> var1) {
   }

   class="kw">public class="kw">static class DefaultPrioritiser class="kw">implements IEntityByPriorityFilter {
      @Nullable
      class="kw">private Ref<EntityStore> target;

      class="kw">private DefaultPrioritiser() {
      }

      @Override
      class="kw">public void init(ExecutionSupport var1) {
      }

      @Nullable
      @Override
      class="kw">public Ref<EntityStore> getHighestPriorityTarget() {
         class="kw">return this.target;
      }

      @Override
      class="kw">public void cleanup() {
         this.target = null;
      }

      class="kw">public boolean test(@Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ComponentAccessor<EntityStore> var3) {
         if (this.target == null) {
            this.target = var2;
         }

         class="kw">return true;
      }
   }
}