Fixed order of methods in quickmode change; no longer relying on local variable, instead pulling current state from ReplayHandler before updating.

This commit is contained in:
LindaJuffermans
2020-07-17 17:23:02 +02:00
parent b79848936b
commit 169c4857b3

View File

@@ -19,8 +19,6 @@ public class QuickMode extends EventRegistrations implements Extra {
private final IGuiImage indicator = new GuiImage().setTexture(ReplayMod.TEXTURE, 40, 100, 16, 16).setSize(16, 16); private final IGuiImage indicator = new GuiImage().setTexture(ReplayMod.TEXTURE, 40, 100, 16, 16).setSize(16, 16);
private boolean active;
@Override @Override
public void register(final ReplayMod mod) throws Exception { public void register(final ReplayMod mod) throws Exception {
this.module = ReplayModReplay.instance; this.module = ReplayModReplay.instance;
@@ -32,12 +30,12 @@ public class QuickMode extends EventRegistrations implements Extra {
if (replayHandler == null) { if (replayHandler == null) {
return; return;
} }
updateIndicator(replayHandler.getOverlay());
replayHandler.getReplaySender().setSyncModeAndWait(); replayHandler.getReplaySender().setSyncModeAndWait();
mod.runLater(() -> { mod.runLater(() -> {
replayHandler.ensureQuickModeInitialized(() -> { replayHandler.ensureQuickModeInitialized(() -> {
active = !active; boolean enabled = !replayHandler.isQuickMode();
replayHandler.setQuickMode(active); updateIndicator(replayHandler.getOverlay(), enabled);
replayHandler.setQuickMode(enabled);
replayHandler.getReplaySender().setAsyncMode(true); replayHandler.getReplaySender().setAsyncMode(true);
}); });
}); });
@@ -48,11 +46,11 @@ public class QuickMode extends EventRegistrations implements Extra {
} }
{ {
on(ReplayOpenedCallback.EVENT, replayHandler -> updateIndicator(replayHandler.getOverlay())); on(ReplayOpenedCallback.EVENT, replayHandler -> updateIndicator(replayHandler.getOverlay(), replayHandler.isQuickMode()));
} }
private void updateIndicator(GuiReplayOverlay overlay) { private void updateIndicator(GuiReplayOverlay overlay, boolean enabled) {
if (active) { if (enabled) {
overlay.statusIndicatorPanel.addElements(new HorizontalLayout.Data(1), indicator); overlay.statusIndicatorPanel.addElements(new HorizontalLayout.Data(1), indicator);
} else { } else {
overlay.statusIndicatorPanel.removeElement(indicator); overlay.statusIndicatorPanel.removeElement(indicator);