BlockHealth class
Пакет: com.hypixel.hytale.server.core.modules.blockhealth
Файл: com/hypixel/hytale/server/core/modules/blockhealth/BlockHealth.java
implements: Cloneable
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
BYTE_SIZE |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException("NO_DAMAGE_INSTANCE is immutable!") |
public |
void |
deserializevoid deserialize(@Nonnull MemorySegment var1, int var2, byte var3) |
public |
float |
getHealthfloat getHealth() |
public |
Instant |
getLastDamageGameTimeInstant getLastDamageGameTime() |
public |
boolean |
isDestroyedboolean isDestroyed() |
public |
boolean |
isFullHealthboolean isFullHealth() |
public |
void |
serializevoid serialize(@Nonnull MemorySegment var1, int var2) |
|
public void |
setHealthpublic void setHealth(float var1) |
public |
void |
setHealthvoid setHealth(float var1) |
|
public void |
setLastDamageGameTimepublic void setLastDamageGameTime(Instant var1) |
public |
void |
setLastDamageGameTimevoid setLastDamageGameTime(Instant var1) |
abstract |
|
this this(1.0F, Instant.MIN) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.blockhealth;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.util.io.MemorySegmentUtil;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import java.time.Instant;
class="kw">import javax.annotation.Nonnull;
class="kw">public class BlockHealth class="kw">implements Cloneable {
class="kw">public class="kw">static class="kw">final int BYTE_SIZE = 12;
class="kw">public class="kw">static class="kw">final BlockHealth NO_DAMAGE_INSTANCE = new BlockHealth(1.0F, Instant.MIN) {
@Override
class="kw">public void setHealth(float var1) {
throw new UnsupportedOperationException("NO_DAMAGE_INSTANCE is immutable!");
}
@Override
class="kw">public void setLastDamageGameTime(Instant var1) {
throw new UnsupportedOperationException("NO_DAMAGE_INSTANCE is immutable!");
}
};
class="kw">private float health;
class="kw">private Instant lastDamageGameTime;
class="kw">public BlockHealth() {
this(1.0F, Instant.MIN);
}
class="kw">public BlockHealth(float var1, Instant var2) {
this.health = var1;
this.lastDamageGameTime = var2;
}
class="kw">public float getHealth() {
class="kw">return this.health;
}
class="kw">public void setHealth(float var1) {
this.health = var1;
}
class="kw">public Instant getLastDamageGameTime() {
class="kw">return this.lastDamageGameTime;
}
class="kw">public void setLastDamageGameTime(Instant var1) {
this.lastDamageGameTime = var1;
}
class="kw">public boolean isDestroyed() {
class="kw">return MathUtil.closeToZero(this.health) || this.health < 0.0F;
}
class="kw">public boolean isFullHealth() {
class="kw">return this.health >= 1.0;
}
class="kw">public void deserialize(@Nonnull MemorySegment var1, int var2, byte var3) {
this.health = var1.get(MemorySegmentUtil.FLOAT_BE, var2);
this.lastDamageGameTime = Instant.ofEpochMilli(var1.get(MemorySegmentUtil.LONG_BE, var2 + 4));
}
class="kw">public void serialize(@Nonnull MemorySegment var1, int var2) {
var1.set(MemorySegmentUtil.FLOAT_BE, var2, this.health);
var1.set(MemorySegmentUtil.LONG_BE, var2 + 4, this.lastDamageGameTime.toEpochMilli());
}
@Nonnull
class="kw">protected BlockHealth clone() {
class="kw">return new BlockHealth(this.health, this.lastDamageGameTime);
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "BlockHealth{health=" + this.health + ", lastDamageGameTime=" + this.lastDamageGameTime + "}";
}
}