SendSignalEffect class
Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin
Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/SendSignalEffect.java
extends: TriggerEffect
Поля (12)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
String[] |
EMPTY |
|
|
return |
|
TriggerVolumeManager |
var2 |
|
Ref |
var3 |
|
UUID |
var4 |
|
|
var4 |
|
|
var4 |
|
SendSignalEffect |
var5 |
|
UUIDComponent |
var5 |
|
String |
var6 |
|
List |
var6 |
|
Vector3d |
var9 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
double |
getRadiusdouble getRadius() |
|
|
if if(var3 != null) |
|
|
if if(var2 != null) |
|
|
if if(var3 != null) |
|
|
if if(var5 == null) |
|
void |
signalVolumevoid signalVolume(@Nonnull TriggerVolumeManager var1, @Nonnull VolumeEntry var2, @Nullable Ref<EntityStore> var3, @Nonnull UUID var4, @Nullable Vector3d var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.effect.builtin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.SignalTag;
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.builtin.triggervolumes.manager.TriggerVolumeManager;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.VolumeEntry;
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.Ref;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class SendSignalEffect class="kw">extends TriggerEffect {
class="kw">private class="kw">static class="kw">final String[] EMPTY = new String[0];
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<SendSignalEffect> CODEC = BuilderCodec.builder(SendSignalEffect.class, SendSignalEffect::new, BASE_CODEC)
.append(new KeyedCodec<>("MatchKey", Codec.STRING, false), (var0, var1) -> var0.matchKey = var1, var0 -> var0.matchKey)
.add()
.append(new KeyedCodec<>("MatchValue", Codec.STRING, false), (var0, var1) -> var0.matchValue = var1, var0 -> var0.matchValue)
.add()
.append(new KeyedCodec<>("Radius", Codec.DOUBLE, false), (var0, var1) -> var0.radius = var1, var0 -> var0.radius)
.add()
.append(new KeyedCodec<>("Center", new EnumCodec<>(TaggedVolumeEffectUtil.Center.class), false), (var0, var1) -> var0.center = var1, var0 -> var0.center)
.add()
.append(
new KeyedCodec<>("SignalKeys", Codec.STRING_ARRAY, false),
(var0, var1) -> var0.signalKeys = var1 != null ? var1 : EMPTY,
var0 -> var0.signalKeys.length == 0 ? null : var0.signalKeys
)
.add()
.append(
new KeyedCodec<>("SignalValues", Codec.STRING_ARRAY, false),
(var0, var1) -> var0.signalValues = var1 != null ? var1 : EMPTY,
var0 -> var0.signalValues.length == 0 ? null : var0.signalValues
)
.add()
.build();
@Nullable
class="kw">private String matchKey;
@Nullable
class="kw">private String matchValue;
class="kw">private double radius = 50.0;
@Nonnull
class="kw">private TaggedVolumeEffectUtil.Center center = TaggedVolumeEffectUtil.Center.VOLUME;
@Nonnull
class="kw">private String[] signalKeys = EMPTY;
@Nonnull
class="kw">private String[] signalValues = EMPTY;
class="kw">public SendSignalEffect() {
}
@Nonnull
class="kw">public class="kw">static SendSignalEffect create(
@Nonnull TriggerEventType var0, @Nullable String var1, @Nullable String var2, @Nullable String var3, @Nullable String var4
) {
SendSignalEffect var5 = new SendSignalEffect();
var5.setEventType(var0);
var5.matchKey = var1;
var5.matchValue = var2;
if (var3 != null) {
var5.signalKeys = new String[]{var3};
var5.signalValues = var4 != null ? new String[]{var4} : EMPTY;
}
class="kw">return var5;
}
@Override
class="kw">public void execute(@Nonnull TriggerContext var1) {
TriggerVolumeManager var2 = TaggedVolumeEffectUtil.manager(var1);
if (var2 != null) {
Ref var3 = var1.getEntityRef();
UUID var4;
if (var3 != null) {
UUIDComponent var5 = var1.getStore().getComponent(var3, UUIDComponent.getComponentType());
if (var5 == null) {
class="kw">return;
}
var4 = var5.getUuid();
} else {
var4 = TriggerVolumeManager.ENVIRONMENT_ACTOR_UUID;
}
Vector3d var9 = var1.getEventPosition();
String var6 = TaggedVolumeEffectUtil.composeTagFilter(this.matchKey, this.matchValue);
for (VolumeEntry var8 : TaggedVolumeEffectUtil.collectTargets(var1, var6, this.radius, this.center)) {
this.signalVolume(var2, var8, var3, var4, var9);
}
}
}
void signalVolume(
@Nonnull TriggerVolumeManager var1, @Nonnull VolumeEntry var2, @Nullable Ref<EntityStore> var3, @Nonnull UUID var4, @Nullable Vector3d var5
) {
List var6 = SignalTag.zip(this.signalKeys, this.signalValues);
var1.enqueueVolumeEvent(TriggerEventType.SIGNAL_RECEIVED, var3, var4, var2.getId(), var6, var5, null);
}
class="kw">public double getRadius() {
class="kw">return this.radius;
}
}