From 8b4892cb353e277e1fbed69c0b9f6f9ba56e371c Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Mon, 30 Jun 2025 20:14:08 +0300 Subject: [PATCH] Scheduled conditionals properly using after(), before() and sequential schedule() --- .../java/noppes/npcs/controllers/data/action/Action.java | 6 ++++++ .../noppes/npcs/controllers/data/action/ActionManager.java | 3 +++ 2 files changed, 9 insertions(+) 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 8e3f916f3..9ab3fbf08 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/Action.java +++ b/src/main/java/noppes/npcs/controllers/data/action/Action.java @@ -365,6 +365,9 @@ public class Action implements IAction { } @Override public IAction after(IAction after) { + if (after instanceof IConditionalAction) + return conditional((IConditionalAction) after); + int idx = manager.getIndex(this); if (idx >= 0) manager.scheduleActionAt(idx + 1, after); @@ -403,6 +406,9 @@ public class Action implements IAction { @Override public IAction before(IAction before) { + if (before instanceof IConditionalAction) + return conditional((IConditionalAction) before); + int idx = manager.getIndex(this); if (idx >= 0) manager.scheduleActionAt(Math.max(0, idx), before); 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 72ea15555..3e2dc4bc4 100644 --- a/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java +++ b/src/main/java/noppes/npcs/controllers/data/action/ActionManager.java @@ -101,6 +101,9 @@ public class ActionManager implements IActionManager { @Override public IAction schedule(IAction action) { + if (action instanceof IConditionalAction) + return schedule((IConditionalAction) action); + Action act = (Action) action; if (act.unscheduledBefore != null) act.scheduleAllBefore(actionQueue);