DeployableFlag enum

Пакет: com.hypixel.hytale.builtin.deployables.component

Файл: com/hypixel/hytale/builtin/deployables/component/DeployableComponent.java

Поля (1)

МодификаторыТипИмя
STATE, LIVE, BURST_SHOTS, TRIGGERED

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.deployables.component;

class="kw">import com.hypixel.hytale.builtin.deployables.DeployablesPlugin;
class="kw">import com.hypixel.hytale.builtin.deployables.config.DeployableConfig;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
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.time.Instant;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ThreadLocalRandom;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3f;

class="kw">public class DeployableComponent class="kw">implements Component<EntityStore> {
   @Nonnull
   class="kw">private class="kw">final int[] flags = new int[DeployableComponent.DeployableFlag.values().length];
   class="kw">private DeployableConfig config;
   class="kw">private Ref<EntityStore> owner;
   class="kw">private UUID ownerUUID;
   class="kw">private Instant spawnInstant;
   class="kw">private float timeSinceLastAttack;
   @Nullable
   class="kw">private Vector3f debugColor;
   class="kw">private boolean firstTickRan;
   class="kw">private String spawnFace;

   class="kw">public DeployableComponent() {
   }

   @Nonnull
   class="kw">public class="kw">static ComponentType<EntityStore, DeployableComponent> getComponentType() {
      class="kw">return DeployablesPlugin.get().getDeployableComponentType();
   }

   @Override
   class="kw">public Component<EntityStore> clone() {
      class="kw">return this;
   }

   class="kw">public void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5) {
      if (!this.firstTickRan) {
         this.config.firstTick(this, var1, var2, var3, var4, var5);
         this.firstTickRan = true;
      }

      this.config.tick(this, var1, var2, var3, var4, var5);
   }

   class="kw">public void init(
      @Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull DeployableConfig var3, @Nonnull Instant var4, @Nonnull String var5
   ) {
      UUIDComponent var6 = var2.getComponent(var1, UUIDComponent.getComponentType());
      assert var6 != null;
      this.config = var3;
      this.owner = var1;
      this.spawnInstant = var4;
      this.spawnFace = var5;
      this.ownerUUID = var6.getUuid();
   }

   class="kw">public Ref<EntityStore> getOwner() {
      class="kw">return this.owner;
   }

   class="kw">public UUID getOwnerUUID() {
      class="kw">return this.ownerUUID;
   }

   class="kw">public DeployableConfig getConfig() {
      class="kw">return this.config;
   }

   class="kw">public Instant getSpawnInstant() {
      class="kw">return this.spawnInstant;
   }

   class="kw">public float getTimeSinceLastAttack() {
      class="kw">return this.timeSinceLastAttack;
   }

   class="kw">public void setTimeSinceLastAttack(float var1) {
      this.timeSinceLastAttack = var1;
   }

   class="kw">public float incrementTimeSinceLastAttack(float var1) {
      class="kw">return this.timeSinceLastAttack += var1;
   }

   class="kw">public String getSpawnFace() {
      class="kw">return this.spawnFace;
   }

   class="kw">public int getFlag(@Nonnull DeployableComponent.DeployableFlag var1) {
      class="kw">return this.flags[var1.ordinal()];
   }

   class="kw">public void setFlag(@Nonnull DeployableComponent.DeployableFlag var1, int var2) {
      this.flags[var1.ordinal()] = var2;
   }

   @Nonnull
   class="kw">public Vector3f getDebugColor() {
      if (this.debugColor == null) {
         ThreadLocalRandom var1 = ThreadLocalRandom.current();
         this.debugColor = new Vector3f(var1.nextFloat(), var1.nextFloat(), var1.nextFloat());
      }

      class="kw">return this.debugColor;
   }

   class="kw">public enum DeployableFlag {
      STATE,
      LIVE,
      BURST_SHOTS,
      TRIGGERED;

      DeployableFlag() {
      }
   }
}