mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48: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.GuiBase;
|
||||||
import forge.game.event.*;
|
import forge.game.event.*;
|
||||||
import forge.match.input.InputPlaybackControl;
|
import forge.match.input.InputPlaybackControl;
|
||||||
|
|
||||||
import java.util.concurrent.BrokenBarrierException;
|
import java.util.concurrent.BrokenBarrierException;
|
||||||
import java.util.concurrent.CyclicBarrier;
|
import java.util.concurrent.CyclicBarrier;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
@@ -112,14 +113,16 @@ public class FControlGamePlayback extends IGameEventVisitor.Base<Void> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Void visit(GameEventPlayerPriority event) {
|
public Void visit(GameEventPlayerPriority event) {
|
||||||
|
inputPlayback.updateTurnMessage();
|
||||||
if (paused.get()) {
|
if (paused.get()) {
|
||||||
try {
|
try {
|
||||||
inputPlayback.onGamePaused();
|
|
||||||
gameThreadPauser.await();
|
gameThreadPauser.await();
|
||||||
gameThreadPauser.reset();
|
gameThreadPauser.reset();
|
||||||
} catch (InterruptedException e) {
|
}
|
||||||
|
catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (BrokenBarrierException e) {
|
}
|
||||||
|
catch (BrokenBarrierException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package forge.match.input;
|
|||||||
|
|
||||||
import forge.GuiBase;
|
import forge.GuiBase;
|
||||||
import forge.control.FControlGamePlayback;
|
import forge.control.FControlGamePlayback;
|
||||||
|
import forge.game.Game;
|
||||||
|
import forge.game.phase.PhaseHandler;
|
||||||
|
|
||||||
|
|
||||||
public class InputPlaybackControl extends InputSyncronizedBase implements InputSynchronized {
|
public class InputPlaybackControl extends InputSyncronizedBase implements InputSynchronized {
|
||||||
@@ -25,6 +27,23 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS
|
|||||||
ButtonUtil.enableAllFocusOk();
|
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) {
|
private void setPause(boolean pause) {
|
||||||
isPaused = pause;
|
isPaused = pause;
|
||||||
if (isPaused) {
|
if (isPaused) {
|
||||||
@@ -32,14 +51,9 @@ public class InputPlaybackControl extends InputSyncronizedBase implements InputS
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ButtonUtil.setButtonText("Pause", isFast ? "1x Speed" : "10x Faster");
|
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() {
|
public void pause() {
|
||||||
if (isPaused) { return; }
|
if (isPaused) { return; }
|
||||||
control.pause();
|
control.pause();
|
||||||
|
|||||||
Reference in New Issue
Block a user