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);
}
}