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 seng302.gameServer.server.messages.BoatAction;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import seng302.gameServer.server.messages.MarkRoundingMessage;
import seng302.gameServer.server.messages.Message;
import seng302.model.Player; import seng302.model.Player;
import seng302.model.Yacht; import seng302.model.Yacht;
import seng302.model.mark.MarkOrder; import seng302.model.mark.MarkOrder;
@@ -17,7 +19,13 @@ import seng302.model.mark.MarkOrder;
*/ */
public class GameState implements Runnable { 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; private static Integer STATE_UPDATES_PER_SECOND = 60;
public static Integer MAX_PLAYERS = 8; public static Integer MAX_PLAYERS = 8;
@@ -34,6 +42,8 @@ public class GameState implements Runnable {
private static MarkOrder markOrder; private static MarkOrder markOrder;
private static long startTime; private static long startTime;
private static List<MarkPassingListener> markListeners;
private static Map<Player, String> playerStringMap = new HashMap<>(); 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 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<>(); yachts = new HashMap<>();
players = new ArrayList<>(); players = new ArrayList<>();
GameState.hostIpAddress = hostIpAddress; GameState.hostIpAddress = hostIpAddress;
players = new ArrayList<>(); ;
currentStage = GameStages.LOBBYING; currentStage = GameStages.LOBBYING;
isRaceStarted = false; isRaceStarted = false;
//set this when game stage changes to prerace //set this when game stage changes to prerace
previousUpdateTime = System.currentTimeMillis(); previousUpdateTime = System.currentTimeMillis();
yachts = new HashMap<>();
markOrder = new MarkOrder(); //This could be instantiated at some point with a select map? 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 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("Lng: " + playerYacht.getLocation().getLng());
System.out.println("-----------------------\n"); 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.Observable;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
import seng302.gameServer.server.messages.Message;
import seng302.model.Player; import seng302.model.Player;
import seng302.model.PolarTable; 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){ static void serverLog(String message, int logLevel){
if(logLevel <= LOG_LEVEL){ if(logLevel <= LOG_LEVEL){
@@ -27,7 +27,7 @@ public class MarkRoundingMessage extends Message{
*/ */
public MarkRoundingMessage(int ackNumber, int raceId, int sourceId, RoundingBoatStatus roundingBoatStatus, public MarkRoundingMessage(int ackNumber, int raceId, int sourceId, RoundingBoatStatus roundingBoatStatus,
RoundingSide roundingSide, MarkType markType, int markId) { RoundingSide roundingSide, MarkType markType, int markId) {
this.time = System.currentTimeMillis() / 1000L; this.time = System.currentTimeMillis();
this.ackNumber = ackNumber; this.ackNumber = ackNumber;
this.raceId = raceId; this.raceId = raceId;
this.sourceId = sourceId; this.sourceId = sourceId;