package ruscz.game.gameOfProd.Save; import ruscz.game.gameOfProd.Cells.TriggerCell; import ruscz.game.gameOfProd.Map.Map; import ruscz.game.gameOfProd.Map.MapManager; import ruscz.game.gameOfProd.Windows.WindowOfFreeMove; import java.awt.*; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.util.LinkedList; import java.util.Scanner; public class LoadManager { private MapManager mapManager; private WindowOfFreeMove window; public LoadManager(MapManager mapManager) { this.mapManager = mapManager; this.window = mapManager.getWindow(); } public void loadNewGame() { loadMaps(); } public void loadSavedGame() { loadNewGame(); loadPerson(); loadEvents(); loadVillage(); loadInventory(); } public void clearSave() { try { FileWriter writer = new FileWriter("src/main/resources/save/savedGame/person.txt"); writer.write(""); writer = new FileWriter("src/main/resources/save/savedGame/events.txt"); writer.write(""); writer = new FileWriter("src/main/resources/save/savedGame/village.txt"); writer.write(""); writer = new FileWriter("src/main/resources/save/savedGame/inventory.txt"); writer.write(""); writer.close(); } catch (IOException e) { e.printStackTrace(); } } private void loadMaps() { try { Rectangle[] rec = new Rectangle[12]; int CELL_SIZE = WindowOfFreeMove.CELL_SIZE; int count = 0; for (int i = 0; i < rec.length / 4; i++) { for (int j = 0; j < rec.length / 3; j++) { rec[count] = new Rectangle(CELL_SIZE * i, CELL_SIZE * j, CELL_SIZE, CELL_SIZE); count++; } } LinkedList mapLinkedList = window.getMapLinkedList(); File mapsFile = new File("src/main/resources/save/newGame/maps.txt"); Scanner scanner = new Scanner(mapsFile); while (scanner.hasNextLine()) { String mapName = scanner.nextLine(); Map map = Map.loadMapFromFile(mapName, window); map.getPerson().setImagePerson("main", rec); map.setName(mapName); mapLinkedList.add(map); } scanner.close(); for (Map map : mapLinkedList) { map.linkMaps(map, window); } } catch (FileNotFoundException e) { e.printStackTrace(); } } private void loadPerson() { try { File personFile = new File("src/main/resources/save/savedGame/person.txt"); Scanner scanner = new Scanner(personFile); while (scanner.hasNextLine()) { String data = scanner.nextLine(); switch (data) { case "": window.setMapManager(Map.findMapByName(getValue(scanner.nextLine()), window)); mapManager.getActualMap().getPerson().set(Integer.parseInt(getValue(scanner.nextLine())), Integer.parseInt(getValue(scanner.nextLine()))); break; } } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } private void loadEvents() { try { File eventFile = new File("src/main/resources/save/savedGame/events.txt"); Scanner scanner = new Scanner(eventFile); Map map = null; while (scanner.hasNextLine()) { if (scanner.nextLine().equals("")) { map = Map.findMapByName(getValue(scanner.nextLine()), window); System.out.println(map.getName()); } else if (scanner.nextLine().contains("")) { TriggerCell triggerCell = map.findTriggerByXY(Integer.parseInt(getValue(scanner.nextLine())), Integer.parseInt(getValue(scanner.nextLine()))); triggerCell.setActive(Boolean.parseBoolean(getValue(scanner.nextLine()))); System.out.println(triggerCell.getX()); } else { scanner.nextLine(); } } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } private void loadVillage() { try { File villageFile = new File("src/main/resources/save/savedGame/village.txt"); Scanner scanner = new Scanner(villageFile); scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } //TODO: loadVillage } private void loadInventory() { try { File inventoryFile = new File("src/main/resources/save/savedGame/inventory.txt"); Scanner scanner = new Scanner(inventoryFile); scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } //TODO: loadInventory } private String getValue(String line) { return line.substring(line.indexOf(">") + 1, line.lastIndexOf("<")); } }