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