Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package saving;
- import java.awt.Point;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.ArrayList;
- import com.thoughtworks.xstream.XStream;
- import com.thoughtworks.xstream.io.xml.StaxDriver;
- import gameState.GameState;
- import gui.DrawCanvas;
- import gui.View;
- import plates.IShape;
- import player.Player;
- public class Save {
- private static Save instance;
- private Save() {
- }
- public static Save getInstance() {
- if (instance == null) {
- instance = new Save();
- }
- return instance;
- }
- public void save(GameState gameState) {
- }
- // Using Xstream to save the drawing of the plates, but a text file for
- // centers
- public void saveTemp(View view, File player1, File player2, File player1LeftPlates, File player1RightPlates,
- File player2LeftPlates, File player2RightPlates, File flying, File upLeftShelf, File downLeftShelf,
- File upRightShelf, File downRightShelf, File centers) {
- savePlace(view.getCanvas().getPlayer1().getCenter(), player1);
- savePlace(view.getCanvas().getPlayer2().getCenter(), player2);
- savePlayerPlates(view.getCanvas().getPlayer1(), player1LeftPlates, player1RightPlates, centers);
- savePlayerPlates(view.getCanvas().getPlayer2(), player2LeftPlates, player2RightPlates, centers);
- saveShelves(view.getCanvas(), upLeftShelf, downLeftShelf, upRightShelf, downRightShelf, centers);
- saveFlying(view.getCanvas(), flying, centers);
- }
- private void savePlayerPlates(Player player, File playerLeftPlates, File playerRightPlates, File centers) {
- saveShapes(player.getLeftStack().getPlates(), playerLeftPlates, centers);
- saveShapes(player.getRightStack().getPlates(), playerRightPlates, centers);
- }
- private void saveShelves(DrawCanvas canvas, File upLeftShelf, File downLeftShelf, File upRightShelf,
- File downRightShelf, File center) {
- saveShapes(canvas.getUpLeftShelf().getPlates(), upLeftShelf, center);
- saveShapes(canvas.getDownLeftShelf().getPlates(), downLeftShelf, center);
- saveShapes(canvas.getUpRightShelf().getPlates(), upRightShelf, center);
- saveShapes(canvas.getDownRightShelf().getPlates(), downRightShelf, center);
- }
- private void saveFlying(DrawCanvas canvas, File flying, File center) {
- ArrayList<IShape> plates = canvas.getFlying().getPlates();
- saveShapes(plates, flying, center);
- }
- private void saveShapes(ArrayList<IShape> plates, File file, File center) {
- XStream xstream = new XStream(new StaxDriver());
- String s = xstream.toXML(plates);
- try {
- FileWriter file2 = new FileWriter(file, true);
- file2.write(s);
- file2.flush();
- file2.close();
- file2 = new FileWriter(center);
- for (int i = 0; i < plates.size(); i++) {
- file2.write(plates.get(i).getCenter().x + " " + plates.get(i).getCenter().y + '\n');
- }
- file2.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void savePlace(Point point, File place) {
- try {
- FileWriter file = new FileWriter(place);
- file.write(point.x + " " + point.y);
- file.flush();
- file.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement