StatsConditionInteraction class

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.none

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/none/StatsConditionInteraction.java

extends: StatsConditionBaseInteraction

Поля (8)

МодификаторыТипИмя
com.hypixel.hytale.protocol.StatsConditionInteraction var2
EntityStatMap var3
CommandBuffer var4
ObjectIterator var4
Ref var5
Entry var5
EntityStatValue var6
float var7

Методы (4)

МодификаторыВозвратСигнатура
if if(var3 == null)
if if(this.costs == null)
if if(var6 == null)
if if(this.lessThan)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.protocol.Interaction;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.ValueType;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap;
class="kw">import com.hypixel.hytale.server.core.modules.entitystats.EntityStatValue;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.ints.Int2FloatMap.Entry;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import javax.annotation.Nonnull;

class="kw">public class StatsConditionInteraction class="kw">extends StatsConditionBaseInteraction {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<StatsConditionInteraction> CODEC = BuilderCodec.builder(
         StatsConditionInteraction.class, StatsConditionInteraction::new, StatsConditionBaseInteraction.CODEC
      )
      .documentation("Interaction that is successful if the given stat conditions match.")
      .build();

   class="kw">public StatsConditionInteraction() {
   }

   @Override
   class="kw">protected void firstRun(@Nonnull InteractionType var1, @Nonnull InteractionContext var2, @Nonnull CooldownHandler var3) {
      CommandBuffer var4 = var2.getCommandBuffer();
      assert var4 != null;
      Ref var5 = var2.getEntity();
      if (!this.canAfford(var5, var4)) {
         var2.getState().state = InteractionState.Failed;
      }
   }

   @Override
   class="kw">protected boolean canAfford(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
      EntityStatMap var3 = var2.getComponent(var1, EntityStatMap.getComponentType());
      if (var3 == null) {
         class="kw">return false;
      }

      if (this.costs == null) {
         class="kw">return false;
      }

      ObjectIterator var4 = this.costs.int2FloatEntrySet().iterator();

      while (var4.hasNext()) {
         Entry var5 = (Entry)var4.next();
         EntityStatValue var6 = var3.get(var5.getIntKey());
         if (var6 == null) {
            class="kw">return false;
         }

         float var7 = this.valueType == ValueType.Absolute ? var6.get() : var6.asPercentage() * 100.0F;
         if (this.lessThan) {
            if (var7 >= var5.getFloatValue()) {
               class="kw">return false;
            }
         } else if (var7 < var5.getFloatValue() && !this.canOverdraw(var7, var6.getMin())) {
            class="kw">return false;
         }
      }

      class="kw">return true;
   }

   @Nonnull
   @Override
   class="kw">protected Interaction generatePacket() {
      class="kw">return new com.hypixel.hytale.protocol.StatsConditionInteraction();
   }

   @Override
   class="kw">protected void configurePacket(Interaction var1) {
      super.configurePacket(var1);
      com.hypixel.hytale.protocol.StatsConditionInteraction var2 = (com.hypixel.hytale.protocol.StatsConditionInteraction)var1;
      var2.costs = this.costs;
      var2.lessThan = this.lessThan;
      var2.lenient = this.lenient;
      var2.valueType = this.valueType;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "StatsConditionInteraction{}" + super.toString();
   }
}