diff --git a/src/api b/src/api index 34ed09542..c0aae432d 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit 34ed095423eda1a1289ba10cbe07e2d93875d0a6 +Subproject commit c0aae432d6a69b25a6f4b1c78fb46079383cef73 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 4a83ab0a8..d2ce3f9df 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/Action.java +++ b/src/main/java/noppes/npcs/controllers/data/action/Action.java @@ -1,6 +1,7 @@ package noppes.npcs.controllers.data.action; import noppes.npcs.api.handler.data.IAction; +import noppes.npcs.api.handler.data.actions.IConditionalAction; import noppes.npcs.scripted.CustomNPCsException; import noppes.npcs.scripted.ScriptedActionManager; @@ -55,6 +56,11 @@ public class Action implements IAction { this.startAfterTicks = startAfterTicks; } + public Action(ScriptedActionManager manager, int maxDuration, int startAfterTicks, Consumer task) { + this(manager, startAfterTicks, task); + this.maxDuration = maxDuration; + } + @Override public IAction setTask(Consumer task) { this.task = task; @@ -268,37 +274,6 @@ public class Action implements IAction { return null; } - @Override - public IAction parallel(IAction after) { - return manager.scheduleParallelAction(after); - } - - @Override - public IAction parallel(Consumer task) { - return parallel(manager.create(task)); - } - - @Override - public IAction parallel(int delay, Consumer task) { - return parallel(manager.create(delay, task)); - } - - @Override - public IAction parallel(String name, Consumer task) { - return parallel(manager.create(name, task)); - } - - @Override - public IAction parallel(String name, int startAfterTicks, Consumer task) { - return parallel(manager.create(name, startAfterTicks, task)); - } - - @Override - public IAction parallel(String name, int maxDuration, int delay, Consumer t) { - return parallel(manager.create(name, maxDuration, delay, t)); - } - - @Override public IAction after(IAction after) { int idx = manager.getIndex(this); @@ -362,4 +337,69 @@ public class Action implements IAction { public IAction before(Consumer t) { return before(manager.create(t)); } + + @Override + public IConditionalAction conditional(IConditionalAction after) { + return manager.scheduleAction(after); + } + + @Override + public IConditionalAction conditional(Supplier condition, Consumer task) { + return conditional(manager.create(condition, task)); + } + + @Override + public IConditionalAction conditional(String name, Supplier condition, Consumer task) { + return conditional(manager.create(name, condition, task)); + } + + @Override + public IConditionalAction conditional(Supplier condition, Consumer task, Supplier terminateWhen) { + return conditional(manager.create(condition, task, terminateWhen)); + } + + @Override + public IConditionalAction conditional(String name, Supplier condition, Consumer task, Supplier terminateWhen) { + return conditional(manager.create(name, condition, task, terminateWhen)); + } + + @Override + public IConditionalAction conditional(Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination) { + return conditional(manager.create(condition, task, terminateWhen, onTermination)); + } + + @Override + public IConditionalAction conditional(String name, Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination) { + return conditional(manager.create(name, condition, task, terminateWhen, onTermination)); + } + + @Override + public IAction parallel(IAction after) { + return manager.scheduleParallelAction(after); + } + + @Override + public IAction parallel(Consumer task) { + return parallel(manager.create(task)); + } + + @Override + public IAction parallel(int delay, Consumer task) { + return parallel(manager.create(delay, task)); + } + + @Override + public IAction parallel(String name, Consumer task) { + return parallel(manager.create(name, task)); + } + + @Override + public IAction parallel(String name, int startAfterTicks, Consumer task) { + return parallel(manager.create(name, startAfterTicks, task)); + } + + @Override + public IAction parallel(String name, int maxDuration, int delay, Consumer t) { + return parallel(manager.create(name, maxDuration, delay, t)); + } } diff --git a/src/main/java/noppes/npcs/controllers/data/action/ConditionalAction.java b/src/main/java/noppes/npcs/controllers/data/action/ConditionalAction.java index 522b626ad..28ddf36cf 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ConditionalAction.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ConditionalAction.java @@ -144,38 +144,4 @@ public class ConditionalAction extends Action implements IConditionalAction { return maxChecks; } - @Override - public IConditionalAction after(IConditionalAction after) { - return manager.scheduleAction(after); - } - - @Override - public IConditionalAction after(Supplier condition, Consumer task) { - return after(manager.create(condition, task)); - } - - @Override - public IConditionalAction after(String name, Supplier condition, Consumer task) { - return after(manager.create(name, condition, task)); - } - - @Override - public IConditionalAction after(Supplier condition, Consumer task, Supplier terminateWhen) { - return after(manager.create(condition, task, terminateWhen)); - } - - @Override - public IConditionalAction after(String name, Supplier condition, Consumer task, Supplier terminateWhen) { - return after(manager.create(name, condition, task, terminateWhen)); - } - - @Override - public IConditionalAction after(Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination) { - return after(manager.create(condition, task, terminateWhen, onTermination)); - } - - @Override - public IConditionalAction after(String name, Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination) { - return after(manager.create(name, condition, task, terminateWhen, onTermination)); - } } diff --git a/src/main/java/noppes/npcs/scripted/ScriptedActionManager.java b/src/main/java/noppes/npcs/scripted/ScriptedActionManager.java index cf9f95bc0..9df292a1d 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptedActionManager.java +++ b/src/main/java/noppes/npcs/scripted/ScriptedActionManager.java @@ -39,6 +39,10 @@ public class ScriptedActionManager implements IActionManager { return new Action(this, t); } + @Override + public IAction create(int maxDuration, int delay, Consumer task) { + return new Action(this, maxDuration, delay, task); + } @Override public IAction create(String name, int maxDuration, int delay, Consumer task) { return new Action(this, name, maxDuration, delay, task); @@ -115,6 +119,11 @@ public class ScriptedActionManager implements IActionManager { return scheduleAction(create(delay, task)); } + @Override + public IAction scheduleAction(int maxDuration, int delay, Consumer task) { + return scheduleAction(create(maxDuration, delay, task)); + } + @Override public IAction scheduleAction(String name, Consumer task) { return scheduleAction(create(name, task)); @@ -245,6 +254,22 @@ public class ScriptedActionManager implements IActionManager { /////////////////////////////////////////////////// /////////////////////////////////////////////////// // Conditionals + @Override + public IConditionalAction scheduleAction(Supplier condition, Consumer task) { + return scheduleAction(new ConditionalAction(this, condition, task)); + } + + @Override + public IConditionalAction scheduleAction(Supplier condition, Consumer task, Supplier terminateWhen) { + return scheduleAction(new ConditionalAction(this, condition, task, terminateWhen)); + } + + @Override + public IConditionalAction scheduleAction(Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination) { + return scheduleAction(new ConditionalAction(this, condition, task, terminateWhen, onTermination)); + } + + @Override public IConditionalAction scheduleAction(String name, Supplier condition, Consumer task) { return scheduleAction(new ConditionalAction(this, name, condition, task));