SpawnNpcEffect class
Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin
Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/SpawnNpcEffect.java
extends: TriggerEffect
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
MAX_COUNT |
|
Store |
var2 |
|
SpawnNpcEffect |
var3 |
|
Vector3d |
var3 |
|
Rotation3f |
var4 |
|
String |
var5 |
|
int |
var6 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var7 = 0; var7 < var6; var7++) |
|
|
if if(this.origin == EffectOrigin.VOLUME_ORIGIN) |
|
|
if if(this.offset != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.effect.builtin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.YawRotation;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.EffectOrigin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerContext;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEventType;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class SpawnNpcEffect class="kw">extends TriggerEffect {
class="kw">private class="kw">static class="kw">final int MAX_COUNT = 64;
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<SpawnNpcEffect> CODEC = BuilderCodec.builder(SpawnNpcEffect.class, SpawnNpcEffect::new, BASE_CODEC)
.append(new KeyedCodec<>("NpcType", Codec.STRING), (var0, var1) -> var0.npcType = var1, var0 -> var0.npcType)
.add()
.append(new KeyedCodec<>("GroupType", Codec.STRING, false), (var0, var1) -> var0.groupType = var1, var0 -> var0.groupType)
.add()
.append(new KeyedCodec<>("Origin", new EnumCodec<>(EffectOrigin.class), false), (var0, var1) -> var0.origin = var1, var0 -> var0.origin)
.add()
.append(new KeyedCodec<>("Offset", Vector3dUtil.CODEC, false), (var0, var1) -> var0.offset = var1, var0 -> var0.offset)
.add()
.append(new KeyedCodec<>("Count", Codec.INTEGER, false), (var0, var1) -> var0.count = var1, var0 -> var0.count)
.add()
.append(new KeyedCodec<>("Yaw", Codec.FLOAT, false), (var0, var1) -> var0.yaw = var1, var0 -> var0.yaw)
.add()
.build();
@Nullable
class="kw">private String npcType;
@Nullable
class="kw">private String groupType;
@Nonnull
class="kw">private EffectOrigin origin = EffectOrigin.VOLUME_ORIGIN;
@Nonnull
class="kw">private Vector3d offset = new Vector3d();
class="kw">private int count = 1;
class="kw">private float yaw;
class="kw">public SpawnNpcEffect() {
}
@Nonnull
class="kw">public class="kw">static SpawnNpcEffect create(@Nonnull TriggerEventType var0, @Nonnull String var1, @Nonnull EffectOrigin var2) {
SpawnNpcEffect var3 = new SpawnNpcEffect();
var3.setEventType(var0);
var3.npcType = var1;
var3.origin = var2;
class="kw">return var3;
}
@Override
class="kw">public void execute(@Nonnull TriggerContext var1) {
if (this.npcType != null && !this.npcType.isBlank()) {
Store var2 = var1.getStore();
Vector3d var3 = var1.resolveOrigin(this.origin, this.offset, TriggerContext.MissingActor.FALLBACK_TO_VOLUME);
Rotation3f var4 = new Rotation3f(0.0F, (float)Math.toRadians(this.yaw), 0.0F);
String var5 = this.groupType != null && !this.groupType.isBlank() ? this.groupType : null;
int var6 = Math.min(Math.max(this.count, 1), 64);
for (int var7 = 0; var7 < var6; var7++) {
NPCPlugin.get().spawnNPC(var2, this.npcType, var5, var3, var4);
}
}
}
@Override
class="kw">public void rotateInPlace(float var1, @Nonnull Vector3d var2) {
if (this.origin == EffectOrigin.VOLUME_ORIGIN) {
if (this.offset != null) {
YawRotation.rotate(this.offset, var1);
}
this.yaw = YawRotation.addDegrees(this.yaw, var1);
}
}
}