WIP: Minor fixes

This commit is contained in:
William Muir
2017-08-14 17:57:41 +12:00
parent a4547e12cb
commit e1dddd317d
3 changed files with 29 additions and 4 deletions
@@ -7,6 +7,8 @@ import java.util.Map;
import seng302.gameServer.server.messages.BoatAction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import seng302.gameServer.server.messages.MarkRoundingMessage;
import seng302.gameServer.server.messages.Message;
import seng302.model.Player;
import seng302.model.Yacht;
import seng302.model.mark.MarkOrder;
@@ -17,7 +19,13 @@ import seng302.model.mark.MarkOrder;
*/
public class GameState implements Runnable {
private Logger logger = LoggerFactory.getLogger(MarkOrder.class);
@FunctionalInterface
interface MarkPassingListener {
void markPassing(Message message);
}
private Logger logger = LoggerFactory.getLogger(GameState.class);
private static Integer STATE_UPDATES_PER_SECOND = 60;
public static Integer MAX_PLAYERS = 8;
@@ -34,6 +42,8 @@ public class GameState implements Runnable {
private static MarkOrder markOrder;
private static long startTime;
private static List<MarkPassingListener> markListeners;
private static Map<Player, String> playerStringMap = new HashMap<>();
/*
Ideally I would like to make this class an object instantiated by the server and given to
@@ -53,13 +63,13 @@ public class GameState implements Runnable {
yachts = new HashMap<>();
players = new ArrayList<>();
GameState.hostIpAddress = hostIpAddress;
players = new ArrayList<>();
;
currentStage = GameStages.LOBBYING;
isRaceStarted = false;
//set this when game stage changes to prerace
previousUpdateTime = System.currentTimeMillis();
yachts = new HashMap<>();
markOrder = new MarkOrder(); //This could be instantiated at some point with a select map?
markListeners = new ArrayList<>();
new Thread(this).start(); //Run the auto updates on the game state
}
@@ -215,4 +225,12 @@ public class GameState implements Runnable {
System.out.println("Lng: " + playerYacht.getLocation().getLng());
System.out.println("-----------------------\n");
}
public static void addMarkPassListener(MarkPassingListener listener) {
markListeners.add(listener);
}
public static void removeMarkPassListenr(MarkPassingListener listener) {
markListeners.remove(listener);
}
}
@@ -7,6 +7,7 @@ import java.util.ArrayList;
import java.util.Observable;
import java.util.Timer;
import java.util.TimerTask;
import seng302.gameServer.server.messages.Message;
import seng302.model.Player;
import seng302.model.PolarTable;
@@ -88,6 +89,12 @@ public class MainServerThread extends Observable implements Runnable, ClientConn
}
}
public void broadcastMessage(Message message) {
for (ServerToClientThread serverToClientThread : serverToClientThreads) {
serverToClientThread.sendMessage(message);
}
}
static void serverLog(String message, int logLevel){
if(logLevel <= LOG_LEVEL){
@@ -27,7 +27,7 @@ public class MarkRoundingMessage extends Message{
*/
public MarkRoundingMessage(int ackNumber, int raceId, int sourceId, RoundingBoatStatus roundingBoatStatus,
RoundingSide roundingSide, MarkType markType, int markId) {
this.time = System.currentTimeMillis() / 1000L;
this.time = System.currentTimeMillis();
this.ackNumber = ackNumber;
this.raceId = raceId;
this.sourceId = sourceId;