LogicCondition class

Пакет: com.hypixel.hytale.server.core.modules.entity.condition

Файл: com/hypixel/hytale/server/core/modules/entity/condition/LogicCondition.java

extends: Condition

Методы (7)

МодификаторыВозвратСигнатура
Operator Operator()
public boolean evalpublic boolean eval(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3, @Nonnull Condition[] var4)
public boolean evalpublic boolean eval(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3, @Nonnull Condition[] var4)
abstract public abstract boolean evalpublic abstract boolean eval(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3, @Nonnull Condition[] var4)
for for(Condition var8 : var4)
for for(Condition var8 : var4)
abstract super super(var1)

Исходный код

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

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 com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Instant;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;

class="kw">public class LogicCondition class="kw">extends Condition {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<LogicCondition> CODEC = BuilderCodec.builder(LogicCondition.class, LogicCondition::new, Condition.BASE_CODEC)
      .append(new KeyedCodec<>("Operator", new EnumCodec<>(LogicCondition.Operator.class)), (var0, var1) -> var0.operator = var1, var0 -> var0.operator)
      .documentation("The logical operator to combine the conditions.")
      .addValidator(Validators.nonNull())
      .add()
      .<Condition[]>append(
         new KeyedCodec<>("Conditions", new ArrayCodec<>(Condition.CODEC, Condition[]::new)), (var0, var1) -> var0.conditions = var1, var0 -> var0.conditions
      )
      .documentation("The array of conditions to be evaluated.")
      .addValidator(Validators.nonNull())
      .add()
      .build();
   class="kw">protected LogicCondition.Operator operator;
   class="kw">protected Condition[] conditions;

   class="kw">protected LogicCondition() {
   }

   class="kw">public LogicCondition(boolean var1, @Nonnull LogicCondition.Operator var2, @Nonnull Condition[] var3) {
      super(var1);
      this.operator = var2;
      this.conditions = var3;
   }

   @Override
   class="kw">public boolean eval0(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3) {
      class="kw">return this.operator.eval(var1, var2, var3, this.conditions);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "LogicCondition{operator=" + this.operator + ", conditions=" + Arrays.toString(this.conditions) + "} " + super.toString();
   }

   class="kw">public enum Operator {
      AND {
         @Override
         class="kw">public boolean eval(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3, @Nonnull Condition[] var4) {
            for (Condition var8 : var4) {
               if (!var8.eval(var1, var2, var3)) {
                  class="kw">return false;
               }
            }

            class="kw">return true;
         }
      },
      OR {
         @Override
         class="kw">public boolean eval(@Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3, @Nonnull Condition[] var4) {
            for (Condition var8 : var4) {
               if (var8.eval(var1, var2, var3)) {
                  class="kw">return true;
               }
            }

            class="kw">return false;
         }
      };

      Operator() {
      }

      class="kw">public class="kw">abstract boolean eval(
         @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Instant var3, @Nonnull Condition[] var4
      );
   }
}