EntityCountCondition class

Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions

Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/conditions/EntityCountCondition.java

extends: TriggerCondition

Поля (2)

МодификаторыТипИмя
AT_LEAST, AT_MOST, EXACTLY, NOT_EQUALS, MORE_THAN, LESS_THAN
EntityCountCondition var3

Методы (4)

МодификаторыВозвратСигнатура
Comparison Comparison()
public int countEntitiesint countEntities(@Nonnull TriggerContext var1)
public boolean matchesboolean matches(int var1)
return switchreturn switch(this.comparison)

Исходный код

Показать/скрыть
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() {
      }
   }
}