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());
}
}