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