BuilderEntityFilterSpotsMe class

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

Файл: com/hypixel/hytale/server/npc/corecomponents/entity/filters/builders/BuilderEntityFilterSpotsMe.java

extends: BuilderEntityFilterBase

Поля (1)

МодификаторыТипИмя
protected float viewAngle

Методы (4)

МодификаторыВозвратСигнатура
abstract return new EntityFilterSpotsMereturn new EntityFilterSpotsMe(this)
public float getViewAnglefloat getViewAngle()
public ViewTest getViewTestViewTest getViewTest()
public boolean testLineOfSightboolean testLineOfSight()

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Builder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.ComponentContext;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.InstructionType;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleRangeValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.IEntityFilter;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderEntityFilterBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.entity.filters.EntityFilterSpotsMe;
class="kw">import com.hypixel.hytale.server.npc.util.ViewTest;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BuilderEntityFilterSpotsMe class="kw">extends BuilderEntityFilterBase {
   class="kw">protected float viewAngle;
   class="kw">protected boolean testLineOfSight;
   class="kw">protected ViewTest viewTest;

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

   @Nonnull
   class="kw">public EntityFilterSpotsMe build(BuilderSupport var1) {
      class="kw">return new EntityFilterSpotsMe(this);
   }

   @Nonnull
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return "Checks if the entity can view the NPC in a given view sector or cone and without obstruction.";
   }

   @Nonnull
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return this.getShortDescription();
   }

   @Nonnull
   @Override
   class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
      class="kw">return BuilderDescriptorState.Stable;
   }

   @Nonnull
   @Override
   class="kw">public Builder<IEntityFilter> readConfig(@Nonnull JsonElement var1) {
      this.getFloat(
         var1,
         "ViewAngle",
         var1x -> this.viewAngle = var1x * (float) (Math.PI / 180.0),
         90.0F,
         DoubleRangeValidator.between(0.0, 360.0),
         BuilderDescriptorState.Stable,
         "Angle used for view sector and view cone test",
         null
      );
      this.getEnum(
         var1,
         "ViewTest",
         var1x -> this.viewTest = var1x,
         ViewTest.class,
         ViewTest.VIEW_SECTOR,
         BuilderDescriptorState.Stable,
         "Check if the entity is in the view cone, view sector, or neither",
         null
      );
      this.getBoolean(
         var1,
         "TestLineOfSight",
         var1x -> this.testLineOfSight = var1x,
         true,
         BuilderDescriptorState.Stable,
         "Check if view to the npc is not obstructed",
         null
      );
      this.requireContext(InstructionType.Any, ComponentContext.NotSelfEntitySensor);
      class="kw">return this;
   }

   class="kw">public float getViewAngle() {
      class="kw">return this.viewAngle;
   }

   class="kw">public boolean testLineOfSight() {
      class="kw">return this.testLineOfSight;
   }

   class="kw">public ViewTest getViewTest() {
      class="kw">return this.viewTest;
   }
}