56 lines
1.3 KiB
Java
56 lines
1.3 KiB
Java
package domain;
|
|
|
|
import java.io.Serializable;
|
|
|
|
public class HitoriGameTimer implements Serializable {
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
private transient long startTime;
|
|
private long elapsedTime;
|
|
private boolean isPaused;
|
|
|
|
public HitoriGameTimer() {
|
|
this.startTime = 0;
|
|
this.elapsedTime = 0;
|
|
this.isPaused = false;
|
|
}
|
|
|
|
public void startTimer() {
|
|
if (isPaused || startTime == 0) {
|
|
startTime = System.currentTimeMillis();
|
|
isPaused = false;
|
|
}
|
|
}
|
|
|
|
public void pauseTimer() {
|
|
if (!isPaused && startTime > 0) {
|
|
elapsedTime += System.currentTimeMillis() - startTime;
|
|
startTime = 0;
|
|
isPaused = true;
|
|
}
|
|
}
|
|
|
|
public void stopTimer() {
|
|
if (!isPaused && startTime > 0) {
|
|
elapsedTime += System.currentTimeMillis() - startTime;
|
|
startTime = 0;
|
|
}
|
|
}
|
|
|
|
public void resetTimer() {
|
|
startTime = 0;
|
|
elapsedTime = 0;
|
|
isPaused = false;
|
|
}
|
|
|
|
public long getElapsedTimeInSeconds() {
|
|
if (isPaused || startTime == 0) {
|
|
return elapsedTime / 1000;
|
|
}
|
|
return (elapsedTime + System.currentTimeMillis() - startTime) / 1000;
|
|
}
|
|
|
|
public boolean isPaused() {
|
|
return isPaused;
|
|
}
|
|
} |