diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 65198fd..398040a 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/buildOutputCleanup.lock b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/buildOutputCleanup.lock deleted file mode 100644 index fe44db4..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/buildOutputCleanup.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/executionHistory.bin b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/executionHistory.bin deleted file mode 100644 index 829c14b..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/executionHistory.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/executionHistory.lock b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/executionHistory.lock deleted file mode 100644 index 1df716f..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/executionHistory.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/fileHashes.bin b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/fileHashes.bin deleted file mode 100644 index 3037558..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/fileHashes.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/fileHashes.lock b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/fileHashes.lock deleted file mode 100644 index 43dc844..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/fileHashes.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/previous-compilation-data.bin b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/previous-compilation-data.bin deleted file mode 100644 index 0b37c6d..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/previous-compilation-data.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/resourceHashesCache.bin b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/resourceHashesCache.bin deleted file mode 100644 index c17a964..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/resourceHashesCache.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM_[Changes]/shelved.patch deleted file mode 100644 index e69de29..0000000 diff --git a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM__Changes_.xml b/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM__Changes_.xml deleted file mode 100644 index 1394a4e..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Merge_at_3_30_2023_10_51_PM__Changes_.xml +++ /dev/null @@ -1,39 +0,0 @@ - - \ No newline at end of file diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/buildOutputCleanup.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/buildOutputCleanup.lock deleted file mode 100644 index 51a3780..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/buildOutputCleanup.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/executionHistory.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/executionHistory.bin deleted file mode 100644 index 29691b2..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/executionHistory.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/executionHistory.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/executionHistory.lock deleted file mode 100644 index b44f056..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/executionHistory.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/fileHashes.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/fileHashes.bin deleted file mode 100644 index 0e3f83f..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/fileHashes.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/fileHashes.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/fileHashes.lock deleted file mode 100644 index 521b30d..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/fileHashes.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/previous-compilation-data.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/previous-compilation-data.bin deleted file mode 100644 index 31f9ef1..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/previous-compilation-data.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/resourceHashesCache.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/resourceHashesCache.bin deleted file mode 100644 index 579cf54..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/resourceHashesCache.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/shelved.patch deleted file mode 100644 index bffbd49..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM_[Changes]/shelved.patch +++ /dev/null @@ -1,122 +0,0 @@ -Index: src/main/java/org/bcit/com2522/project/scuffed/server/MongoPublisher.java -=================================================================== -diff --git a/src/main/java/org/bcit/com2522/project/scuffed/server/MongoPublisher.java b/src/main/java/org/bcit/com2522/project/scuffed/server/MongoPublisher.java -deleted file mode 100644 ---- a/src/main/java/org/bcit/com2522/project/scuffed/server/MongoPublisher.java (revision bac58eea752d85314b5928479d42c2b7cff2d420) -+++ /dev/null (revision bac58eea752d85314b5928479d42c2b7cff2d420) -@@ -1,14 +0,0 @@ --package org.bcit.com2522.project.scuffed.server; -- --import com.mongodb.client.model.changestream.ChangeStreamDocument; --import org.bson.Document; --import org.reactivestreams.Publisher; --import org.reactivestreams.Subscriber; -- --public class MongoPublisher implements Publisher> { -- -- @Override -- public void subscribe(Subscriber> s) { -- -- } --} -Index: src/main/java/org/bcit/com2522/project/scuffed/server/MongoSubscriber.java -=================================================================== -diff --git a/src/main/java/org/bcit/com2522/project/scuffed/server/MongoSubscriber.java b/src/main/java/org/bcit/com2522/project/scuffed/server/MongoSubscriber.java -deleted file mode 100644 ---- a/src/main/java/org/bcit/com2522/project/scuffed/server/MongoSubscriber.java (revision bac58eea752d85314b5928479d42c2b7cff2d420) -+++ /dev/null (revision bac58eea752d85314b5928479d42c2b7cff2d420) -@@ -1,4 +0,0 @@ --package org.bcit.com2522.project.scuffed.server; -- --public class MongoSubscriber { --} -Index: src/main/java/org/bcit/com2522/project/scuffed/server/MongoGameServer.java -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package org.bcit.com2522.project.scuffed.server;\r\n\r\nimport com.mongodb.ConnectionString;\r\nimport com.mongodb.MongoClientSettings;\r\nimport com.mongodb.ServerApi;\r\nimport com.mongodb.ServerApiVersion;\r\n\r\nimport com.mongodb.reactivestreams.client.*; //http://mongodb.github.io/mongo-java-driver/4.9/apidocs/mongodb-driver-reactivestreams/com/mongodb/reactivestreams/client/package-summary.html\r\n\r\n\r\nimport org.bcit.com2522.project.scuffed.client.GameState;\r\nimport org.bson.Document;\r\nimport org.reactivestreams.Publisher;\r\nimport org.reactivestreams.Subscriber;\r\nimport org.reactivestreams.Subscription;\r\n\r\nimport org.json.simple.JSONObject;\r\n\r\nimport com.mongodb.client.model.Aggregates;\r\nimport com.mongodb.client.model.Filters;\r\nimport com.mongodb.client.model.changestream.FullDocument;\r\nimport com.mongodb.client.model.changestream.ChangeStreamDocument;\r\n\r\n\r\nimport org.bcit.com2522.project.scuffed.server.SubscriberHelpers.PrintDocumentSubscriber;\r\n\r\npublic class MongoGameServer {\r\n\r\n private MongoDatabase database;\r\n private static String defaultUsername = \"cam\";\r\n private static String defaultPassword = \"passWord\";\r\n\r\n private MongoCollection collection;\r\n private String serverID;\r\n\r\n /**\r\n * Connects to MongoDB server and initializes the database.\r\n *\r\n * @param username as a String\r\n * @param password as a String\r\n */\r\n private void connectToDatabase(String username, String password) {\r\n ConnectionString connectionString = new ConnectionString(\"mongodb+srv://\"+ username + \":\" + password + \"@scuffedciv.nwbjiwh.mongodb.net/?retryWrites=true&w=majority\");\r\n MongoClientSettings settings = MongoClientSettings.builder()\r\n .applyConnectionString(connectionString)\r\n .serverApi(ServerApi.builder()\r\n .version(ServerApiVersion.V1)\r\n .build())\r\n .build();\r\n MongoClient mongoClient = MongoClients.create(settings);\r\n database = mongoClient.getDatabase(\"ScuffedCiv\");\r\n }\r\n\r\n /**\r\n * Creates a new game by connecting to the database and creating a new collection.\r\n *\r\n * @param gameState the GameState initialized by the host\r\n */\r\n public void createNewGame(GameState gameState) {\r\n connectToDatabase(defaultUsername, defaultPassword);\r\n setServerID(gameState.getGameID());\r\n database.createCollection(serverID);\r\n JSONObject gameJSONObject = gameState.toJSONObject();\r\n String gameJSON = gameJSONObject.toJSONString();\r\n System.out.println(gameJSON);\r\n Document gameStateDocument = Document.parse(gameJSON);\r\n database.getCollection(gameState.getGameID()).insertOne(gameStateDocument);\r\n\r\n joinGame(\"host\", serverID);\r\n }\r\n\r\n /**\r\n * Joins a game by connecting to the database and subscribing to the game's collection.\r\n *\r\n * @param serverID as a String\r\n */\r\n public void joinGame(String userID, String serverID) {\r\n if(database == null){\r\n connectToDatabase(defaultUsername, defaultPassword);\r\n setServerID(serverID);\r\n }\r\n collection = database.getCollection(serverID);\r\n\r\n collection.watch().subscribe(new PrintDocumentSubscriber());\r\n //Publisher publisher = collection.find(eq(\"gameID\", serverID)).first();\r\n //System.out.println(\"Successfully retrieved game \" + serverID + \"!\");\r\n\r\n }\r\n\r\n public void deleteAllGames(){\r\n\r\n }\r\n\r\n /**\r\n * Sets the serverID to the given gameID.\r\n *\r\n * @param gameID as a String\r\n */\r\n private void setServerID(String gameID) {\r\n serverID = gameID;\r\n }\r\n\r\n /**\r\n * Main function. for testing purposes.\r\n *\r\n * @param args arguments from command line\r\n */\r\n public static void main(String[] args) {\r\n String userID = \"bob\";\r\n MongoGameServer server = new MongoGameServer();\r\n GameState gameState = new GameState(4, 20, 20);\r\n gameState.init();\r\n server.createNewGame(gameState);\r\n //server.joinGame(userID, server.serverID);\r\n\r\n }\r\n\r\n\r\n}\r\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/src/main/java/org/bcit/com2522/project/scuffed/server/MongoGameServer.java b/src/main/java/org/bcit/com2522/project/scuffed/server/MongoGameServer.java ---- a/src/main/java/org/bcit/com2522/project/scuffed/server/MongoGameServer.java (revision bac58eea752d85314b5928479d42c2b7cff2d420) -+++ b/src/main/java/org/bcit/com2522/project/scuffed/server/MongoGameServer.java (date 1679966399335) -@@ -16,6 +16,7 @@ - - import org.json.simple.JSONObject; - -+ - import com.mongodb.client.model.Aggregates; - import com.mongodb.client.model.Filters; - import com.mongodb.client.model.changestream.FullDocument; -@@ -24,6 +25,8 @@ - - import org.bcit.com2522.project.scuffed.server.SubscriberHelpers.PrintDocumentSubscriber; - -+import java.util.concurrent.CompletableFuture; -+ - public class MongoGameServer { - - private MongoDatabase database; -@@ -64,7 +67,7 @@ - String gameJSON = gameJSONObject.toJSONString(); - System.out.println(gameJSON); - Document gameStateDocument = Document.parse(gameJSON); -- database.getCollection(gameState.getGameID()).insertOne(gameStateDocument); -+ database.getCollection(gameState.getGameID()).insertOne(gameStateDocument).subscribe(new SubscriberHelpers.OperationSubscriber<>()); - - joinGame("host", serverID); - } -@@ -82,14 +85,38 @@ - collection = database.getCollection(serverID); - - collection.watch().subscribe(new PrintDocumentSubscriber()); -+ -+ -+ collection.insertOne(new Document("userID", userID)).subscribe(new SubscriberHelpers.OperationSubscriber<>()); - //Publisher publisher = collection.find(eq("gameID", serverID)).first(); - //System.out.println("Successfully retrieved game " + serverID + "!"); - - } - -- public void deleteAllGames(){ -+ public void disconnect(){ -+ -+ } - -+ public void sendUpdate(String userID, Document updatedGameState){ -+ if (collection != null) { -+ updatedGameState.put("userID", userID); -+ collection.insertOne(updatedGameState).subscribe(new SubscriberHelpers.OperationSubscriber<>()); -+ } - } -+ -+ /** -+ * Subscribes to the game's collection returning the GameState. -+ * -+ * @param userID -+ * @param subscriber -+ * @return -+ */ -+ public void subscribeToUpdates(String userID, Subscriber subscriber){ -+ if (collection != null) { -+ collection.watch().subscribe(subscriber); -+ } -+ } -+ - - /** - * Sets the serverID to the given gameID. -@@ -113,6 +140,13 @@ - server.createNewGame(gameState); - //server.joinGame(userID, server.serverID); - -+ Document gameUpdate = new Document("action", "move") -+ .append("x", 5) -+ .append("y", 6); -+ server.sendUpdate(userID, gameUpdate); -+ -+ Subscriber updateSubscriber = new PrintDocumentSubscriber(); -+ server.subscribeToUpdates(userID, updateSubscriber); - } - - diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM__Changes_.xml b/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM__Changes_.xml deleted file mode 100644 index d2486d7..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Update_at_3_30_2023_9_29_PM__Changes_.xml +++ /dev/null @@ -1,39 +0,0 @@ - - \ No newline at end of file diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/buildOutputCleanup.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/buildOutputCleanup.lock deleted file mode 100644 index 870261c..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/buildOutputCleanup.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/checksums.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/checksums.lock deleted file mode 100644 index aa1c738..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/checksums.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/executionHistory.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/executionHistory.bin deleted file mode 100644 index 2052348..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/executionHistory.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/executionHistory.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/executionHistory.lock deleted file mode 100644 index 7244ccf..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/executionHistory.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/file-system.probe b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/file-system.probe deleted file mode 100644 index 483fb4e..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/file-system.probe and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/fileHashes.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/fileHashes.bin deleted file mode 100644 index 507985a..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/fileHashes.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/fileHashes.lock b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/fileHashes.lock deleted file mode 100644 index cc590ec..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/fileHashes.lock and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/md5-checksums.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/md5-checksums.bin deleted file mode 100644 index e752f0c..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/md5-checksums.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/outputFiles.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/outputFiles.bin deleted file mode 100644 index 6f4e2c6..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/outputFiles.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/previous-compilation-data.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/previous-compilation-data.bin deleted file mode 100644 index 90dbe58..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/previous-compilation-data.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/resourceHashesCache.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/resourceHashesCache.bin deleted file mode 100644 index 4caff15..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/resourceHashesCache.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/sha1-checksums.bin b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/sha1-checksums.bin deleted file mode 100644 index 662d3dc..0000000 Binary files a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/sha1-checksums.bin and /dev/null differ diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/shelved.patch deleted file mode 100644 index d4f22d6..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Update_at_3_31_2023_7_36_PM_[Changes]/shelved.patch +++ /dev/null @@ -1,80 +0,0 @@ -Index: src/main/java/org/bcit/com2522/project/scuffed/ui/NewGameMenuState.java -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package org.bcit.com2522.project.scuffed.ui;\r\n\r\nimport org.bcit.com2522.project.scuffed.client.Window;\r\nimport processing.core.PApplet;\r\n\r\npublic class NewGameMenuState extends MenuState {\r\n private InputBox mapWidthInput;\r\n private InputBox mapHeightInput;\r\n private InputBox numPlayersInput;\r\n\r\n private Label mapWidthLabel;\r\n\r\n private Label mapHeightLabel;\r\n\r\n private Label numPlayersLabel;\r\n\r\n private Label errorMessageLabel;\r\n\r\n private boolean showError = false;\r\n\r\n public NewGameMenuState(Window scene, Menu menu) {\r\n super(scene, menu, new ButtonManager(scene));\r\n setup();\r\n }\r\n @Override\r\n public void setup() {\r\n mapWidthInput = new InputBox(50, 100, 200, 30, scene, 10, 100, \"16\");\r\n mapHeightInput = new InputBox(50, 150, 200, 30, scene, 10, 100, \"16\");\r\n numPlayersInput = new InputBox(50, 200, 200, 30, scene, 1, 1000, \"2\");\r\n\r\n mapWidthLabel = new Label(50, 95, \"Map Width:\", 14, scene);\r\n mapHeightLabel = new Label(50, 145, \"Map Height:\", 14, scene);\r\n numPlayersLabel = new Label(50, 195, \"Number of Players:\", 14, scene);\r\n errorMessageLabel = new Label(50, 250, \"Invalid input! Please enter values within the specified range.\", 14, scene);\r\n\r\n Button backButton = new Button(50, 500, 250, 550, () -> onBackClicked(), \"back\", scene);\r\n Button startButton = new Button(50, 600, 250, 650, () -> onStartClicked(), \"start\", scene);\r\n\r\n buttonManager.add(backButton);\r\n buttonManager.add(startButton);\r\n }\r\n\r\n public void onBackClicked() {\r\n // Change the menu state to the New Game state\r\n menu.setState(new MainMenuMenuState(scene, menu));\r\n }\r\n\r\n @Override\r\n public void draw() {\r\n super.draw();\r\n mapWidthInput.draw();\r\n mapHeightInput.draw();\r\n numPlayersInput.draw();\r\n mapWidthLabel.draw();\r\n mapHeightLabel.draw();\r\n numPlayersLabel.draw();\r\n\r\n if(showError) {\r\n errorMessageLabel.draw();\r\n }\r\n }\r\n\r\n @Override\r\n public boolean clicked(int xpos, int ypos) {\r\n // Check if any buttons or inputs were clicked and perform actions\r\n if(super.clicked(xpos, ypos)) {\r\n return true;\r\n }\r\n if(mapWidthInput.isClicked(xpos, ypos)){\r\n mapWidthInput.setSelected(true);\r\n mapHeightInput.setSelected(false);\r\n numPlayersInput.setSelected(false);\r\n return true;\r\n }else if(mapHeightInput.isClicked(xpos, ypos)){\r\n mapWidthInput.setSelected(false);\r\n mapHeightInput.setSelected(true);\r\n numPlayersInput.setSelected(false);\r\n return true;\r\n }else if(numPlayersInput.isClicked(xpos, ypos)){\r\n mapWidthInput.setSelected(false);\r\n mapHeightInput.setSelected(false);\r\n numPlayersInput.setSelected(true);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n public void keyPressed(char key) {\r\n if (key == PApplet.BACKSPACE) {\r\n if (mapWidthInput.isSelected()) {\r\n mapWidthInput.removeCharacter();\r\n } else if (mapHeightInput.isSelected()) {\r\n mapHeightInput.removeCharacter();\r\n } else if (numPlayersInput.isSelected()) {\r\n numPlayersInput.removeCharacter();\r\n }\r\n } else {\r\n if (mapWidthInput.isSelected()) {\r\n mapWidthInput.addCharacter(key);\r\n } else if (mapHeightInput.isSelected()) {\r\n mapHeightInput.addCharacter(key);\r\n } else if (numPlayersInput.isSelected()) {\r\n numPlayersInput.addCharacter(key);\r\n }\r\n }\r\n }\r\n\r\n // ...\r\n\r\n public void onStartClicked() {\r\n int mapWidth = mapWidthInput.getIntValue();\r\n int mapHeight = mapHeightInput.getIntValue();\r\n int numPlayers = numPlayersInput.getIntValue();\r\n if (mapWidth >= 10 && mapWidth <= 100 && mapHeight >= 10 && mapHeight <= 100 && numPlayers >= 1 && numPlayers <= 100) {\r\n scene.initGame(numPlayers, mapWidth, mapHeight);\r\n menu.setState(new MainMenuMenuState(scene, menu));\r\n scene.inGame = true;\r\n showError = false;\r\n } else {\r\n showError = true;\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/src/main/java/org/bcit/com2522/project/scuffed/ui/NewGameMenuState.java b/src/main/java/org/bcit/com2522/project/scuffed/ui/NewGameMenuState.java ---- a/src/main/java/org/bcit/com2522/project/scuffed/ui/NewGameMenuState.java (revision 00a4627f67180622e324c1e33fda1afcbf94b2c0) -+++ b/src/main/java/org/bcit/com2522/project/scuffed/ui/NewGameMenuState.java (date 1680316536523) -@@ -24,9 +24,9 @@ - } - @Override - public void setup() { -- mapWidthInput = new InputBox(50, 100, 200, 30, scene, 10, 100, "16"); -- mapHeightInput = new InputBox(50, 150, 200, 30, scene, 10, 100, "16"); -- numPlayersInput = new InputBox(50, 200, 200, 30, scene, 1, 1000, "2"); -+ mapWidthInput = new InputBox(50, 100, 200, 30, scene, 1, 10000, "16"); -+ mapHeightInput = new InputBox(50, 150, 200, 30, scene, 1, 10000, "16"); -+ numPlayersInput = new InputBox(50, 200, 200, 30, scene, 1, 10000, "2"); - - mapWidthLabel = new Label(50, 95, "Map Width:", 14, scene); - mapHeightLabel = new Label(50, 145, "Map Height:", 14, scene); -Index: src/main/java/org/bcit/com2522/project/scuffed/client/Window.java -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package org.bcit.com2522.project.scuffed.client;\r\n\r\nimport org.bcit.com2522.project.scuffed.ui.*;\r\nimport processing.core.PApplet;\r\nimport processing.core.PImage;\r\nimport processing.core.PVector;\r\n\r\nimport java.util.HashMap;\r\n\r\n/**\r\n *\r\n * @author bean\r\n *\r\n */\r\npublic class Window extends PApplet {\r\n public static HashMap GameImages;\r\n public static HashMap UIImages;\r\n\r\n public boolean inGame = false;\r\n\r\n public Menu menu;\r\n\r\n public HUD hud;\r\n public GameInstance gameInstance;\r\n public Boolean debugMode = false;\r\n static DebugMenu debugMenu;\r\n public ClickableManager clickableManager;\r\n public GraphicManager graphicManager;\r\n\r\n\r\n /**\r\n * Called once at the beginning of the program.\r\n */\r\n public void settings() {\r\n size(1080, 720);\r\n }\r\n\r\n /**\r\n * Called once at the beginning of the program.\r\n * Initializes all objects.\r\n */\r\n public void setup() {\r\n initPImages();\r\n this.init();\r\n }\r\n\r\n public void init() {\r\n //map = new Map(this, 20, 20);\r\n clickableManager = new ClickableManager(this);\r\n graphicManager = new GraphicManager(this);\r\n surface.setTitle(\"Scuffed - Main Menu\");\r\n menu = new Menu(this);\r\n }\r\n\r\n /**\r\n * This initializes one HashMap to hold the PImages for all classes\r\n */\r\n public void initPImages(){\r\n //Images for the GameBoard. Tiles, Units, Buildings, etc.\r\n GameImages = new HashMap();\r\n GameImages.put(\"grassTile\", loadImage(\"sprites/Menu/tile_grass.png\"));\r\n GameImages.put(\"rockTile\", loadImage(\"sprites/Menu/tile_rocks.png\"));\r\n GameImages.put(\"waterTile\", loadImage(\"sprites/Menu/tile_water.png\"));\r\n GameImages.put(\"sandTile\", loadImage(\"sprites/Menu/tile_sand.png\"));\r\n GameImages.put(\"soldier\", loadImage( \"sprites/soldier.png\"));\r\n GameImages.put(\"worker\", loadImage(\"sprites/worker.png\"));\r\n GameImages.put(\"building\", loadImage(\"sprites/building.png\"));\r\n GameImages.put(\"select\", loadImage(\"sprites/select.png\"));\r\n\r\n //Images for the UI. Buttons, Menus, Backgrounds, etc.\r\n UIImages = new HashMap();\r\n UIImages.put(\"logo\", loadImage(\"sprites/logo.png\"));\r\n UIImages.put(\"menuNew\", loadImage(\"sprites/Menu/New.png\"));\r\n UIImages.put(\"menuNewHov\", loadImage(\"sprites/Menu/New_Hov.png\"));\r\n UIImages.put(\"menuNewSel\", loadImage(\"sprites/Menu/New_Sel.png\"));\r\n UIImages.put(\"menuLoad\", loadImage(\"sprites/Menu/Load.png\"));\r\n UIImages.put(\"menuLoadHov\", loadImage(\"sprites/Menu/Load_Hov.png\"));\r\n UIImages.put(\"menuLoadSel\", loadImage(\"sprites/Menu/Load_Sel.png\"));\r\n UIImages.put(\"menuExit\", loadImage(\"sprites/Menu/Exit.png\"));\r\n UIImages.put(\"menuExitHov\", loadImage(\"sprites/Menu/Exit_Hov.png\"));\r\n UIImages.put(\"menuExitSel\", loadImage(\"sprites/Menu/Exit_Sel.png\"));\r\n UIImages.put(\"menuOnline\", loadImage(\"sprites/Menu/Online.png\"));\r\n UIImages.put(\"menuOnlineHov\", loadImage(\"sprites/Menu/Online_hov.png\"));\r\n UIImages.put(\"menuOnlineSel\", loadImage(\"sprites/Menu/Online_sel.png\"));\r\n UIImages.put(\"buttonBackground\", loadImage(\"sprites/Menu/background.png\"));\r\n UIImages.put(\"buttonHoverBackground\", loadImage(\"sprites/Menu/button_blank.png\"));\r\n UIImages.put(\"buttonClickBackground\", loadImage(\"sprites/Menu/button_blank_pressed.png\"));\r\n UIImages.put(\"background\", loadImage(\"sprites/backgroundDirt.png\"));\r\n }\r\n\r\n public void initGame(int numplayers, int mapwidth, int mapheight) {\r\n gameInstance = new GameInstance(new HUD(this), new GameState(numplayers, mapwidth, mapheight));\r\n gameInstance.newGame();\r\n }\r\n\r\n public PImage getPImage(String name) {\r\n return GameImages.get(name);\r\n }\r\n\r\n public PImage loadImage2(String path) {\r\n return loadImage(path);\r\n }\r\n\r\n @Override\r\n public void keyPressed() {\r\n if(inGame) {\r\n gameInstance.keyPressed(key, this);\r\n }\r\n if (keyCode == 114) {\r\n debugMode = !debugMode;\r\n }\r\n if (keyCode == ESC) {\r\n key = 0;\r\n }\r\n if(menu.currentState instanceof NewGameMenuState){\r\n NewGameMenuState newGameMenuState = (NewGameMenuState) menu.currentState;\r\n newGameMenuState.keyPressed(key);\r\n }\r\n if(menu.currentState instanceof HostGameMenuState){\r\n HostGameMenuState hostGameMenuState = (HostGameMenuState) menu.currentState;\r\n hostGameMenuState.keyPressed(key);\r\n }\r\n if(menu.currentState instanceof JoinGameMenuState){\r\n JoinGameMenuState joinGameMenuState = (JoinGameMenuState) menu.currentState;\r\n joinGameMenuState.keyPressed(key);\r\n }\r\n }\r\n\r\n @Override\r\n public void mouseClicked() {\r\n PVector mousePos = new PVector(mouseX, mouseY);\r\n if(inGame) {\r\n gameInstance.clicked(mousePos, this);\r\n surface.setTitle(\"Scuffed Civ\");\r\n } else {\r\n menu.clicked(mouseX, mouseY);\r\n surface.setTitle(\"Scuffed - \" + menu.currentState.getClass().getSimpleName());\r\n }\r\n }\r\n\r\n /**\r\n * Called on every frame. Updates scene object\r\n * state and redraws the scene. Drawings appear\r\n * in order of function calls.\r\n */\r\n public void draw() {\r\n\r\n if(inGame){\r\n\r\n background(UIImages.get(\"background\"));\r\n gameInstance.draw(this);\r\n } else {\r\n background(222);\r\n menu.draw();\r\n }\r\n // Debug Info - Can be added to\r\n if(debugMode) {\r\n debugMenu.draw();\r\n }\r\n graphicManager.drawGraphics();\r\n }\r\n\r\n public ClickableManager getClickableManager() {\r\n return clickableManager;\r\n }\r\n\r\n public void addClickable(Clickable clickable) {\r\n clickableManager.add(clickable);\r\n }\r\n\r\n public void removeClickable(Clickable clickable) {\r\n clickableManager.remove(clickable);\r\n }\r\n\r\n public GraphicManager getGraphicManager() {\r\n return graphicManager;\r\n }\r\n\r\n public void wipeGraphics() {\r\n graphicManager.wipeGraphics();\r\n }\r\n\r\n public PImage getLoadedPImage(String name) {\r\n return GameImages.get(name);\r\n }\r\n\r\n public Player getCurrentPlayer() {\r\n if(gameInstance == null){\r\n return null;\r\n }\r\n return gameInstance.getCurrentPlayer();\r\n }\r\n\r\n public void nextTurn() {\r\n gameInstance.nextTurn();\r\n }\r\n\r\n public void loadGame() {\r\n gameInstance = new GameInstance(this);\r\n System.out.println(\"Loading game\");\r\n gameInstance.loadGame();\r\n inGame = true;\r\n }\r\n\r\n public void joinGame(String hostIP, int port) {\r\n gameInstance = new GameInstance(this);\r\n gameInstance.joinGame(hostIP, port);\r\n }\r\n\r\n public void saveGame() {\r\n gameInstance.saveGame();\r\n }\r\n\r\n\r\n //TODO: implement actual server\r\n public void initGameServer(int numplayers, int mapwidth, int mapheight, int port) {\r\n// this.port = port;\r\n// this.hostIP = \"localhost\";\r\n// gameServer = new GameServer();\r\n// gameState = new GameState(numplayers, mapwidth, mapheight);\r\n// gameServer.start(gameState, port);\r\n// gameState.init();\r\n }\r\n\r\n\r\n /**\r\n * Main function.\r\n *\r\n * @param passedArgs arguments from command line\r\n */\r\n public static void main(String[] passedArgs) {\r\n String[] appletArgs = new String[]{\"eatBubbles\"};\r\n Window eatBubbles = new Window();\r\n debugMenu = new DebugMenu(eatBubbles);\r\n PApplet.runSketch(appletArgs, eatBubbles);\r\n }\r\n\r\n\r\n\r\n}\r\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/src/main/java/org/bcit/com2522/project/scuffed/client/Window.java b/src/main/java/org/bcit/com2522/project/scuffed/client/Window.java ---- a/src/main/java/org/bcit/com2522/project/scuffed/client/Window.java (revision 00a4627f67180622e324c1e33fda1afcbf94b2c0) -+++ b/src/main/java/org/bcit/com2522/project/scuffed/client/Window.java (date 1680316536530) -@@ -20,7 +20,6 @@ - - public Menu menu; - -- public HUD hud; - public GameInstance gameInstance; - public Boolean debugMode = false; - static DebugMenu debugMenu; -Index: .idea/misc.xml -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/.idea/misc.xml b/.idea/misc.xml ---- a/.idea/misc.xml (revision 00a4627f67180622e324c1e33fda1afcbf94b2c0) -+++ b/.idea/misc.xml (date 1680142963630) -@@ -7,7 +7,7 @@ - - -- -+ - - - -\ No newline at end of file -Index: .idea/gradle.xml -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>\r\n\r\n \r\n \r\n \r\n \r\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/.idea/gradle.xml b/.idea/gradle.xml ---- a/.idea/gradle.xml (revision 00a4627f67180622e324c1e33fda1afcbf94b2c0) -+++ b/.idea/gradle.xml (date 1680142893883) -@@ -8,7 +8,7 @@ -