From 393a7fbb5695ac45c2cfa87dcfd2eb5fb3ea52b2 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Wed, 2 Jul 2025 11:51:00 +0300 Subject: [PATCH] Added varargs chaining to IActions i.e schedule(act1,act2,act3...) --- .../npcs/controllers/data/action/Action.java | 33 +++++++++++++++++++ .../data/action/ActionManager.java | 31 ++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) 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 80e9297a3..50b85198e 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/Action.java +++ b/src/main/java/noppes/npcs/controllers/data/action/Action.java @@ -377,6 +377,22 @@ public class Action implements IAction { return after; } + @Override + public void after(IAction... actions) { + for (int i = 0; i < actions.length - 1; i++) + actions[i].after(actions[i + 1]); + } + + @Override + public void after(Consumer... tasks) { + IAction[] actions = new IAction[tasks.length]; + + for (int i = 0; i < tasks.length; i++) + actions[i] = manager.create(tasks[i]); + + after(actions); + } + @Override public IAction after(String name, int maxDuration, int delay, Consumer t) { return after(manager.create(name, maxDuration, delay, t)); @@ -448,6 +464,12 @@ public class Action implements IAction { return manager.schedule(after); } + @Override + public void conditional(IConditionalAction... actions) { + for (IConditionalAction act : actions) + conditional(act); + } + @Override public IConditionalAction conditional(Function condition, Consumer task) { return conditional(manager.create(condition, task)); @@ -483,11 +505,22 @@ public class Action implements IAction { return manager.scheduleParallel(after); } + @Override + public void parallel(IAction... actions) { + for (IAction act : actions) + parallel(act); + } + @Override public IAction parallel(Consumer task) { return parallel(manager.create(task)); } + @Override + public void parallel(Consumer... tasks) { + for (Consumer task : tasks) + parallel(task); + } @Override public IAction parallel(int delay, Consumer task) { return parallel(manager.create(delay, task)); 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 37b806d01..6c73aae74 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java @@ -117,6 +117,18 @@ public class ActionManager implements IActionManager { return action; } + @Override + public void schedule(IAction... actions) { + for (IAction act : actions) + schedule(act); + } + + @Override + public void schedule(Consumer... tasks) { + for (Consumer task : tasks) + schedule(task); + } + @Override public IAction schedule(Consumer task) { return schedule(create(task)); @@ -257,7 +269,6 @@ public class ActionManager implements IActionManager { return schedule(new ConditionalAction(this, name, condition, task, terminateWhen, onTermination)); } - @Override public IConditionalAction schedule(IConditionalAction action) { conditionalActions.add(action); @@ -265,6 +276,12 @@ public class ActionManager implements IActionManager { return action; } + @Override + public void schedule(IConditionalAction... actions) { + for (IConditionalAction act : actions) + schedule(act); + } + @Override public List getConditionalActions() { return new ArrayList<>(conditionalActions); @@ -286,6 +303,18 @@ public class ActionManager implements IActionManager { return action; } + @Override + public void scheduleParallel(IAction... actions) { + for (IAction act : actions) + scheduleParallel(act); + } + + @Override + public void scheduleParallel(Consumer... tasks) { + for (Consumer task : tasks) + scheduleParallel(task); + } + @Override public IAction scheduleParallel(Consumer task) { return scheduleParallel(create(task));