TriggerContext class
Пакет: com.hypixel.hytale.builtin.triggervolumes.effect
Файл: com/hypixel/hytale/builtin/triggervolumes/effect/TriggerContext.java
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
FALLBACK_TO_VOLUME, |
SKIP |
|
TransformComponent |
var1 |
|
Vector3d |
var1 |
|
Vector3d |
var4 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
MissingActor MissingActor() |
|
|
if if(var1 != null) |
|
|
if if(var1 != null) |
|
return |
switchreturn switch(var1) |
abstract |
|
this this(var1, var2, var3, var4, var5, null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.effect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.VolumeEntry;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class TriggerContext {
@Nullable
class="kw">private class="kw">final Ref<EntityStore> entityRef;
@Nonnull
class="kw">private class="kw">final Store<EntityStore> store;
@Nonnull
class="kw">private class="kw">final TriggerEventType eventType;
@Nonnull
class="kw">private class="kw">final VolumeEntry volume;
@Nonnull
class="kw">private class="kw">final List<VolumeEntry> spatialVolumes;
@Nullable
class="kw">private class="kw">final Vector3d actorPosition;
@Nonnull
class="kw">private class="kw">final List<SignalTag> signalTags;
@Nullable
class="kw">private class="kw">final Vector3d blockPosition;
@Nullable
class="kw">private class="kw">final String blockId;
@Nullable
class="kw">private class="kw">final InteractionType interactionType;
class="kw">public TriggerContext(@Nullable Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull TriggerEventType var3, @Nonnull VolumeEntry var4) {
this(var1, var2, var3, var4, List.of(var4));
}
class="kw">public TriggerContext(
@Nullable Ref<EntityStore> var1,
@Nonnull Store<EntityStore> var2,
@Nonnull TriggerEventType var3,
@Nonnull VolumeEntry var4,
@Nonnull List<VolumeEntry> var5
) {
this(var1, var2, var3, var4, var5, null);
}
class="kw">public TriggerContext(
@Nullable Ref<EntityStore> var1,
@Nonnull Store<EntityStore> var2,
@Nonnull TriggerEventType var3,
@Nonnull VolumeEntry var4,
@Nonnull List<VolumeEntry> var5,
@Nullable Vector3d var6
) {
this(var1, var2, var3, var4, var5, var6, List.of(), null, null, null);
}
class="kw">public TriggerContext(
@Nullable Ref<EntityStore> var1,
@Nonnull Store<EntityStore> var2,
@Nonnull TriggerEventType var3,
@Nonnull VolumeEntry var4,
@Nonnull List<VolumeEntry> var5,
@Nullable Vector3d var6,
@Nonnull List<SignalTag> var7,
@Nullable Vector3d var8,
@Nullable String var9,
@Nullable InteractionType var10
) {
this.entityRef = var1;
this.store = var2;
this.eventType = var3;
this.volume = var4;
this.spatialVolumes = var5.isEmpty() ? List.of(var4) : List.copyOf(var5);
this.actorPosition = var6 != null ? new Vector3d(var6) : null;
this.signalTags = List.copyOf(var7);
this.blockPosition = var8 != null ? new Vector3d(var8) : null;
this.blockId = var9;
this.interactionType = var10;
}
@Nullable
class="kw">public Ref<EntityStore> getEntityRef() {
class="kw">return this.entityRef;
}
@Nullable
class="kw">public Vector3d getActorPosition() {
if (this.entityRef != null && this.entityRef.isValid()) {
TransformComponent var1 = this.store.getComponent(this.entityRef, TransformComponent.getComponentType());
if (var1 != null) {
class="kw">return new Vector3d(var1.getPosition());
}
}
class="kw">return this.actorPosition != null ? new Vector3d(this.actorPosition) : null;
}
@Nonnull
class="kw">public Store<EntityStore> getStore() {
class="kw">return this.store;
}
@Nonnull
class="kw">public TriggerEventType getEventType() {
class="kw">return this.eventType;
}
@Nonnull
class="kw">public VolumeEntry getVolume() {
class="kw">return this.volume;
}
@Nonnull
class="kw">public List<VolumeEntry> getSpatialVolumes() {
class="kw">return this.spatialVolumes;
}
@Nonnull
class="kw">public List<SignalTag> getSignalTags() {
class="kw">return this.signalTags;
}
@Nullable
class="kw">public Vector3d getBlockPosition() {
class="kw">return this.blockPosition != null ? new Vector3d(this.blockPosition) : null;
}
@Nullable
class="kw">public Vector3d getEventPosition() {
Vector3d var1 = this.getBlockPosition();
class="kw">return var1 != null ? var1 : this.getActorPosition();
}
@Nullable
class="kw">public String getBlockId() {
class="kw">return this.blockId;
}
@Nullable
class="kw">public InteractionType getInteractionType() {
class="kw">return this.interactionType;
}
@Nullable
class="kw">public Vector3d resolveOrigin(@Nonnull EffectOrigin var1, @Nullable Vector3d var2, @Nonnull TriggerContext.MissingActor var3) {
Vector3d var4 = var2 != null ? new Vector3d(var2) : new Vector3d();
class="kw">return class="kw">switch (var1) {
case WORLD_ABSOLUTE -> var4;
case VOLUME_ORIGIN -> new Vector3d(this.volume.getPosition()).add(var4);
case ENTITY -> this.anchorOrFallback(this.getActorPosition(), var4, var3);
case EVENT -> this.anchorOrFallback(this.getEventPosition(), var4, var3);
};
}
@Nullable
class="kw">private Vector3d anchorOrFallback(@Nullable Vector3d var1, @Nonnull Vector3d var2, @Nonnull TriggerContext.MissingActor var3) {
if (var1 != null) {
class="kw">return var1.add(var2);
} else {
class="kw">return var3 == TriggerContext.MissingActor.FALLBACK_TO_VOLUME ? new Vector3d(this.volume.getPosition()).add(var2) : null;
}
}
class="kw">public enum MissingActor {
FALLBACK_TO_VOLUME,
SKIP;
MissingActor() {
}
}
}