ActionList class

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

Файл: com/hypixel/hytale/server/npc/instructions/ActionList.java

Поля (2)

МодификаторыТипИмя
final ActionList EMPTY_ACTION_LIST
Action var11

Методы (40)

МодификаторыВозвратСигнатура
public int actionCountint actionCount()
public boolean canExecuteboolean canExecute(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6)
public void clearOncevoid clearOnce()
public boolean executeboolean execute(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6)
for for(Action var5 : var1)
for for(Action var10 : this.actions)
for for(Action var10 : this.actions)
for for(int var2 = 0; var2 < this.actions.length; var2++)
for for(Action var5 : this.actions)
for for(Action var8 : this.actions)
for for(Action var5 : this.actions)
for for(Action var5 : this.actions)
for for(Action var5 : this.actions)
for for(Action var5 : this.actions)
for for(Action var7 : this.actions)
for for(Action var4 : this.actions)
for for(Action var4 : this.actions)
for for(Action var4 : this.actions)
public IAnnotatedComponent getComponentIAnnotatedComponent getComponent(int var1)
public boolean hasCompletedRunboolean hasCompletedRun()
if if(this.actions.length == 0)
if if(this.blocking)
if if(this.actionIndex >= this.actions.length)
if if(!this.atomic)
if if(this.blocking)
if if(this.actionIndex >= this.actions.length)
if if(!this.blocking)
public boolean isBusyboolean isBusy()
public void loadedvoid loaded(ExecutionSupport var1)
public void motionControllerChangedvoid motionControllerChanged(@Nullable Ref<EntityStore> var1, @Nonnull NPCEntity var2, MotionController var3, @Nullable ComponentAccessor<EntityStore> var4)
public void onEndMotionvoid onEndMotion()
public void registerWithSupportvoid registerWithSupport(ExecutionSupport var1)
public void removedvoid removed(ExecutionSupport var1)
public void setAtomicvoid setAtomic(boolean var1)
public void setBlockingvoid setBlocking(boolean var1)
public void setContextvoid setContext(IAnnotatedComponent var1)
public void setOncevoid setOnce()
public void spawnedvoid spawned(ExecutionSupport var1)
public void teleportedvoid teleported(ExecutionSupport var1, World var2, World var3)
public void unloadedvoid unloaded(ExecutionSupport var1)

Исходный код

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

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.movement.controllers.MotionController;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider;
class="kw">import com.hypixel.hytale.server.npc.util.IAnnotatedComponent;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ActionList {
   class="kw">public class="kw">static class="kw">final ActionList EMPTY_ACTION_LIST = new ActionList(Action.EMPTY_ARRAY);
   @Nonnull
   class="kw">protected class="kw">final Action[] actions;
   class="kw">protected boolean blocking;
   class="kw">protected boolean atomic;
   class="kw">protected int actionIndex;

   class="kw">public ActionList(@Nonnull Action[] var1) {
      this.actions = var1;
      Objects.requireNonNull(var1, "Action array in sequence must not be null");

      for (Action var5 : var1) {
         Objects.requireNonNull(var5, "Action in sequence can't be null");
      }
   }

   class="kw">public void setBlocking(boolean var1) {
      this.blocking = var1;
   }

   class="kw">public void setAtomic(boolean var1) {
      this.atomic = var1;
   }

   class="kw">public boolean canExecute(
      @Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6
   ) {
      if (this.actions.length == 0) {
         class="kw">return false;
      }

      if (this.blocking) {
         if (this.actionIndex >= this.actions.length) {
            this.actionIndex = 0;
         }

         class="kw">return this.actions[this.actionIndex].canExecute(var1, var2, var3, var4, var6);
      } else {
         for (Action var10 : this.actions) {
            if (var10.canExecute(var1, var2, var3, var4, var6)) {
               if (!this.atomic) {
                  class="kw">return true;
               }
            } else if (this.atomic) {
               class="kw">return false;
            }
         }

         class="kw">return this.atomic;
      }
   }

   class="kw">public boolean execute(
      @Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6
   ) {
      if (this.blocking) {
         Action var11 = this.actions[this.actionIndex];
         if (!var11.canExecute(var1, var2, var3, var4, var6)) {
            class="kw">return false;
         }

         if (!var11.isActivated()) {
            var11.activate(var2, var3);
         }

         if (!var11.execute(var1, var2, var3, var4, var6)) {
            class="kw">return false;
         }

         var11.deactivate(var2, var3);
         this.actionIndex++;
         class="kw">return this.actionIndex >= this.actions.length;
      } else {
         for (Action var10 : this.actions) {
            if (var10.canExecute(var1, var2, var3, var4, var6)) {
               if (!var10.isActivated()) {
                  var10.activate(var2, var3);
               }

               var10.execute(var1, var2, var3, var4, var6);
            } else if (var10.isActivated()) {
               var10.deactivate(var2, var3);
            }
         }

         class="kw">return true;
      }
   }

   class="kw">public boolean hasCompletedRun() {
      if (this.actionIndex >= this.actions.length) {
         this.actionIndex = 0;
         class="kw">return true;
      } else {
         class="kw">return false;
      }
   }

   class="kw">public void setContext(IAnnotatedComponent var1) {
      for (int var2 = 0; var2 < this.actions.length; var2++) {
         this.actions[var2].setContext(var1, var2);
      }
   }

   class="kw">public void registerWithSupport(ExecutionSupport var1) {
      for (Action var5 : this.actions) {
         var5.registerWithSupport(var1);
      }
   }

   class="kw">public void motionControllerChanged(
      @Nullable Ref<EntityStore> var1, @Nonnull NPCEntity var2, MotionController var3, @Nullable ComponentAccessor<EntityStore> var4
   ) {
      for (Action var8 : this.actions) {
         var8.motionControllerChanged(var1, var2, var3, var4);
      }
   }

   class="kw">public void loaded(ExecutionSupport var1) {
      for (Action var5 : this.actions) {
         var5.loaded(var1);
      }
   }

   class="kw">public void spawned(ExecutionSupport var1) {
      for (Action var5 : this.actions) {
         var5.spawned(var1);
      }
   }

   class="kw">public void unloaded(ExecutionSupport var1) {
      for (Action var5 : this.actions) {
         var5.unloaded(var1);
      }
   }

   class="kw">public void removed(ExecutionSupport var1) {
      for (Action var5 : this.actions) {
         var5.removed(var1);
      }
   }

   class="kw">public void teleported(ExecutionSupport var1, World var2, World var3) {
      for (Action var7 : this.actions) {
         var7.teleported(var1, var2, var3);
      }
   }

   class="kw">public void clearOnce() {
      for (Action var4 : this.actions) {
         var4.clearOnce();
      }

      this.actionIndex = 0;
   }

   class="kw">public void onEndMotion() {
      if (!this.blocking) {
         this.clearOnce();
      }
   }

   class="kw">public void setOnce() {
      for (Action var4 : this.actions) {
         var4.setOnce();
      }
   }

   class="kw">public boolean isBusy() {
      for (Action var4 : this.actions) {
         if (var4.isBusy()) {
            class="kw">return true;
         }
      }

      class="kw">return false;
   }

   class="kw">public int actionCount() {
      class="kw">return this.actions.length;
   }

   class="kw">public IAnnotatedComponent getComponent(int var1) {
      class="kw">return this.actions[var1];
   }
}