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);
}
}
}