Merge pull request 'game-controller-adjustments' (#11) from game-controller-adjustments into main
Reviewed-on: #11
This commit is contained in:
commit
f20896566c
|
@ -10,6 +10,15 @@ import java.util.Map;
|
||||||
|
|
||||||
public class GameController {
|
public class GameController {
|
||||||
|
|
||||||
|
private static MainFrame mainFrame;
|
||||||
|
|
||||||
|
public static MainFrame getMainFrame() {
|
||||||
|
return GameController.mainFrame;
|
||||||
|
}
|
||||||
|
public static void setMainFrame(MainFrame mainFrame) {
|
||||||
|
GameController.mainFrame = mainFrame;
|
||||||
|
}
|
||||||
|
|
||||||
// Connection timeout for client sockets in milliseconds
|
// Connection timeout for client sockets in milliseconds
|
||||||
public static final int CONNECTION_TIMEOUT = 10 * 1000;
|
public static final int CONNECTION_TIMEOUT = 10 * 1000;
|
||||||
|
|
||||||
|
@ -17,11 +26,11 @@ public class GameController {
|
||||||
return semester + 13;
|
return semester + 13;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashMap<String, Class<? extends OnlinePlayer>> supportedVersions = new HashMap<>(Map.of(
|
public static HashMap<String, Class<? extends OnlinePlayer>> supportedVersions = new HashMap<>(Map.of(
|
||||||
"1.1.0", OnlinePlayer_1_1_0.class
|
"1.1.0", OnlinePlayer_1_1_0.class
|
||||||
));
|
));
|
||||||
|
|
||||||
public void startOnlineGame(Class<? extends LocalPlayer> localPlayerClass, InetSocketAddress address, int size) throws IOException {
|
public static void startOnlineGame(Class<? extends LocalPlayer> localPlayerClass, String localPlayerName, InetSocketAddress address, int size) throws IOException {
|
||||||
AsyncSocket clientSocket;
|
AsyncSocket clientSocket;
|
||||||
|
|
||||||
boolean localPlayerIsServer = address.getHostName() == null;
|
boolean localPlayerIsServer = address.getHostName() == null;
|
||||||
|
@ -97,7 +106,7 @@ public class GameController {
|
||||||
* finds the largest common version in two lists of version strings
|
* finds the largest common version in two lists of version strings
|
||||||
* @return null if no common versions are found
|
* @return null if no common versions are found
|
||||||
*/
|
*/
|
||||||
public String findMostRecentVersion(List<String> versions1, List<String> versions2) {
|
public static String findMostRecentVersion(List<String> versions1, List<String> versions2) {
|
||||||
if (versions1 == null || versions2 == null) return null;
|
if (versions1 == null || versions2 == null) return null;
|
||||||
String largestCommonVersion = null;
|
String largestCommonVersion = null;
|
||||||
for (String v1 : versions1) {
|
for (String v1 : versions1) {
|
||||||
|
@ -125,7 +134,7 @@ public class GameController {
|
||||||
* 1 if version1 is more recent than version2
|
* 1 if version1 is more recent than version2
|
||||||
* -1 otherwise
|
* -1 otherwise
|
||||||
*/
|
*/
|
||||||
public int compareVersions(String version1, String version2) {
|
public static int compareVersions(String version1, String version2) {
|
||||||
if (!checkVersionString(version1) || !checkVersionString(version2)) {
|
if (!checkVersionString(version1) || !checkVersionString(version2)) {
|
||||||
throw new IllegalArgumentException("Version is not valid version string");
|
throw new IllegalArgumentException("Version is not valid version string");
|
||||||
}
|
}
|
||||||
|
@ -150,11 +159,11 @@ public class GameController {
|
||||||
/**
|
/**
|
||||||
* checks if a provided string matches the format of a version number
|
* checks if a provided string matches the format of a version number
|
||||||
*/
|
*/
|
||||||
public boolean checkVersionString(String versionString) {
|
public static boolean checkVersionString(String versionString) {
|
||||||
return versionString != null && versionString.matches("\\d+\\.\\d+\\.\\d+");
|
return versionString != null && versionString.matches("\\d+\\.\\d+\\.\\d+");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startLocalGame(Class<? extends LocalPlayer> localPlayerClass, Class<? extends AiPlayer> enemyClass, int size) {
|
public static void startLocalGame(Class<? extends LocalPlayer> localPlayerClass, String localPlayerName, Class<? extends AiPlayer> enemyClass, int size) {
|
||||||
|
|
||||||
LocalPlayer localPlayer;
|
LocalPlayer localPlayer;
|
||||||
AiPlayer aiPlayer;
|
AiPlayer aiPlayer;
|
||||||
|
@ -172,7 +181,7 @@ public class GameController {
|
||||||
startGameWithInstancedPlayers(localPlayer, aiPlayer);
|
startGameWithInstancedPlayers(localPlayer, aiPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startGameWithInstancedPlayers(LocalPlayer p1, Player p2) {
|
private static void startGameWithInstancedPlayers(LocalPlayer p1, Player p2) {
|
||||||
p1.setEnemy(p2);
|
p1.setEnemy(p2);
|
||||||
p2.setEnemy(p1);
|
p2.setEnemy(p1);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue