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 + "}";
   }
}