mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Show more useful message when not paused for playback
This commit is contained in:
@@ -6,6 +6,7 @@ import forge.FThreads;
|
||||
import forge.GuiBase;
|
||||
import forge.game.event.*;
|
||||
import forge.match.input.InputPlaybackControl;
|
||||
|
||||
import java.util.concurrent.BrokenBarrierException;
|
||||
import java.util.concurrent.CyclicBarrier;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
@@ -112,14 +113,16 @@ public class FControlGamePlayback extends IGameEventVisitor.Base<Void> {
|
||||
*/
|
||||
@Override
|
||||
public Void visit(GameEventPlayerPriority event) {
|
||||
inputPlayback.updateTurnMessage();
|
||||
if (paused.get()) {
|
||||
try {
|
||||
inputPlayback.onGamePaused();
|
||||
gameThreadPauser.await();
|
||||
gameThreadPauser.reset();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
} catch (BrokenBarrierException e) {
|
||||
}
|
||||
catch (BrokenBarrierException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ package forge.match.input;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.control.FControlGamePlayback;
|
||||
import forge.game.Game;
|
||||
import forge.game.phase.PhaseHandler;
|
||||
|
||||
|
||||
public class InputPlaybackControl extends InputSyncronizedBase implements InputSynchronized {
|
||||
@@ -25,6 +27,23 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS
|
||||
ButtonUtil.enableAllFocusOk();
|
||||
}
|
||||
|
||||
//update message based on current turn and paused state
|
||||
private int currentTurn;
|
||||
public void updateTurnMessage() {
|
||||
Game game = GuiBase.getInterface().getGame();
|
||||
if (isPaused) {
|
||||
showMessage(getTurnPhasePriorityMessage(game));
|
||||
currentTurn = 0;
|
||||
}
|
||||
else {
|
||||
final PhaseHandler ph = game.getPhaseHandler();
|
||||
if (currentTurn == ph.getTurn()) { return; }
|
||||
|
||||
currentTurn = ph.getTurn();
|
||||
showMessage("Turn " + currentTurn + " (" + ph.getPlayerTurn() + ")");
|
||||
}
|
||||
}
|
||||
|
||||
private void setPause(boolean pause) {
|
||||
isPaused = pause;
|
||||
if (isPaused) {
|
||||
@@ -32,14 +51,9 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS
|
||||
}
|
||||
else {
|
||||
ButtonUtil.setButtonText("Pause", isFast ? "1x Speed" : "10x Faster");
|
||||
showMessage("Press pause to pause game.");
|
||||
}
|
||||
}
|
||||
|
||||
public void onGamePaused() {
|
||||
showMessage(getTurnPhasePriorityMessage(GuiBase.getInterface().getGame()));
|
||||
}
|
||||
|
||||
public void pause() {
|
||||
if (isPaused) { return; }
|
||||
control.pause();
|
||||
|
||||
Reference in New Issue
Block a user