mirror of
https://github.com/AutismDevelopment/Autism-Client.git
synced 2026-10-28 19:39:48 +00:00
Refactor: extract MacroRunLoop from MacroExecutor (upstream #4)
Move run/runInternal plus the wait primitives they own (waitForCondition, waitForPredicate, guiClosePredicate x2, runPacedTpAction, yieldToMainThread) verbatim into MacroRunLoop. Shared members referenced as MacroExecutor.xxx (mechanical qualification only); wait-primitive call sites re-pointed across all helpers. All bodies verified identical against HEAD modulo that qualification.
This commit is contained in:
parent
6751b750a3
commit
45431ab136
7 changed files with 1346 additions and 1326 deletions
|
|
@ -144,7 +144,7 @@ final class MacroActionRunner {
|
|||
return true;
|
||||
}
|
||||
CompletableFuture<Void> future = MacroConditionRegistry.waitForGui(guiName.value());
|
||||
MacroExecutor.waitForCondition(future);
|
||||
MacroRunLoop.waitForCondition(future);
|
||||
waitForCurrentGuiReady(mc);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -285,17 +285,17 @@ final class MacroActionRunner {
|
|||
@Override public void waitTicks(int ticks) {
|
||||
MacroExecutor.withRunContext(run, () -> {
|
||||
for (int i = 0; i < ticks && MacroExecutor.isCurrentRunActive(); i++) {
|
||||
MacroExecutor.waitForCondition(MacroConditionRegistry.waitForNextTick());
|
||||
MacroRunLoop.waitForCondition(MacroConditionRegistry.waitForNextTick());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override public void awaitCondition(CompletableFuture<Void> future) {
|
||||
if (future != null) MacroExecutor.withRunContext(run, () -> MacroExecutor.waitForCondition(future));
|
||||
if (future != null) MacroExecutor.withRunContext(run, () -> MacroRunLoop.waitForCondition(future));
|
||||
}
|
||||
|
||||
@Override public void awaitCondition(autismclient.api.macro.AddonCondition condition) {
|
||||
if (condition != null) MacroExecutor.withRunContext(run, () -> MacroExecutor.waitForCondition(MacroConditionRegistry.await(condition)));
|
||||
if (condition != null) MacroExecutor.withRunContext(run, () -> MacroRunLoop.waitForCondition(MacroConditionRegistry.await(condition)));
|
||||
}
|
||||
|
||||
@Override public boolean isActive() { return run != null && run.running.get() && !PackHideState.isHardLocked(); }
|
||||
|
|
@ -351,7 +351,7 @@ final class MacroActionRunner {
|
|||
|
||||
for (int t = 0; t < action.holdTicks && MacroExecutor.isCurrentRunActive(); t++) {
|
||||
CompletableFuture<Void> tf = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tf);
|
||||
MacroRunLoop.waitForCondition(tf);
|
||||
}
|
||||
} finally {
|
||||
if (gateInstalled[0]) {
|
||||
|
|
@ -420,7 +420,7 @@ final class MacroActionRunner {
|
|||
private static void waitTicks(int ticks) {
|
||||
for (int i = 0; i < ticks && MacroExecutor.isCurrentRunActive(); i++) {
|
||||
CompletableFuture<Void> tickFuture = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tickFuture);
|
||||
MacroRunLoop.waitForCondition(tickFuture);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -515,7 +515,7 @@ final class MacroActionRunner {
|
|||
return;
|
||||
}
|
||||
CompletableFuture<Void> tickFuture = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tickFuture);
|
||||
MacroRunLoop.waitForCondition(tickFuture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -81,7 +81,7 @@ final class MacroPacketWait {
|
|||
MacroExecutor.setCurrentStatus(normalizedTarget.isEmpty()
|
||||
? "Waiting for packet: Any"
|
||||
: "Waiting for packet: " + WaitForPacketAction.getDisplayLabel(normalizedTarget));
|
||||
MacroExecutor.waitForCondition(future);
|
||||
MacroRunLoop.waitForCondition(future);
|
||||
} finally {
|
||||
synchronized (run.packetWaitLock) {
|
||||
if (run.packetFuture == future) {
|
||||
|
|
@ -105,7 +105,7 @@ final class MacroPacketWait {
|
|||
MacroExecutor.setCurrentStatus(normalizedTarget.isEmpty()
|
||||
? "Waiting for packet: Any"
|
||||
: "Waiting for packet: " + WaitForPacketAction.getDisplayLabel(normalizedTarget));
|
||||
MacroExecutor.waitForCondition(future);
|
||||
MacroRunLoop.waitForCondition(future);
|
||||
} finally {
|
||||
synchronized (MacroExecutor.packetWaitLock) {
|
||||
if (MacroExecutor.activePacketFuture == future) {
|
||||
|
|
@ -127,7 +127,7 @@ final class MacroPacketWait {
|
|||
run.waitingForChat.set(true);
|
||||
try {
|
||||
if (wca.timeoutMs > 0) future.completeOnTimeout(null, wca.timeoutMs, java.util.concurrent.TimeUnit.MILLISECONDS);
|
||||
MacroExecutor.waitForCondition(future);
|
||||
MacroRunLoop.waitForCondition(future);
|
||||
MacroPrearm.commitStagedCapture(wca);
|
||||
} finally {
|
||||
if (run.chatFuture == future) {
|
||||
|
|
@ -148,7 +148,7 @@ final class MacroPacketWait {
|
|||
MacroExecutor.lastMatchedChat.set("");
|
||||
try {
|
||||
if (wca.timeoutMs > 0) future.completeOnTimeout(null, wca.timeoutMs, java.util.concurrent.TimeUnit.MILLISECONDS);
|
||||
MacroExecutor.waitForCondition(future);
|
||||
MacroRunLoop.waitForCondition(future);
|
||||
} finally {
|
||||
MacroExecutor.isWaitingForChat.set(false);
|
||||
MacroExecutor.waitingChatPattern.set("");
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ final class MacroPrearm {
|
|||
if (action instanceof WaitGuiTypeAction guiType) {
|
||||
return predicatePrearm(action,
|
||||
guiType.waitMode == WaitGuiTypeAction.WaitMode.CLOSE
|
||||
? MacroExecutor.guiClosePredicate(guiType, mc)
|
||||
? MacroRunLoop.guiClosePredicate(guiType, mc)
|
||||
: () -> {
|
||||
var capture = guiType.capture(mc);
|
||||
capture.ifPresent(values -> stageCapture(guiType, values));
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ final class MacroRace {
|
|||
disablePacketGate(mc, action);
|
||||
}
|
||||
case UNTIL_GUI -> {
|
||||
MacroExecutor.waitForPredicate(() -> MacroGuiMatcher.matches(mc.gui.screen(), action.untilGuiType, action.untilGuiTitle), Math.max(0, action.durationValue));
|
||||
MacroRunLoop.waitForPredicate(() -> MacroGuiMatcher.matches(mc.gui.screen(), action.untilGuiType, action.untilGuiTitle), Math.max(0, action.durationValue));
|
||||
disablePacketGate(mc, action);
|
||||
}
|
||||
case UNTIL_INVENTORY -> {
|
||||
|
|
@ -58,7 +58,7 @@ final class MacroRace {
|
|||
wait.slot = action.untilInventorySlot;
|
||||
wait.timeoutMs = Math.max(0, action.durationValue);
|
||||
wait.resetBaseline();
|
||||
MacroExecutor.waitForPredicate(() -> wait.matches(mc), wait.timeoutMs);
|
||||
MacroRunLoop.waitForPredicate(() -> wait.matches(mc), wait.timeoutMs);
|
||||
disablePacketGate(mc, action);
|
||||
}
|
||||
default -> {}
|
||||
|
|
@ -96,7 +96,7 @@ final class MacroRace {
|
|||
if (isMacroStepSatisfied(action)) return;
|
||||
if (action.timeoutMs > 0 && System.currentTimeMillis() - startMs >= action.timeoutMs) return;
|
||||
CompletableFuture<Void> tick = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tick);
|
||||
MacroRunLoop.waitForCondition(tick);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -730,7 +730,7 @@ final class MacroRace {
|
|||
try {
|
||||
if (delay.useTicks) {
|
||||
for (int i = 0; i < delay.delayTicks && MacroExecutor.isCurrentRunActive(); i++) {
|
||||
MacroExecutor.waitForCondition(MacroConditionRegistry.waitForNextTick());
|
||||
MacroRunLoop.waitForCondition(MacroConditionRegistry.waitForNextTick());
|
||||
}
|
||||
} else {
|
||||
Thread.sleep(Math.max(0, delay.delayMs));
|
||||
|
|
|
|||
1259
src/main/java/autismclient/util/macro/MacroRunLoop.java
Normal file
1259
src/main/java/autismclient/util/macro/MacroRunLoop.java
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -136,7 +136,7 @@ final class MacroWorldActions {
|
|||
if (resolvedTarget.hasIdentity()) {
|
||||
MacroExecutor.setCurrentStatus("Waiting for item in GUI: " + itemLabel);
|
||||
CompletableFuture<Void> waitFuture = MacroConditionRegistry.waitForItemInHandler(resolvedTarget);
|
||||
MacroExecutor.waitForCondition(waitFuture);
|
||||
MacroRunLoop.waitForCondition(waitFuture);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -216,7 +216,7 @@ final class MacroWorldActions {
|
|||
}
|
||||
if (MacroExecutor.isCurrentRunActive()) {
|
||||
CompletableFuture<Void> tickFuture = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tickFuture);
|
||||
MacroRunLoop.waitForCondition(tickFuture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -264,7 +264,7 @@ final class MacroWorldActions {
|
|||
}
|
||||
|
||||
CompletableFuture<Void> tickFuture = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tickFuture);
|
||||
MacroRunLoop.waitForCondition(tickFuture);
|
||||
}
|
||||
} finally {
|
||||
if (!MacroExecutor.isCurrentRunActive()) requestOwnedBaritoneStop(run, mc);
|
||||
|
|
@ -356,7 +356,7 @@ final class MacroWorldActions {
|
|||
}
|
||||
|
||||
CompletableFuture<Void> tickFuture = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tickFuture);
|
||||
MacroRunLoop.waitForCondition(tickFuture);
|
||||
}
|
||||
} finally {
|
||||
if (run != null && run.activeMineTracker == mineTracker) run.activeMineTracker = null;
|
||||
|
|
@ -409,7 +409,7 @@ final class MacroWorldActions {
|
|||
long waitStartMs = System.currentTimeMillis();
|
||||
while (MacroExecutor.isCurrentRunActive() && AutismCompatManager.isBaritoneBusy() && System.currentTimeMillis() - waitStartMs < 3000L) {
|
||||
CompletableFuture<Void> tickFuture = MacroConditionRegistry.waitForNextTick();
|
||||
MacroExecutor.waitForCondition(tickFuture);
|
||||
MacroRunLoop.waitForCondition(tickFuture);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue