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