Merge pull request 'game-controller-adjustments' (#11) from game-controller-adjustments into main

Reviewed-on: #11
This commit is contained in:
Luca Conte 2024-12-03 12:48:14 +00:00
commit f20896566c
1 changed files with 16 additions and 7 deletions

View File

@ -10,6 +10,15 @@ import java.util.Map;
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
public static final int CONNECTION_TIMEOUT = 10 * 1000;
@ -17,11 +26,11 @@ public class GameController {
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
));
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;
boolean localPlayerIsServer = address.getHostName() == null;
@ -97,7 +106,7 @@ public class GameController {
* finds the largest common version in two lists of version strings
* @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;
String largestCommonVersion = null;
for (String v1 : versions1) {
@ -125,7 +134,7 @@ public class GameController {
* 1 if version1 is more recent than version2
* -1 otherwise
*/
public int compareVersions(String version1, String version2) {
public static int compareVersions(String version1, String version2) {
if (!checkVersionString(version1) || !checkVersionString(version2)) {
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
*/
public boolean checkVersionString(String versionString) {
public static boolean checkVersionString(String versionString) {
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;
AiPlayer aiPlayer;
@ -172,7 +181,7 @@ public class GameController {
startGameWithInstancedPlayers(localPlayer, aiPlayer);
}
private void startGameWithInstancedPlayers(LocalPlayer p1, Player p2) {
private static void startGameWithInstancedPlayers(LocalPlayer p1, Player p2) {
p1.setEnemy(p2);
p2.setEnemy(p1);