InstructionContextHelper class

Пакет: com.hypixel.hytale.server.npc.asset.builder

Файл: com/hypixel/hytale/server/npc/asset/builder/InstructionContextHelper.java

Поля (1)

МодификаторыТипИмя
final InstructionType context

Методы (18)

МодификаторыВозвратСигнатура
abstract throw new IllegalStateExceptionthrow new IllegalStateException("Calling validateComponentContext on a InstructionContextHelper that is not part of a component!")
public void addComponentContextEvaluatorvoid addComponentContextEvaluator(BiConsumer<InstructionType, ComponentContext> var1)
public boolean extraContextMatchesboolean extraContextMatches(@Nullable EnumSet<ComponentContext> var1)
static boolean extraContextMatchesboolean extraContextMatches(@Nullable EnumSet<ComponentContext> var0, ComponentContext var1)
for for(BiConsumer var4 : this.componentContextEvaluators)
public ComponentContext getComponentContextComponentContext getComponentContext()
public InstructionType getInstructionContextInstructionType getInstructionContext()
if if(this.componentContextEvaluators == null)
if if(this.componentContextEvaluators != null)
public boolean isComponentboolean isComponent()
public boolean isInCorrectInstructionboolean isInCorrectInstruction(@Nonnull EnumSet<InstructionType> var1)
static boolean isInCorrectInstructionboolean isInCorrectInstruction(@Nonnull EnumSet<InstructionType> var0, InstructionType var1)
public boolean isInForEachboolean isInForEach()
public boolean isInUnisolatedForEachboolean isInUnisolatedForEach()
public void popForEachvoid popForEach()
public void pushForEachvoid pushForEach(boolean var1)
public void setComponentContextvoid setComponentContext(ComponentContext var1)
public void validateComponentContextvoid validateComponentContext(InstructionType var1, ComponentContext var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.asset.builder;

class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.ArrayDeque;
class="kw">import java.util.EnumSet;
class="kw">import java.util.List;
class="kw">import java.util.function.BiConsumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class InstructionContextHelper {
   class="kw">private class="kw">final InstructionType context;
   class="kw">private ComponentContext componentContext;
   class="kw">private List<BiConsumer<InstructionType, ComponentContext>> componentContextEvaluators;
   class="kw">private class="kw">final ArrayDeque<Boolean> forEachIsolateStack = new ArrayDeque<>();

   class="kw">public InstructionContextHelper(InstructionType var1) {
      this.context = var1;
   }

   class="kw">public boolean isComponent() {
      class="kw">return this.context == InstructionType.Component;
   }

   class="kw">public void setComponentContext(ComponentContext var1) {
      this.componentContext = var1;
   }

   class="kw">public boolean isInCorrectInstruction(@Nonnull EnumSet<InstructionType> var1) {
      class="kw">return var1.contains(this.context);
   }

   class="kw">public class="kw">static boolean isInCorrectInstruction(@Nonnull EnumSet<InstructionType> var0, InstructionType var1) {
      class="kw">return var0.contains(var1);
   }

   class="kw">public boolean extraContextMatches(@Nullable EnumSet<ComponentContext> var1) {
      class="kw">return var1 == null || var1.contains(this.componentContext);
   }

   class="kw">public class="kw">static boolean extraContextMatches(@Nullable EnumSet<ComponentContext> var0, ComponentContext var1) {
      class="kw">return var0 == null || var0.contains(var1);
   }

   class="kw">public void addComponentContextEvaluator(BiConsumer<InstructionType, ComponentContext> var1) {
      if (this.componentContextEvaluators == null) {
         this.componentContextEvaluators = new ObjectArrayList();
      }

      this.componentContextEvaluators.add(var1);
   }

   class="kw">public void validateComponentContext(InstructionType var1, ComponentContext var2) {
      if (!this.isComponent()) {
         throw new IllegalStateException("Calling validateComponentContext on a InstructionContextHelper that is not part of a component!");
      }

      if (this.componentContextEvaluators != null) {
         for (BiConsumer var4 : this.componentContextEvaluators) {
            var4.accept(var1, var2);
         }
      }
   }

   class="kw">public InstructionType getInstructionContext() {
      class="kw">return this.context;
   }

   class="kw">public ComponentContext getComponentContext() {
      class="kw">return this.componentContext;
   }

   class="kw">public void pushForEach(boolean var1) {
      this.forEachIsolateStack.push(var1);
   }

   class="kw">public void popForEach() {
      this.forEachIsolateStack.pop();
   }

   class="kw">public boolean isInForEach() {
      class="kw">return !this.forEachIsolateStack.isEmpty();
   }

   class="kw">public boolean isInUnisolatedForEach() {
      class="kw">return !this.forEachIsolateStack.isEmpty() && !this.forEachIsolateStack.peek();
   }
}