Added varargs chaining to IActions

i.e schedule(act1,act2,act3...)
This commit is contained in:
bigguy345 committed 2025-07-02 11:51:00 +03:00
1 parent b3c9c24f42
commit 393a7fbb56
2 files changed
+63 -1

No files matched your search

@@ -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<IAction>... 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<IAction> 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<IAction, Boolean> condition, Consumer<IAction> 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<IAction> task) {
return parallel(manager.create(task));
}
@Override
public void parallel(Consumer<IAction>... tasks) {
for (Consumer<IAction> task : tasks)
parallel(task);
}
@Override
public IAction parallel(int delay, Consumer<IAction> task) {
return parallel(manager.create(delay, task));
@@ -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<IAction>... tasks) {
for (Consumer<IAction> task : tasks)
schedule(task);
}
@Override
public IAction schedule(Consumer<IAction> 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<IConditionalAction> 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<IAction>... tasks) {
for (Consumer<IAction> task : tasks)
scheduleParallel(task);
}
@Override
public IAction scheduleParallel(Consumer<IAction> task) {
return scheduleParallel(create(task));