diff --git a/src/api b/src/api index 1f2c06f49..14f7bd3dd 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit 1f2c06f4985e1bf927eae0bd3c9b84a260691554 +Subproject commit 14f7bd3dd402498e3217aca8d3de26f53340169b diff --git a/src/main/java/noppes/npcs/controllers/data/action/Action.java b/src/main/java/noppes/npcs/controllers/data/action/Action.java index ea7ce9ca0..18c1f2de4 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/Action.java +++ b/src/main/java/noppes/npcs/controllers/data/action/Action.java @@ -140,6 +140,18 @@ public class Action implements IAction { return this; } + @Override + public IAction everyTick() { + this.updateEveryXTick = 1; + return this; + } + + @Override + public IAction everySecond() { + this.updateEveryXTick = 20; + return this; + } + @Override public int getCount() { return count; diff --git a/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java b/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java index abec9edf0..01f4edd32 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java @@ -27,9 +27,9 @@ public class ActionManager implements IActionManager { protected final ActionQueue sequentialQueue = new ActionQueue(this, "mainSequential"); protected final ActionQueue parallelQueue = new ActionQueue(this, "mainParallel", true); protected final ActionQueue conditionalQueue = new ActionQueue(this, "mainConditional", true); - protected final Map otherQueues = new HashMap<>(); + @Override public IActionManager start() { isWorking = true; @@ -145,6 +145,11 @@ public class ActionManager implements IActionManager { return otherQueues.get(name); } + @Override + public boolean hasQueue(String name) { + return otherQueues.containsKey(name); + } + @Override public boolean removeQueue(String name) { IActionQueue queue = otherQueues.get(name); @@ -394,7 +399,7 @@ public class ActionManager implements IActionManager { IActionQueue other = it.next(); ((ActionQueue) other).tick(); - if (other.isKilled()) { + if (other.isDead()) { other.clear(); it.remove(); } diff --git a/src/main/java/noppes/npcs/controllers/data/action/ActionQueue.java b/src/main/java/noppes/npcs/controllers/data/action/ActionQueue.java index e079d6d24..a6fc2c054 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ActionQueue.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ActionQueue.java @@ -18,11 +18,11 @@ public class ActionQueue implements IActionQueue { protected boolean isWorking = true; protected boolean isParallel; - protected boolean kill; + protected boolean isDead; protected boolean killWhenEmpty; protected int killWhenEmptyAfter = 100; - private Action autoKill; + protected Action autoKill; public ActionQueue(ActionManager manager, String name) { this.manager = manager; @@ -93,13 +93,13 @@ public class ActionQueue implements IActionQueue { } @Override - public boolean isKilled() { - return kill; + public boolean isDead() { + return isDead; } @Override public IActionQueue kill() { - this.kill = true; + this.isDead = true; return this; } @@ -264,7 +264,7 @@ public class ActionQueue implements IActionQueue { // Handling protected void tick() { - if (!isWorking) + if (!isWorking || isDead) return; if (!isParallel) { @@ -299,7 +299,7 @@ public class ActionQueue implements IActionQueue { return; manager.removeQueue(name); - }).updateEvery(1).once(); + }).everyTick().once(); if (autoKill != null) { autoKill.tick(); diff --git a/src/main/java/noppes/npcs/controllers/data/action/action/ConditionalAction.java b/src/main/java/noppes/npcs/controllers/data/action/action/ConditionalAction.java index c8b890bf8..845f09c54 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/action/ConditionalAction.java +++ b/src/main/java/noppes/npcs/controllers/data/action/action/ConditionalAction.java @@ -11,12 +11,12 @@ import java.util.function.Function; public class ConditionalAction extends Action implements IConditionalAction { - private Function condition; - private Function terminateWhen; - private Consumer onTermination; - private int maxChecks = -1; - private int checkCount; - private boolean taskExecuted; + protected Function condition; + protected Function terminateWhen; + protected Consumer onTermination; + protected int maxChecks = -1; + protected int checkCount; + protected boolean taskExecuted; public ConditionalAction(ActionManager manager, Function condition, Consumer task) { super(manager, task); diff --git a/src/main/java/noppes/npcs/controllers/data/action/chain/ActionChain.java b/src/main/java/noppes/npcs/controllers/data/action/chain/ActionChain.java index 3897f4091..c5940a2a6 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/chain/ActionChain.java +++ b/src/main/java/noppes/npcs/controllers/data/action/chain/ActionChain.java @@ -50,7 +50,7 @@ public class ActionChain implements IActionChain { @Override public IActionChain after(int delay, String name, Consumer task) { offset = queue.isParallel() ? offset + delay : delay; - queue.schedule(name, offset, task).updateEvery(1).once(); + queue.schedule(name, offset, task).everyTick().once(); index++; return this; }