EntityFilterStat class

Пакет: com.hypixel.hytale.server.npc.corecomponents.entity.filters

Файл: com/hypixel/hytale/server/npc/corecomponents/entity/filters/EntityFilterStat.java

extends: EntityFilterBase

Поля (10)

МодификаторыТипИмя
final int COST
private final String description
private final ToFloatFunction<EntityStatValue> getter
double var10
double[] var3
EntityStatMap var5
EntityStatValue var6
EntityStatValue var7
float var8
float var9

Методы (4)

МодификаторыВозвратСигнатура
EntityStatTarget EntityStatTarget(String nullxx, ToFloatFunction<EntityStatValue> nullxxx)
abstract Max Max("Max value", EntityStatValue::getMax)
public String getpublic String get()
public float getpublic float get(EntityStatValue var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.entity.filters;

class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.function.function.ToFloatFunction;
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.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.EntityFilterBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.entity.filters.builders.BuilderEntityFilterStat;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;

class="kw">public class EntityFilterStat class="kw">extends EntityFilterBase {
   class="kw">public class="kw">static class="kw">final int COST = 200;
   class="kw">protected class="kw">static class="kw">final ComponentType<EntityStore, EntityStatMap> ENTITY_STAT_MAP_COMPONENT_TYPE = EntityStatMap.getComponentType();
   class="kw">protected class="kw">final int stat;
   class="kw">protected class="kw">final EntityFilterStat.EntityStatTarget statTarget;
   class="kw">protected class="kw">final int relativeTo;
   class="kw">protected class="kw">final EntityFilterStat.EntityStatTarget relativeToTarget;
   class="kw">protected class="kw">final double minValue;
   class="kw">protected class="kw">final double maxValue;

   class="kw">public EntityFilterStat(@Nonnull BuilderEntityFilterStat var1, @Nonnull BuilderSupport var2) {
      this.stat = var1.getStat(var2);
      this.statTarget = var1.getStatTarget(var2);
      this.relativeTo = var1.getRelativeTo(var2);
      this.relativeToTarget = var1.getRelativeToTarget(var2);
      double[] var3 = var1.getValueRange(var2);
      this.minValue = var3[0];
      this.maxValue = var3[1];
   }

   @Override
   class="kw">public boolean matchesEntity(
      @Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ExecutionSupport var3, @Nonnull Store<EntityStore> var4
   ) {
      EntityStatMap var5 = var4.getComponent(var2, ENTITY_STAT_MAP_COMPONENT_TYPE);
      EntityStatValue var6 = var5.get(this.stat);
      EntityStatValue var7 = var5.get(this.relativeTo);
      float var8 = this.statTarget.get(var6);
      float var9 = this.relativeToTarget.get(var7);
      double var10 = var8 / var9;
      class="kw">return var10 >= this.minValue && var10 <= this.maxValue;
   }

   @Override
   class="kw">public int cost() {
      class="kw">return 200;
   }

   class="kw">public enum EntityStatTarget class="kw">implements Supplier<String> {
      Value("Current value", EntityStatValue::get),
      Min("Min value", EntityStatValue::getMin),
      Max("Max value", EntityStatValue::getMax);

      class="kw">private class="kw">final String description;
      class="kw">private class="kw">final ToFloatFunction<EntityStatValue> getter;

      EntityStatTarget(String nullxx, ToFloatFunction<EntityStatValue> nullxxx) {
         this.description = nullxx;
         this.getter = nullxxx;
      }

      class="kw">public String get() {
         class="kw">return this.description;
      }

      class="kw">public float get(EntityStatValue var1) {
         class="kw">return this.getter.applyAsFloat(var1);
      }
   }
}