BrushConfigIntegerComparison class

Пакет: com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.flowcontrol

Файл: com/hypixel/hytale/builtin/buildertools/scriptedbrushes/operations/sequential/flowcontrol/JumpIfCompareOperation.java

implements: Function<BrushConfig, Boolean>

Поля (4)

МодификаторыТипИмя
public static final BuilderCodec<JumpIfCompareOperation.BrushConfigIntegerComparison> CODEC
private BrushConfig.DataGettingFlags dataGettingFlag
private ArgTypes.IntegerComparisonOperator integerComparisonOperator
private int valueToCompareTo

Методы (2)

МодификаторыВозвратСигнатура
public Boolean applypublic Boolean apply(BrushConfig var1)
public String toStringpublic String toString()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.flowcontrol;

class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfig;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfigCommandExecutor;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
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 com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Arrays;
class="kw">import java.util.List;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;

class="kw">public class JumpIfCompareOperation class="kw">extends SequenceBrushOperation {
   class="kw">public class="kw">static class="kw">final BuilderCodec<JumpIfCompareOperation> CODEC = BuilderCodec.builder(JumpIfCompareOperation.class, JumpIfCompareOperation::new)
      .append(
         new KeyedCodec<>(
            "Comparisons",
            new ArrayCodec<>(JumpIfCompareOperation.BrushConfigIntegerComparison.CODEC, JumpIfCompareOperation.BrushConfigIntegerComparison[]::new)
         ),
         (var0, var1) -> var0.comparisonsArg = var1 != null ? Arrays.asList(var1) : List.of(),
         var0 -> var0.comparisonsArg.toArray(new JumpIfCompareOperation.BrushConfigIntegerComparison[0])
      )
      .documentation("The comparison(s) that will be executed using AND between them to see if you should jump or not")
      .add()
      .<String>append(new KeyedCodec<>("StoredIndexName", Codec.STRING), (var0, var1) -> var0.indexVariableNameArg = var1, var0 -> var0.indexVariableNameArg)
      .documentation("The labeled index to jump to, previous or future")
      .add()
      .documentation("Jump stack execution to a stored index operation based on a specified conditional using the brush config data")
      .build();
   @Nonnull
   class="kw">public List<JumpIfCompareOperation.BrushConfigIntegerComparison> comparisonsArg = List.of();
   @Nonnull
   class="kw">public String indexVariableNameArg = "Undefined";

   class="kw">public JumpIfCompareOperation() {
      super("Jump If Int Comparison", "Jump stack execution to a stored index operation based on a specified conditional using the brush config data", false);
   }

   @Override
   class="kw">public void modifyBrushConfig(
      @Nonnull Ref<EntityStore> var1, @Nonnull BrushConfig var2, @Nonnull BrushConfigCommandExecutor var3, @Nonnull ComponentAccessor<EntityStore> var4
   ) {
      boolean var5 = true;

      for (JumpIfCompareOperation.BrushConfigIntegerComparison var7 : this.comparisonsArg) {
         boolean var8 = var7.apply(var2);
         if (!var8) {
            var5 = false;
         }
      }

      if (var5) {
         var3.loadOperatingIndex(this.indexVariableNameArg);
      }
   }

   class="kw">public class="kw">static class BrushConfigIntegerComparison class="kw">implements Function<BrushConfig, Boolean> {
      class="kw">public class="kw">static class="kw">final BuilderCodec<JumpIfCompareOperation.BrushConfigIntegerComparison> CODEC = BuilderCodec.builder(
            JumpIfCompareOperation.BrushConfigIntegerComparison.class, JumpIfCompareOperation.BrushConfigIntegerComparison::new
         )
         .append(
            new KeyedCodec<>("DataGettingFlag", new EnumCodec<>(BrushConfig.DataGettingFlags.class)),
            (var0, var1) -> var0.dataGettingFlag = var1,
            var0 -> var0.dataGettingFlag
         )
         .add()
         .append(
            new KeyedCodec<>("IntegerComparisonOperator", new EnumCodec<>(ArgTypes.IntegerComparisonOperator.class)),
            (var0, var1) -> var0.integerComparisonOperator = var1,
            var0 -> var0.integerComparisonOperator
         )
         .add()
         .append(new KeyedCodec<>("ValueToCompareTo", Codec.INTEGER), (var0, var1) -> var0.valueToCompareTo = var1, var0 -> var0.valueToCompareTo)
         .add()
         .build();
      class="kw">private BrushConfig.DataGettingFlags dataGettingFlag;
      class="kw">private ArgTypes.IntegerComparisonOperator integerComparisonOperator;
      class="kw">private int valueToCompareTo;

      class="kw">public BrushConfigIntegerComparison() {
      }

      class="kw">public BrushConfigIntegerComparison(BrushConfig.DataGettingFlags var1, ArgTypes.IntegerComparisonOperator var2, int var3) {
         this.dataGettingFlag = var1;
         this.integerComparisonOperator = var2;
         this.valueToCompareTo = var3;
      }

      @Nonnull
      class="kw">public Boolean apply(BrushConfig var1) {
         class="kw">return this.integerComparisonOperator.compare(this.dataGettingFlag.getValue(var1), this.valueToCompareTo);
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return this.dataGettingFlag.name() + " " + this.integerComparisonOperator.getStringRepresentation() + " " + this.valueToCompareTo;
      }
   }
}