OperationsBuilder class

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.operation

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/operation/OperationsBuilder.java

Методы (13)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Label already resolved")
abstract return new Labelreturn new Label(Integer.MIN_VALUE)
public void addOperationvoid addOperation(@Nonnull Operation var1)
public void addOperationvoid addOperation(@Nonnull Operation var1, Label... var2)
public InteractionRules getRulespublic InteractionRules getRules()
public WaitForDataFrom getWaitForDataFrompublic WaitForDataFrom getWaitForDataFrom()
public void handlepublic void handle(@Nonnull Ref<EntityStore> var1, boolean var2, float var3, @Nonnull InteractionType var4, @Nonnull InteractionContext var5)
if if(var1.index != Integer.MIN_VALUE)
public void jumpvoid jump(@Nonnull Label var1)
public void resolveLabelvoid resolveLabel(@Nonnull Label var1)
public void simulateTickpublic void simulateTick(@Nonnull Ref<EntityStore> var1, boolean var2, float var3, @Nonnull InteractionType var4, @Nonnull InteractionContext var5, @Nonnull CooldownHandler var6)
public void tickpublic void tick(@Nonnull Ref<EntityStore> var1, boolean var2, float var3, @Nonnull InteractionType var4, @Nonnull InteractionContext var5, @Nonnull CooldownHandler var6)
public String toStringpublic String toString()

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.WaitForDataFrom;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.InteractionRules;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Arrays;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class OperationsBuilder {
   @Nonnull
   class="kw">private class="kw">final List<Operation> operationList = new ObjectArrayList();

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

   @Nonnull
   class="kw">public Label createLabel() {
      class="kw">return new Label(this.operationList.size());
   }

   @Nonnull
   class="kw">public Label createUnresolvedLabel() {
      class="kw">return new Label(Integer.MIN_VALUE);
   }

   class="kw">public void resolveLabel(@Nonnull Label var1) {
      if (var1.index != Integer.MIN_VALUE) {
         throw new IllegalArgumentException("Label already resolved");
      }

      var1.index = this.operationList.size();
   }

   class="kw">public void jump(@Nonnull Label var1) {
      this.operationList.add(new JumpOperation(var1));
   }

   class="kw">public void addOperation(@Nonnull Operation var1) {
      this.operationList.add(var1);
   }

   class="kw">public void addOperation(@Nonnull Operation var1, Label... var2) {
      this.operationList.add(new OperationsBuilder.LabelOperation(var1, var2));
   }

   @Nonnull
   class="kw">public Operation[] build() {
      class="kw">return this.operationList.toArray(Operation[]::new);
   }

   class="kw">private record LabelOperation(Operation inner, Label[] labels) class="kw">implements Operation, Operation.NestedOperation {
      class="kw">private LabelOperation {
      }

      @Override
      class="kw">public void tick(
         @Nonnull Ref<EntityStore> var1,
         boolean var2,
         float var3,
         @Nonnull InteractionType var4,
         @Nonnull InteractionContext var5,
         @Nonnull CooldownHandler var6
      ) {
         var5.setLabels(this.labels);
         this.inner.tick(var1, var2, var3, var4, var5, var6);
      }

      @Override
      class="kw">public void simulateTick(
         @Nonnull Ref<EntityStore> var1,
         boolean var2,
         float var3,
         @Nonnull InteractionType var4,
         @Nonnull InteractionContext var5,
         @Nonnull CooldownHandler var6
      ) {
         var5.setLabels(this.labels);
         this.inner.simulateTick(var1, var2, var3, var4, var5, var6);
      }

      @Override
      class="kw">public void handle(@Nonnull Ref<EntityStore> var1, boolean var2, float var3, @Nonnull InteractionType var4, @Nonnull InteractionContext var5) {
         var5.setLabels(this.labels);
         this.inner.handle(var1, var2, var3, var4, var5);
      }

      @Override
      class="kw">public WaitForDataFrom getWaitForDataFrom() {
         class="kw">return this.inner.getWaitForDataFrom();
      }

      @Override
      class="kw">public InteractionRules getRules() {
         class="kw">return this.inner.getRules();
      }

      @Nonnull
      @Override
      class="kw">public String toString() {
         class="kw">return "LabelOperation{inner=" + this.inner + ", labels=" + Arrays.toString(this.labels) + "}";
      }
   }
}