RegeneratingValue class
Пакет: com.hypixel.hytale.server.core.modules.entitystats
Файл: com/hypixel/hytale/server/core/modules/entitystats/RegeneratingValue.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
float |
var7 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
EntityStatType.Regenerating |
getRegeneratingEntityStatType.Regenerating getRegenerating() |
|
|
if if(this.remainingUntilRegen < 0.0F) |
public |
float |
regeneratefloat regenerate(@Nonnull ComponentAccessor<EntityStore> var1,
@Nonnull Ref<EntityStore> var2,
@Nonnull Instant var3,
float var4,
@Nonnull EntityStatValue var5,
float var6) |
public |
boolean |
shouldRegenerateboolean shouldRegenerate(@Nonnull ComponentAccessor<EntityStore> var1,
@Nonnull Ref<EntityStore> var2,
@Nonnull Instant var3,
float var4,
@Nonnull EntityStatType.Regenerating var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entitystats;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.modules.entity.condition.Condition;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.asset.EntityStatType;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.asset.modifier.RegeneratingModifier;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Instant;
class="kw">import javax.annotation.Nonnull;
class="kw">public class RegeneratingValue {
@Nonnull
class="kw">private class="kw">final EntityStatType.Regenerating regenerating;
class="kw">private float remainingUntilRegen;
class="kw">public RegeneratingValue(@Nonnull EntityStatType.Regenerating var1) {
this.regenerating = var1;
}
class="kw">public boolean shouldRegenerate(
@Nonnull ComponentAccessor<EntityStore> var1,
@Nonnull Ref<EntityStore> var2,
@Nonnull Instant var3,
float var4,
@Nonnull EntityStatType.Regenerating var5
) {
this.remainingUntilRegen -= var4;
if (this.remainingUntilRegen < 0.0F) {
this.remainingUntilRegen = this.remainingUntilRegen + var5.getInterval();
class="kw">return Condition.allConditionsMet(var1, var2, var3, var5);
} else {
class="kw">return false;
}
}
class="kw">public float regenerate(
@Nonnull ComponentAccessor<EntityStore> var1,
@Nonnull Ref<EntityStore> var2,
@Nonnull Instant var3,
float var4,
@Nonnull EntityStatValue var5,
float var6
) {
if (!this.shouldRegenerate(var1, var2, var3, var4, this.regenerating)) {
class="kw">return 0.0F;
}
float var7 = class="kw">switch (this.regenerating.getRegenType()) {
case ADDITIVE -> this.regenerating.getAmount();
case PERCENTAGE -> this.regenerating.getAmount() * (var5.getMax() - var5.getMin());
};
if (this.regenerating.getModifiers() != null) {
for (RegeneratingModifier var11 : this.regenerating.getModifiers()) {
var7 *= var11.getModifier(var1, var2, var3);
}
}
class="kw">return this.regenerating.clampAmount(var7, var6, var5);
}
class="kw">public EntityStatType.Regenerating getRegenerating() {
class="kw">return this.regenerating;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "RegeneratingValue{regenerating=" + this.regenerating + ", remainingUntilRegen=" + this.remainingUntilRegen + "}";
}
}