diff --git a/src/main/java/noppes/npcs/controllers/data/action/ActionChain.java b/src/main/java/noppes/npcs/controllers/data/action/ActionChain.java index 3f17e99eb..69b2e1c0f 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ActionChain.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ActionChain.java @@ -10,11 +10,11 @@ import java.util.function.Consumer; * helper to build a back‐to‐back chain of one‐shot actions */ public class ActionChain implements IActionChain { - private final ScriptedActionManager scriptedActionManager; + private final ScriptedActionManager manager; private int offset = 0, index = 0; public ActionChain(ScriptedActionManager scriptedActionManager) { - this.scriptedActionManager = scriptedActionManager; + this.manager = scriptedActionManager; } /** @@ -23,14 +23,8 @@ public class ActionChain implements IActionChain { @Override public IActionChain after(int delay, String name, Consumer task) { offset += delay; - Consumer wrapper = act -> { - task.accept(act); - act.markDone(); - }; - IAction a = scriptedActionManager.create(name, offset, wrapper); index++; - a.setUpdateEveryXTick(1); - scriptedActionManager.schedule(a); + manager.schedule(name, offset, task).updateEvery(1).once(); return this; } @@ -38,4 +32,10 @@ public class ActionChain implements IActionChain { public IActionChain after(int delay, Consumer task) { return after(delay, "chain#" + index, task); } + + @Override + public IActionChain start() { + manager.start(); + return this; + } } diff --git a/src/main/java/noppes/npcs/controllers/data/action/ParallelActionChain.java b/src/main/java/noppes/npcs/controllers/data/action/ParallelActionChain.java index 640316b66..d0bba15f2 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ParallelActionChain.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ParallelActionChain.java @@ -7,11 +7,11 @@ import noppes.npcs.scripted.ScriptedActionManager; import java.util.function.Consumer; public class ParallelActionChain implements IActionChain { - private final ScriptedActionManager scriptedActionManager; + private final ScriptedActionManager manager; private int offset = 0, idx = 0; public ParallelActionChain(ScriptedActionManager scriptedActionManager) { - this.scriptedActionManager = scriptedActionManager; + this.manager = scriptedActionManager; } /** @@ -20,16 +20,9 @@ public class ParallelActionChain implements IActionChain { @Override public IActionChain after(int delay, String name, Consumer task) { offset += delay; - Consumer wrapper = act -> { - task.accept(act); - act.markDone(); - }; - IAction a = scriptedActionManager.create(name, - offset, - wrapper); idx++; - a.setUpdateEveryXTick(1); - scriptedActionManager.scheduleParallel(a); + + manager.scheduleParallel(name, offset, task).updateEvery(1).once(); return this; } @@ -37,4 +30,10 @@ public class ParallelActionChain implements IActionChain { public IActionChain after(int delay, Consumer task) { return after(delay, "parallel#" + idx, task); } + + @Override + public IActionChain start() { + manager.start(); + return this; + } }