BuilderActionSpawnInteraction class
Пакет: com.hypixel.hytale.server.npc.corecomponents.interaction.builders
Файл: com/hypixel/hytale/server/npc/corecomponents/interaction/builders/BuilderActionSpawnInteraction.java
extends: BuilderDeferrableAction
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
AssetHolder |
interaction |
|
String |
var2 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
ActionSpawnInteractionreturn new ActionSpawnInteraction(this, var1) |
public |
OrientationSource |
getOrientationSourceOrientationSource getOrientationSource() |
public |
float |
getPitchfloat getPitch(@Nonnull BuilderSupport var1) |
public |
PositionSource |
getPositionSourcePositionSource getPositionSource() |
public |
float |
getRollfloat getRoll(@Nonnull BuilderSupport var1) |
public |
int |
getTargetSlotint getTargetSlot(@Nonnull BuilderSupport var1) |
public |
float |
getTtlfloat getTtl(@Nonnull BuilderSupport var1) |
public |
float |
getYawfloat getYaw(@Nonnull BuilderSupport var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.interaction.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.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.AssetHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.FloatHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.StringHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.StringNotEmptyValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.asset.RootInteractionValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.OrientationSource;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.PositionSource;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderDeferrableAction;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.interaction.ActionSpawnInteraction;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class BuilderActionSpawnInteraction class="kw">extends BuilderDeferrableAction {
class="kw">protected class="kw">final AssetHolder interaction = new AssetHolder();
class="kw">protected class="kw">final FloatHolder yaw = new FloatHolder();
class="kw">protected class="kw">final FloatHolder pitch = new FloatHolder();
class="kw">protected class="kw">final FloatHolder roll = new FloatHolder();
class="kw">protected class="kw">final FloatHolder ttl = new FloatHolder();
class="kw">protected class="kw">final StringHolder targetSlot = new StringHolder();
class="kw">protected PositionSource positionSource = PositionSource.Self;
class="kw">protected OrientationSource orientationSource = OrientationSource.UseOwner;
class="kw">public BuilderActionSpawnInteraction() {
}
@Nonnull
class="kw">public ActionSpawnInteraction build(@Nonnull BuilderSupport var1) {
class="kw">return new ActionSpawnInteraction(this, var1);
}
@Nonnull
@Override
class="kw">public String getShortDescription() {
class="kw">return "Spawn an interaction at a chosen position and orientation.";
}
@Nonnull
@Override
class="kw">public String getLongDescription() {
class="kw">return this.getShortDescription();
}
@Nonnull
@Override
class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
class="kw">return BuilderDescriptorState.WorkInProgress;
}
@Nonnull
class="kw">public BuilderActionSpawnInteraction readConfig(@Nonnull JsonElement var1) {
this.requireAsset(
var1, "Interaction", this.interaction, RootInteractionValidator.required(), BuilderDescriptorState.Stable, "The root interaction to run.", null
);
this.positionSource = this.readPositionSource(var1, "Self: spawn at the acting entity's position. Sensor: spawn at the triggering sensor's position.");
this.getEnum(
var1,
"OrientationSource",
var1x -> this.orientationSource = var1x,
OrientationSource.class,
OrientationSource.UseOwner,
BuilderDescriptorState.Stable,
"How the host is oriented. Absolute uses Yaw/Pitch/Roll. UseOwner copies the acting entity's facing. UseTarget copies the TargetSlot marked target's facing. UseSensor uses the sensed position's orientation.",
null
);
this.getString(
var1,
"TargetSlot",
this.targetSlot,
"LockedTarget",
StringNotEmptyValidator.get(),
BuilderDescriptorState.Stable,
"The marked target slot whose facing UseTarget copies.",
null
);
this.getFloat(var1, "Yaw", this.yaw, (double)0.0, null, BuilderDescriptorState.Stable, "Absolute yaw in degrees.", null);
this.getFloat(var1, "Pitch", this.pitch, (double)0.0, null, BuilderDescriptorState.Stable, "Absolute pitch in degrees.", null);
this.getFloat(var1, "Roll", this.roll, (double)0.0, null, BuilderDescriptorState.Stable, "Absolute roll in degrees.", null);
this.getFloat(
var1, "Ttl", this.ttl, (double)5.0, null, BuilderDescriptorState.Stable, "Seconds before the host force-despawns if its chain has not finished.", null
);
class="kw">return this;
}
@Nullable
class="kw">public String getInteraction(@Nonnull BuilderSupport var1) {
String var2 = this.interaction.get(var1.getExecutionContext());
class="kw">return var2 != null && !var2.isEmpty() ? var2 : null;
}
class="kw">public PositionSource getPositionSource() {
class="kw">return this.positionSource;
}
class="kw">public OrientationSource getOrientationSource() {
class="kw">return this.orientationSource;
}
class="kw">public int getTargetSlot(@Nonnull BuilderSupport var1) {
class="kw">return var1.getTargetSlot(this.targetSlot.get(var1.getExecutionContext()));
}
class="kw">public float getYaw(@Nonnull BuilderSupport var1) {
class="kw">return this.yaw.get(var1.getExecutionContext());
}
class="kw">public float getPitch(@Nonnull BuilderSupport var1) {
class="kw">return this.pitch.get(var1.getExecutionContext());
}
class="kw">public float getRoll(@Nonnull BuilderSupport var1) {
class="kw">return this.roll.get(var1.getExecutionContext());
}
class="kw">public float getTtl(@Nonnull BuilderSupport var1) {
class="kw">return this.ttl.get(var1.getExecutionContext());
}
}