DefaultPrioritiser class

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

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

implements: IEntityByPriorityFilter

Поля (1)

МодификаторыТипИмя
private Ref<EntityStore> target

Методы (5)

МодификаторыВозвратСигнатура
public void cleanuppublic void cleanup()
public Ref<EntityStore> getHighestPriorityTargetpublic Ref<EntityStore> getHighestPriorityTarget()
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;
      }
   }
}