From 44a0530d91de3ed4051bb7eb20947885521a94f6 Mon Sep 17 00:00:00 2001 From: reka Date: Wed, 25 May 2022 13:27:46 +0200 Subject: [PATCH 1/8] refactor --- .../dungeoncrawl/JSON/ConvertToJSON.java | 12 ++++++++++++ .../java/com/codecool/dungeoncrawl/Main.java | 16 +++++++++------- .../dungeoncrawl/logic/actors/Player.java | 3 ++- 3 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java b/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java new file mode 100644 index 0000000..81d922f --- /dev/null +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java @@ -0,0 +1,12 @@ +package com.codecool.dungeoncrawl.JSON; + +import com.codecool.dungeoncrawl.logic.actors.Player; +import com.google.gson.Gson; + +public class ConvertToJSON { + public static String convertPlayer(Player player) { + Gson JSONObject = new Gson(); + return JSONObject.toJson(player.getCell().getX()); + } + +} diff --git a/src/main/java/com/codecool/dungeoncrawl/Main.java b/src/main/java/com/codecool/dungeoncrawl/Main.java index 42d7b52..8cc27c2 100644 --- a/src/main/java/com/codecool/dungeoncrawl/Main.java +++ b/src/main/java/com/codecool/dungeoncrawl/Main.java @@ -1,5 +1,6 @@ package com.codecool.dungeoncrawl; +import com.codecool.dungeoncrawl.JSON.ConvertToJSON; import com.codecool.dungeoncrawl.dao.GameDatabaseManager; import com.codecool.dungeoncrawl.logic.Cell; import com.codecool.dungeoncrawl.logic.GameMap; @@ -58,7 +59,7 @@ public class Main extends Application { Media backgroundMedia; MediaPlayer backgroundMediaPlayer; GameDatabaseManager dbManager; - Timer timer = new Timer(); + Timeline fiveSecondsWonder; public static void main(String[] args) { @@ -99,7 +100,7 @@ public void start(Stage primaryStage){ primaryStage.setTitle("Dungeon Crawl"); primaryStage.show(); - moveMonsters(); + //moveMonsters(); } private void onKeyReleased(KeyEvent keyEvent) { @@ -147,7 +148,7 @@ private void onKeyPressed(KeyEvent keyEvent) { } private void moveMonsters(){ - Timeline fiveSecondsWonder = new Timeline( + fiveSecondsWonder = new Timeline( new KeyFrame(Duration.seconds(5), event -> { map.actAllMapCreature(); @@ -155,7 +156,6 @@ private void moveMonsters(){ })); fiveSecondsWonder.setCycleCount(Timeline.INDEFINITE); fiveSecondsWonder.play(); - } @@ -196,7 +196,6 @@ private void setupDbManager() { public void gameOverDisplay(){ - timer.cancel(); isGameOver = true; Font myFont = new Font("Serif", 36); gameOver.setText("Game\nOver!"); @@ -205,7 +204,6 @@ public void gameOverDisplay(){ } public void gameWonDisplay(){ - timer.cancel(); isGameOver = true; Font myFont = new Font("Serif", 22); gameOver.setText("Congratulation!"); @@ -251,7 +249,11 @@ public void showSaveOption() { Label playerName = new Label(name); ui.add(playerName, 0, 0); playerName.setFont(myFont); - System.out.println(map.getPlayer().getName()); + // System.out.println(map.getPlayer().getName()); + // fiveSecondsWonder.stop(); + String JSONPlayer = ConvertToJSON.convertPlayer(map.getPlayer()); + System.out.println(JSONPlayer); + //fiveSecondsWonder.play(); }); } } diff --git a/src/main/java/com/codecool/dungeoncrawl/logic/actors/Player.java b/src/main/java/com/codecool/dungeoncrawl/logic/actors/Player.java index 1565ba5..22c0341 100644 --- a/src/main/java/com/codecool/dungeoncrawl/logic/actors/Player.java +++ b/src/main/java/com/codecool/dungeoncrawl/logic/actors/Player.java @@ -129,6 +129,7 @@ public boolean hasFriends() { @Override public String toString(){ - return "@"; + return name + ": " + messageLabel.toString() + "\n" + itemInventory.toString() + "\n" + + getHealth() + ",x: " + getCell().getX() + " y: " + getCell().getY(); } } \ No newline at end of file From 20bb2252243728bedd0eeabccf218167c233de3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juh=C3=A1sz=20=C3=81ron?= Date: Wed, 25 May 2022 13:47:29 +0200 Subject: [PATCH 2/8] player data convert to JSON --- .../dungeoncrawl/JSON/ConvertToJSON.java | 4 +- .../dungeoncrawl/JSON/PlayerJson.java | 47 +++++++++++++++++++ .../java/com/codecool/dungeoncrawl/Main.java | 14 +++++- 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java b/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java index 81d922f..bf6992d 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java @@ -4,9 +4,9 @@ import com.google.gson.Gson; public class ConvertToJSON { - public static String convertPlayer(Player player) { + public static String convertPlayer(Object obj) { Gson JSONObject = new Gson(); - return JSONObject.toJson(player.getCell().getX()); + return JSONObject.toJson(obj); } } diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java b/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java new file mode 100644 index 0000000..6570c57 --- /dev/null +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java @@ -0,0 +1,47 @@ +package com.codecool.dungeoncrawl.JSON; + +import com.codecool.dungeoncrawl.logic.actors.Player; +import com.codecool.dungeoncrawl.logic.items.Inventory; + +public class PlayerJson { + + private String playerName; + private int hp; + private int x; + private int y; + + public PlayerJson(Player player) { + this.playerName = player.getName(); + this.x = player.getX(); + this.y = player.getY(); + + this.hp = player.getHealth(); + + } + + public String convertPlayerJson(){ + return ConvertToJSON.convertPlayer(this); + } + + public Inventory getInventory() { + return inventory; + } + + private Inventory inventory; + + public String getPlayerName() { + return playerName; + } + + public int getHp() { + return hp; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } +} diff --git a/src/main/java/com/codecool/dungeoncrawl/Main.java b/src/main/java/com/codecool/dungeoncrawl/Main.java index 8cc27c2..83e2b51 100644 --- a/src/main/java/com/codecool/dungeoncrawl/Main.java +++ b/src/main/java/com/codecool/dungeoncrawl/Main.java @@ -1,6 +1,7 @@ package com.codecool.dungeoncrawl; import com.codecool.dungeoncrawl.JSON.ConvertToJSON; +import com.codecool.dungeoncrawl.JSON.PlayerJson; import com.codecool.dungeoncrawl.dao.GameDatabaseManager; import com.codecool.dungeoncrawl.logic.Cell; import com.codecool.dungeoncrawl.logic.GameMap; @@ -251,9 +252,18 @@ public void showSaveOption() { playerName.setFont(myFont); // System.out.println(map.getPlayer().getName()); // fiveSecondsWonder.stop(); - String JSONPlayer = ConvertToJSON.convertPlayer(map.getPlayer()); - System.out.println(JSONPlayer); + //String JSONPlayer = ConvertToJSON.convertPlayer(map.getPlayer()); + //System.out.println(JSONPlayer); //fiveSecondsWonder.play(); + playerConverter(); }); } + + public void playerConverter() { + PlayerJson player = new PlayerJson(map.getPlayer()); + String playerJson = player.convertPlayerJson(); + System.out.println(playerJson); + + } + } From e3672f5dcd6297c802bb84f39772548954674aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juh=C3=A1sz=20=C3=81ron?= Date: Wed, 25 May 2022 13:52:49 +0200 Subject: [PATCH 3/8] player inventory convert to JSON --- src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java b/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java index 6570c57..3cd3a39 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java @@ -12,6 +12,7 @@ public class PlayerJson { public PlayerJson(Player player) { this.playerName = player.getName(); + this.inventory = player.getItemInventory(); this.x = player.getX(); this.y = player.getY(); From 03b3fd079918fa68fb30be13fe0f33ad6b9e2fa8 Mon Sep 17 00:00:00 2001 From: reka Date: Wed, 25 May 2022 15:05:20 +0200 Subject: [PATCH 4/8] create JSON from map items --- .../codecool/dungeoncrawl/JSON/ActorJson.java | 22 ++++++++++ .../dungeoncrawl/JSON/ConvertToJSON.java | 23 ++++++++++- .../codecool/dungeoncrawl/JSON/ItemJson.java | 20 ++++++++++ .../dungeoncrawl/JSON/PlayerJson.java | 6 +-- .../java/com/codecool/dungeoncrawl/Main.java | 30 +++++++------- .../com/codecool/dungeoncrawl/logic/Cell.java | 2 - .../codecool/dungeoncrawl/logic/GameMap.java | 40 ++++++++++++++++--- .../items/BertieBottsEveryFlavorBeans.java | 2 +- .../dungeoncrawl/model/PlayerModel.java | 1 - 9 files changed, 117 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/codecool/dungeoncrawl/JSON/ActorJson.java create mode 100644 src/main/java/com/codecool/dungeoncrawl/JSON/ItemJson.java diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/ActorJson.java b/src/main/java/com/codecool/dungeoncrawl/JSON/ActorJson.java new file mode 100644 index 0000000..0da23c9 --- /dev/null +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/ActorJson.java @@ -0,0 +1,22 @@ +package com.codecool.dungeoncrawl.JSON; + +import com.codecool.dungeoncrawl.logic.actors.Actor; + +public class ActorJson { + private String name; + private int hp; + private int x; + private int y; + + public ActorJson(Actor actor) { + this.name = actor.getTileName(); + this.x = actor.getX(); + this.y = actor.getY(); + this.hp = actor.getHealth(); + } + /*public String convertPlayerJson(){ + return ConvertToJSON.convertObjectToJson(this); + }*/ + + +} diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java b/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java index bf6992d..13f6f97 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java @@ -1,12 +1,33 @@ package com.codecool.dungeoncrawl.JSON; +import com.codecool.dungeoncrawl.logic.GameMap; +import com.codecool.dungeoncrawl.logic.actors.Actor; import com.codecool.dungeoncrawl.logic.actors.Player; +import com.codecool.dungeoncrawl.logic.items.Item; import com.google.gson.Gson; +import java.util.ArrayList; +import java.util.List; + public class ConvertToJSON { - public static String convertPlayer(Object obj) { + public static String convertObjectToJson(Object obj) { Gson JSONObject = new Gson(); return JSONObject.toJson(obj); } + public static List getEveryMember(GameMap map){ + List members = new ArrayList<>(); + for (Actor actor: map.getActors()){ + if(actor instanceof Player){ + members.add( new PlayerJson((Player) actor)); + }else{ + members.add(new ActorJson(actor)); + } + } + for (Item item : map.getItems()){ + members.add(new ItemJson(item)); + } + return members; + } + } diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/ItemJson.java b/src/main/java/com/codecool/dungeoncrawl/JSON/ItemJson.java new file mode 100644 index 0000000..54c3c93 --- /dev/null +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/ItemJson.java @@ -0,0 +1,20 @@ +package com.codecool.dungeoncrawl.JSON; + +import com.codecool.dungeoncrawl.logic.items.Item; + +public class ItemJson { + private String name; + private int x; + private int y; + + public ItemJson(Item item) { + this.name = item.getTileName(); + this.x = item.getX(); + this.y = item.getY(); + } + + /* public String convertPlayerJson(){ + return ConvertToJSON.convertObjectToJson(this); + }*/ + +} diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java b/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java index 3cd3a39..6e55cf9 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/PlayerJson.java @@ -19,10 +19,10 @@ public PlayerJson(Player player) { this.hp = player.getHealth(); } - +/* public String convertPlayerJson(){ - return ConvertToJSON.convertPlayer(this); - } + return ConvertToJSON.convertObjectToJson(this); + }*/ public Inventory getInventory() { return inventory; diff --git a/src/main/java/com/codecool/dungeoncrawl/Main.java b/src/main/java/com/codecool/dungeoncrawl/Main.java index 83e2b51..26fdf22 100644 --- a/src/main/java/com/codecool/dungeoncrawl/Main.java +++ b/src/main/java/com/codecool/dungeoncrawl/Main.java @@ -36,6 +36,8 @@ import java.io.File; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; import java.util.Timer; import java.util.TimerTask; @@ -227,10 +229,6 @@ private void exit() { System.exit(0); } - /*public void saveName(Label nameLabel) { - - }*/ - public void showSaveOption() { Label nameLabel = new Label("Please enter your name"); @@ -250,20 +248,22 @@ public void showSaveOption() { Label playerName = new Label(name); ui.add(playerName, 0, 0); playerName.setFont(myFont); - // System.out.println(map.getPlayer().getName()); - // fiveSecondsWonder.stop(); - //String JSONPlayer = ConvertToJSON.convertPlayer(map.getPlayer()); - //System.out.println(JSONPlayer); - //fiveSecondsWonder.play(); - playerConverter(); - }); + mapConverter(); + }); } - public void playerConverter() { - PlayerJson player = new PlayerJson(map.getPlayer()); - String playerJson = player.convertPlayerJson(); - System.out.println(playerJson); + public void mapConverter(){ + List mapObjects = ConvertToJSON.getEveryMember(map); + List JSONList = new ArrayList<>(); + for (Object obj : mapObjects){ + JSONList.add(ConvertToJSON.convertObjectToJson(obj)); + } + for (String objectJson : JSONList){ + System.out.println(objectJson); + } } + + } diff --git a/src/main/java/com/codecool/dungeoncrawl/logic/Cell.java b/src/main/java/com/codecool/dungeoncrawl/logic/Cell.java index de0ef61..380210e 100644 --- a/src/main/java/com/codecool/dungeoncrawl/logic/Cell.java +++ b/src/main/java/com/codecool/dungeoncrawl/logic/Cell.java @@ -67,8 +67,6 @@ public boolean isClosedDoor(){ public boolean isWater(){return this.type == CellType.WATER;} - public boolean isCrossedWater(){return this.type == CellType.CROSS_WATER;} - @Override public String getTileName() { return type.getTileName(); diff --git a/src/main/java/com/codecool/dungeoncrawl/logic/GameMap.java b/src/main/java/com/codecool/dungeoncrawl/logic/GameMap.java index f45b2c8..4067f83 100644 --- a/src/main/java/com/codecool/dungeoncrawl/logic/GameMap.java +++ b/src/main/java/com/codecool/dungeoncrawl/logic/GameMap.java @@ -1,10 +1,14 @@ package com.codecool.dungeoncrawl.logic; +import com.codecool.dungeoncrawl.logic.actors.Actor; import com.codecool.dungeoncrawl.logic.actors.Monsters; import com.codecool.dungeoncrawl.logic.actors.Player; import com.codecool.dungeoncrawl.logic.items.ActableItem; import com.codecool.dungeoncrawl.logic.items.Campfire; +import com.codecool.dungeoncrawl.logic.items.Item; +import java.util.ArrayList; +import java.util.List; import java.util.Random; @@ -64,7 +68,6 @@ public void repositionCenter() { } else nextY = Math.min(player.getCell().getY(), height - 11); centerCell = cells[nextX][nextY]; - } @@ -82,6 +85,35 @@ public void actAllMapCreature() { } } + public List getItems() { + + List items = new ArrayList<>(); + + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + if (cells[x][y].getItem() != null){ + items.add(cells[x][y].getItem()); + } + } + } + return items; + } + + public List getActors() { + + List actors = new ArrayList<>(); + + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + if (cells[x][y].getActor() != null){ + actors.add(cells[x][y].getActor()); + } + } + } + return actors; + } + + public void openDoor(int x, int y) { cells[x][y].setType(CellType.ENTRANCE); } @@ -90,11 +122,7 @@ public void crossWater(int x, int y) { cells[x][y].setType(CellType.CROSS_WATER); } - public void remakeWater(int x, int y) { - cells[x][y].setType(CellType.WATER); - } - - @Override + @Override public String toString(){ StringBuilder map = new StringBuilder(); for(int i = 0; i < height; i++){ diff --git a/src/main/java/com/codecool/dungeoncrawl/logic/items/BertieBottsEveryFlavorBeans.java b/src/main/java/com/codecool/dungeoncrawl/logic/items/BertieBottsEveryFlavorBeans.java index 3b553e4..331a96f 100644 --- a/src/main/java/com/codecool/dungeoncrawl/logic/items/BertieBottsEveryFlavorBeans.java +++ b/src/main/java/com/codecool/dungeoncrawl/logic/items/BertieBottsEveryFlavorBeans.java @@ -9,7 +9,7 @@ public BertieBottsEveryFlavorBeans (Cell cell){ @Override public String getTileName(){ - return "BB's E. Flavor"; + return "BBs E. Flavor"; } @Override diff --git a/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java b/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java index ce69db8..038a566 100644 --- a/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java +++ b/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java @@ -18,7 +18,6 @@ public PlayerModel(Player player) { this.playerName = "player.getName()"; this.x = player.getX(); this.y = player.getY(); - this.hp = player.getHealth(); } From f8aba83df4cb81a46f963255d36d13f0f0317d8e Mon Sep 17 00:00:00 2001 From: reka Date: Thu, 26 May 2022 12:05:08 +0200 Subject: [PATCH 5/8] prepare main to save JSON to textfile --- .../{ConvertToJSON.java => HandleJSON.java} | 11 +++- .../java/com/codecool/dungeoncrawl/Main.java | 62 ++++++++++++------- 2 files changed, 50 insertions(+), 23 deletions(-) rename src/main/java/com/codecool/dungeoncrawl/JSON/{ConvertToJSON.java => HandleJSON.java} (75%) diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java b/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java similarity index 75% rename from src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java rename to src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java index 13f6f97..42d37da 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/ConvertToJSON.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java @@ -9,7 +9,7 @@ import java.util.ArrayList; import java.util.List; -public class ConvertToJSON { +public class HandleJSON { public static String convertObjectToJson(Object obj) { Gson JSONObject = new Gson(); return JSONObject.toJson(obj); @@ -29,5 +29,14 @@ public static List getEveryMember(GameMap map){ } return members; } + public static String createStringFromJSONList(List JSONList){ + StringBuilder JSONbuilder = new StringBuilder(); + + for(String objectJson : JSONList){ + JSONbuilder.append(objectJson); + } + return JSONbuilder.toString(); + } + } diff --git a/src/main/java/com/codecool/dungeoncrawl/Main.java b/src/main/java/com/codecool/dungeoncrawl/Main.java index 26fdf22..82ae763 100644 --- a/src/main/java/com/codecool/dungeoncrawl/Main.java +++ b/src/main/java/com/codecool/dungeoncrawl/Main.java @@ -1,16 +1,13 @@ package com.codecool.dungeoncrawl; -import com.codecool.dungeoncrawl.JSON.ConvertToJSON; -import com.codecool.dungeoncrawl.JSON.PlayerJson; +import com.codecool.dungeoncrawl.JSON.HandleJSON; import com.codecool.dungeoncrawl.dao.GameDatabaseManager; import com.codecool.dungeoncrawl.logic.Cell; import com.codecool.dungeoncrawl.logic.GameMap; import com.codecool.dungeoncrawl.logic.MapLoader; -import com.codecool.dungeoncrawl.logic.actors.Player; import javafx.animation.KeyFrame; import javafx.animation.Timeline; import javafx.application.Application; -import javafx.collections.ObservableList; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; @@ -25,6 +22,7 @@ import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; +import javafx.stage.FileChooser; import javafx.stage.Stage; import javafx.scene.text.Font; @@ -35,11 +33,10 @@ import java.io.File; +import java.io.PrintWriter; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -import java.util.Timer; -import java.util.TimerTask; public class Main extends Application { static final int CONST_10 = 10; @@ -63,14 +60,15 @@ public class Main extends Application { MediaPlayer backgroundMediaPlayer; GameDatabaseManager dbManager; Timeline fiveSecondsWonder; - + private Stage myStage; public static void main(String[] args) { launch(args); } @Override - public void start(Stage primaryStage){ + public void start(Stage primaryStage) { + myStage = primaryStage; setupDbManager(); backgroundMedia = new Media(new File("src/main/resources/background-music.wav").toURI().toString()); backgroundMediaPlayer = new MediaPlayer(backgroundMedia); @@ -114,8 +112,7 @@ private void onKeyReleased(KeyEvent keyEvent) { || exitCombinationWin.match(keyEvent) || keyEvent.getCode() == KeyCode.ESCAPE) { exit(); - } - else if(saveCombination.match(keyEvent)){ + } else if (saveCombination.match(keyEvent)) { showSaveOption(); } } @@ -150,7 +147,7 @@ private void onKeyPressed(KeyEvent keyEvent) { } } - private void moveMonsters(){ + private void moveMonsters() { fiveSecondsWonder = new Timeline( new KeyFrame(Duration.seconds(5), event -> { @@ -198,7 +195,7 @@ private void setupDbManager() { } - public void gameOverDisplay(){ + public void gameOverDisplay() { isGameOver = true; Font myFont = new Font("Serif", 36); gameOver.setText("Game\nOver!"); @@ -206,7 +203,8 @@ public void gameOverDisplay(){ refresh(); } - public void gameWonDisplay(){ + + public void gameWonDisplay() { isGameOver = true; Font myFont = new Font("Serif", 22); gameOver.setText("Congratulation!"); @@ -248,21 +246,41 @@ public void showSaveOption() { Label playerName = new Label(name); ui.add(playerName, 0, 0); playerName.setFont(myFont); - mapConverter(); - }); + saveMapObjects(mapConverter()); + }); } - public void mapConverter(){ - List mapObjects = ConvertToJSON.getEveryMember(map); + public List mapConverter() { + List mapObjects = HandleJSON.getEveryMember(map); List JSONList = new ArrayList<>(); - for (Object obj : mapObjects){ - JSONList.add(ConvertToJSON.convertObjectToJson(obj)); + for (Object obj : mapObjects) { + JSONList.add(HandleJSON.convertObjectToJson(obj)); } - for (String objectJson : JSONList){ - System.out.println(objectJson); - } + for (String objectJson : JSONList) { + System.out.println(objectJson); + } + return JSONList; + } + + public void saveMapObjects(List JSONList) { + FileChooser file = new FileChooser(); + file.setTitle("Save Image"); + //System.out.println(pic.getId()); + File file1 = file.showSaveDialog(myStage); + + System.out.println(file1); } + /* private void saveTextToFile(String content, File file) { + try { + PrintWriter writer; + writer = new PrintWriter(file); + writer.println(content); + writer.close(); + } catch (IOException ex) { + Logger.getLogger(SaveFileWithFileChooser.class.getName()).log(Level.SEVERE, null, ex); + } + }*/ From 3940369d7cc442db544e31cd74765c4ffd5b124d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juh=C3=A1sz=20=C3=81ron?= Date: Thu, 26 May 2022 12:17:31 +0200 Subject: [PATCH 6/8] refactor json --- .../codecool/dungeoncrawl/JSON/HandleJSON.java | 17 +++++++++++++++++ .../java/com/codecool/dungeoncrawl/Main.java | 14 +------------- .../dungeoncrawl/model/PlayerModel.java | 2 +- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java b/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java index 42d37da..b762816 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java @@ -38,5 +38,22 @@ public static String createStringFromJSONList(List JSONList){ return JSONbuilder.toString(); } + public static String createFinalJsonString(GameMap map){ + List list = mapConverter(map); + return createStringFromJSONList(list); + } + + public static List mapConverter(GameMap map) { + List mapObjects = getEveryMember(map); + List JSONList = new ArrayList<>(); + for (Object obj : mapObjects) { + JSONList.add(convertObjectToJson(obj)); + + } + for (String objectJson : JSONList) { + System.out.println(objectJson); + } + return JSONList; + } } diff --git a/src/main/java/com/codecool/dungeoncrawl/Main.java b/src/main/java/com/codecool/dungeoncrawl/Main.java index 82ae763..88d488b 100644 --- a/src/main/java/com/codecool/dungeoncrawl/Main.java +++ b/src/main/java/com/codecool/dungeoncrawl/Main.java @@ -246,22 +246,10 @@ public void showSaveOption() { Label playerName = new Label(name); ui.add(playerName, 0, 0); playerName.setFont(myFont); - saveMapObjects(mapConverter()); + //saveMapObjects(mapConverter()); !!!!!!!!!!!! }); } - public List mapConverter() { - List mapObjects = HandleJSON.getEveryMember(map); - List JSONList = new ArrayList<>(); - for (Object obj : mapObjects) { - JSONList.add(HandleJSON.convertObjectToJson(obj)); - - } - for (String objectJson : JSONList) { - System.out.println(objectJson); - } - return JSONList; - } public void saveMapObjects(List JSONList) { FileChooser file = new FileChooser(); diff --git a/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java b/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java index 038a566..2fb162b 100644 --- a/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java +++ b/src/main/java/com/codecool/dungeoncrawl/model/PlayerModel.java @@ -15,7 +15,7 @@ public PlayerModel(String playerName, int x, int y) { } public PlayerModel(Player player) { - this.playerName = "player.getName()"; + this.playerName = player.getName(); this.x = player.getX(); this.y = player.getY(); this.hp = player.getHealth(); From 313e0f163738e0e16227961d4dfa2af92bccd008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juh=C3=A1sz=20=C3=81ron?= Date: Thu, 26 May 2022 13:18:53 +0200 Subject: [PATCH 7/8] json save implements --- .../java/com/codecool/dungeoncrawl/Main.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/codecool/dungeoncrawl/Main.java b/src/main/java/com/codecool/dungeoncrawl/Main.java index 88d488b..c6aa9da 100644 --- a/src/main/java/com/codecool/dungeoncrawl/Main.java +++ b/src/main/java/com/codecool/dungeoncrawl/Main.java @@ -5,6 +5,7 @@ import com.codecool.dungeoncrawl.logic.Cell; import com.codecool.dungeoncrawl.logic.GameMap; import com.codecool.dungeoncrawl.logic.MapLoader; +import com.codecool.dungeoncrawl.logic.actors.Player; import javafx.animation.KeyFrame; import javafx.animation.Timeline; import javafx.application.Application; @@ -33,6 +34,7 @@ import java.io.File; +import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.util.ArrayList; @@ -246,29 +248,33 @@ public void showSaveOption() { Label playerName = new Label(name); ui.add(playerName, 0, 0); playerName.setFont(myFont); - //saveMapObjects(mapConverter()); !!!!!!!!!!!! + String finalJson = HandleJSON.createFinalJsonString(map); + saveTextToFile(finalJson, saveToFile()); + }); } - public void saveMapObjects(List JSONList) { + public File saveToFile() { FileChooser file = new FileChooser(); file.setTitle("Save Image"); //System.out.println(pic.getId()); File file1 = file.showSaveDialog(myStage); System.out.println(file1); + return file1; } - /* private void saveTextToFile(String content, File file) { + + private void saveTextToFile(String content, File file) { try { PrintWriter writer; writer = new PrintWriter(file); writer.println(content); writer.close(); } catch (IOException ex) { - Logger.getLogger(SaveFileWithFileChooser.class.getName()).log(Level.SEVERE, null, ex); + System.out.println("file not found"); } - }*/ + } From 02dd972a8acb4163e6013279c6a00558a726efc5 Mon Sep 17 00:00:00 2001 From: reka Date: Thu, 26 May 2022 13:22:16 +0200 Subject: [PATCH 8/8] refactor --- .../codecool/dungeoncrawl/JSON/HandleJSON.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java b/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java index b762816..a059dcc 100644 --- a/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java +++ b/src/main/java/com/codecool/dungeoncrawl/JSON/HandleJSON.java @@ -29,14 +29,6 @@ public static List getEveryMember(GameMap map){ } return members; } - public static String createStringFromJSONList(List JSONList){ - StringBuilder JSONbuilder = new StringBuilder(); - - for(String objectJson : JSONList){ - JSONbuilder.append(objectJson); - } - return JSONbuilder.toString(); - } public static String createFinalJsonString(GameMap map){ List list = mapConverter(map); @@ -56,4 +48,13 @@ public static List mapConverter(GameMap map) { return JSONList; } + public static String createStringFromJSONList(List JSONList){ + StringBuilder JSONbuilder = new StringBuilder(); + + for(String objectJson : JSONList){ + JSONbuilder.append(objectJson); + } + return JSONbuilder.toString(); + } + }