BuilderSensorProjectToGround class

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

Файл: com/hypixel/hytale/server/npc/corecomponents/utility/builders/BuilderSensorProjectToGround.java

extends: BuilderSensorBase

Поля (2)

МодификаторыТипИмя
final int DEFAULT_MAX_SCAN_DOWN
Sensor var2

Методы (1)

МодификаторыВозвратСигнатура
public int getMaxScanDownint getMaxScanDown(@Nonnull BuilderSupport var1)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderObjectReferenceHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Feature;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.IntHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.IntSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderSensorBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.utility.SensorProjectToGround;
class="kw">import com.hypixel.hytale.server.npc.instructions.Sensor;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.npc.validators.NPCLoadTimeValidationHelper;
class="kw">import java.util.List;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class BuilderSensorProjectToGround class="kw">extends BuilderSensorBase {
   class="kw">private class="kw">static class="kw">final int DEFAULT_MAX_SCAN_DOWN = 128;
   class="kw">protected class="kw">final BuilderObjectReferenceHelper<Sensor> sensor = new BuilderObjectReferenceHelper<>(Sensor.class, this);
   class="kw">protected class="kw">final IntHolder maxScanDown = new IntHolder();

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

   @Nullable
   class="kw">public SensorProjectToGround build(@Nonnull BuilderSupport var1) {
      Sensor var2 = this.getSensor(var1);
      class="kw">return var2 == null ? null : new SensorProjectToGround(this, var1, var2);
   }

   @Nonnull
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return "Projects the wrapped sensor's position(s) down to the ground";
   }

   @Nonnull
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return "Projects every position from the wrapped sensor straight down to the top of the first solid block beneath it, dropping positions with no ground within MaxScanDown or in an unloaded chunk";
   }

   @Override
   class="kw">public void registerTags(@Nonnull Set<String> var1) {
      super.registerTags(var1);
      var1.add("logic");
   }

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

   @Nonnull
   class="kw">public BuilderSensorProjectToGround readConfig(@Nonnull JsonElement var1) {
      this.requireObject(var1, "Sensor", this.sensor, BuilderDescriptorState.Experimental, "Sensor to wrap", null, this.validationHelper);
      this.getInt(
         var1,
         "MaxScanDown",
         this.maxScanDown,
         128,
         IntSingleValidator.greater0(),
         BuilderDescriptorState.Experimental,
         "Maximum number of blocks to scan downward looking for ground",
         null
      );
      this.provideFeature(Feature.Position);
      class="kw">return this;
   }

   @Override
   class="kw">public boolean validate(String var1, @Nonnull NPCLoadTimeValidationHelper var2, @Nonnull ExecutionContext var3, Scope var4, @Nonnull List<String> var5) {
      class="kw">return super.validate(var1, var2, var3, var4, var5) & this.sensor.validate(var1, var2, this.builderManager, var3, var4, var5);
   }

   @Nullable
   class="kw">public Sensor getSensor(@Nonnull BuilderSupport var1) {
      class="kw">return this.sensor.build(var1);
   }

   class="kw">public int getMaxScanDown(@Nonnull BuilderSupport var1) {
      class="kw">return this.maxScanDown.get(var1.getExecutionContext());
   }
}