Comparison enum
Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions
Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/conditions/EntityCountCondition.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
AT_LEAST,
AT_MOST,
EXACTLY,
NOT_EQUALS,
MORE_THAN, |
LESS_THAN |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerContext;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEventType;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerVolumeEntityQuery;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">public class EntityCountCondition class="kw">extends TriggerCondition {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<EntityCountCondition> CODEC = BuilderCodec.builder(EntityCountCondition.class, EntityCountCondition::new, BASE_CODEC)
.append(
new KeyedCodec<>("Comparison", new EnumCodec<>(EntityCountCondition.Comparison.class), false),
(var0, var1) -> var0.comparison = var1,
var0 -> var0.comparison
)
.add()
.append(new KeyedCodec<>("Count", Codec.INTEGER, false), (var0, var1) -> var0.count = var1, var0 -> var0.count)
.add()
.append(
new KeyedCodec<>("EntityType", Codec.STRING_ARRAY, false),
(var0, var1) -> var0.entityTypes = var1 != null ? var1 : new String[0],
var0 -> var0.entityTypes.length == 0 ? null : var0.entityTypes
)
.add()
.build();
@Nonnull
class="kw">private EntityCountCondition.Comparison comparison = EntityCountCondition.Comparison.AT_LEAST;
class="kw">private int count = 1;
@Nonnull
class="kw">private String[] entityTypes = new String[0];
class="kw">public EntityCountCondition() {
}
@Nonnull
class="kw">public class="kw">static EntityCountCondition create(@Nonnull TriggerEventType var0, @Nonnull EntityCountCondition.Comparison var1, int var2) {
EntityCountCondition var3 = new EntityCountCondition();
var3.setEventType(var0);
var3.comparison = var1;
var3.count = var2;
class="kw">return var3;
}
@Override
class="kw">public boolean test(@Nonnull TriggerContext var1) {
class="kw">return this.matches(this.countEntities(var1));
}
class="kw">public int countEntities(@Nonnull TriggerContext var1) {
class="kw">return TriggerVolumeEntityQuery.collectLivingNpcs(var1.getStore(), var1.getSpatialVolumes(), Arrays.asList(this.entityTypes)).size();
}
class="kw">public boolean matches(int var1) {
class="kw">return class="kw">switch (this.comparison) {
case AT_LEAST -> var1 >= this.count;
case AT_MOST -> var1 <= this.count;
case EXACTLY -> var1 == this.count;
case NOT_EQUALS -> var1 != this.count;
case MORE_THAN -> var1 > this.count;
case LESS_THAN -> var1 < this.count;
};
}
class="kw">public enum Comparison {
AT_LEAST,
AT_MOST,
EXACTLY,
NOT_EQUALS,
MORE_THAN,
LESS_THAN;
Comparison() {
}
}
}