DespawnComponent class

Пакет: com.hypixel.hytale.server.core.modules.entity

Файл: com/hypixel/hytale/server/core/modules/entity/DespawnComponent.java

implements: Component<EntityStore>

Поля (1)

МодификаторыТипИмя
final BuilderCodec<DespawnComponent> CODEC

Методы (7)

МодификаторыВозвратСигнатура
static ComponentType<EntityStore, DespawnComponent> getComponentTypeComponentType<EntityStore, DespawnComponent> getComponentType()
if if(var3 != null)
if if(var4 != null)
public void setDespawnvoid setDespawn(Instant var1)
public void setDespawnTovoid setDespawnTo(@Nonnull Instant var1, float var2)
abstract this this(null)
static void trySetDespawnvoid trySetDespawn(@Nonnull CommandBuffer<EntityStore> var0, @Nonnull TimeResource var1, @Nonnull Ref<EntityStore> var2, @Nullable DespawnComponent var3, @Nullable Float var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity;

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.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.server.core.modules.time.TimeResource;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Duration;
class="kw">import java.time.Instant;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class DespawnComponent class="kw">implements Component<EntityStore> {
   class="kw">public class="kw">static class="kw">final BuilderCodec<DespawnComponent> CODEC = BuilderCodec.builder(DespawnComponent.class, DespawnComponent::new)
      .append(new KeyedCodec<>("Despawn", Codec.INSTANT), (var0, var1) -> var0.timeToDespawnAt = var1, var0 -> var0.timeToDespawnAt)
      .add()
      .build();
   @Nullable
   class="kw">private Instant timeToDespawnAt;

   class="kw">public class="kw">static ComponentType<EntityStore, DespawnComponent> getComponentType() {
      class="kw">return EntityModule.get().getDespawnComponentType();
   }

   class="kw">public DespawnComponent() {
      this(null);
   }

   class="kw">public DespawnComponent(@Nullable Instant var1) {
      this.timeToDespawnAt = var1;
   }

   class="kw">public void setDespawn(Instant var1) {
      this.timeToDespawnAt = var1;
   }

   class="kw">public void setDespawnTo(@Nonnull Instant var1, float var2) {
      this.timeToDespawnAt = var1.plusNanos((long)(var2 * 1.0E9F));
   }

   @Nullable
   class="kw">public Instant getDespawn() {
      class="kw">return this.timeToDespawnAt;
   }

   @Nonnull
   class="kw">public class="kw">static DespawnComponent despawnInSeconds(@Nonnull TimeResource var0, int var1) {
      class="kw">return new DespawnComponent(var0.getNow().plus(Duration.ofSeconds(var1)));
   }

   @Nonnull
   class="kw">public class="kw">static DespawnComponent despawnInSeconds(@Nonnull TimeResource var0, float var1) {
      class="kw">return new DespawnComponent(var0.getNow().plusNanos((long)(var1 * 1.0E9F)));
   }

   @Nonnull
   class="kw">public class="kw">static DespawnComponent despawnInMilliseconds(@Nonnull TimeResource var0, long var1) {
      class="kw">return new DespawnComponent(var0.getNow().plus(Duration.ofMillis(var1)));
   }

   class="kw">public class="kw">static void trySetDespawn(
      @Nonnull CommandBuffer<EntityStore> var0,
      @Nonnull TimeResource var1,
      @Nonnull Ref<EntityStore> var2,
      @Nullable DespawnComponent var3,
      @Nullable Float var4
   ) {
      if (var3 != null) {
         if (var4 != null) {
            var3.setDespawnTo(var1.getNow(), var4);
         } else {
            var0.removeComponent(var2, getComponentType());
         }
      } else {
         var0.putComponent(var2, getComponentType(), despawnInSeconds(var1, var4));
      }
   }

   @Nonnull
   @Override
   class="kw">public Component<EntityStore> clone() {
      class="kw">return new DespawnComponent(this.timeToDespawnAt);
   }
}