Advertisement
Guest User

Save

a guest
Jan 24th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. package saving;
  2.  
  3. import java.awt.Point;
  4. import java.io.File;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.util.ArrayList;
  8.  
  9. import com.thoughtworks.xstream.XStream;
  10. import com.thoughtworks.xstream.io.xml.StaxDriver;
  11.  
  12. import gameState.GameState;
  13. import gui.DrawCanvas;
  14. import gui.View;
  15. import plates.IShape;
  16. import player.Player;
  17.  
  18. public class Save {
  19.  
  20. private static Save instance;
  21.  
  22. private Save() {
  23.  
  24. }
  25.  
  26. public static Save getInstance() {
  27. if (instance == null) {
  28. instance = new Save();
  29. }
  30. return instance;
  31. }
  32.  
  33. public void save(GameState gameState) {
  34.  
  35. }
  36.  
  37. // Using Xstream to save the drawing of the plates, but a text file for
  38. // centers
  39. public void saveTemp(View view, File player1, File player2, File player1LeftPlates, File player1RightPlates,
  40. File player2LeftPlates, File player2RightPlates, File flying, File upLeftShelf, File downLeftShelf,
  41. File upRightShelf, File downRightShelf, File centers) {
  42. savePlace(view.getCanvas().getPlayer1().getCenter(), player1);
  43. savePlace(view.getCanvas().getPlayer2().getCenter(), player2);
  44. savePlayerPlates(view.getCanvas().getPlayer1(), player1LeftPlates, player1RightPlates, centers);
  45. savePlayerPlates(view.getCanvas().getPlayer2(), player2LeftPlates, player2RightPlates, centers);
  46. saveShelves(view.getCanvas(), upLeftShelf, downLeftShelf, upRightShelf, downRightShelf, centers);
  47. saveFlying(view.getCanvas(), flying, centers);
  48. }
  49.  
  50. private void savePlayerPlates(Player player, File playerLeftPlates, File playerRightPlates, File centers) {
  51. saveShapes(player.getLeftStack().getPlates(), playerLeftPlates, centers);
  52. saveShapes(player.getRightStack().getPlates(), playerRightPlates, centers);
  53. }
  54.  
  55. private void saveShelves(DrawCanvas canvas, File upLeftShelf, File downLeftShelf, File upRightShelf,
  56. File downRightShelf, File center) {
  57. saveShapes(canvas.getUpLeftShelf().getPlates(), upLeftShelf, center);
  58. saveShapes(canvas.getDownLeftShelf().getPlates(), downLeftShelf, center);
  59. saveShapes(canvas.getUpRightShelf().getPlates(), upRightShelf, center);
  60. saveShapes(canvas.getDownRightShelf().getPlates(), downRightShelf, center);
  61. }
  62.  
  63. private void saveFlying(DrawCanvas canvas, File flying, File center) {
  64. ArrayList<IShape> plates = canvas.getFlying().getPlates();
  65. saveShapes(plates, flying, center);
  66. }
  67.  
  68. private void saveShapes(ArrayList<IShape> plates, File file, File center) {
  69. XStream xstream = new XStream(new StaxDriver());
  70. String s = xstream.toXML(plates);
  71. try {
  72. FileWriter file2 = new FileWriter(file, true);
  73. file2.write(s);
  74. file2.flush();
  75. file2.close();
  76. file2 = new FileWriter(center);
  77. for (int i = 0; i < plates.size(); i++) {
  78. file2.write(plates.get(i).getCenter().x + " " + plates.get(i).getCenter().y + '\n');
  79. }
  80. file2.close();
  81. } catch (IOException e) {
  82. e.printStackTrace();
  83. }
  84. }
  85.  
  86. private void savePlace(Point point, File place) {
  87. try {
  88. FileWriter file = new FileWriter(place);
  89. file.write(point.x + " " + point.y);
  90. file.flush();
  91. file.close();
  92. } catch (IOException e) {
  93. e.printStackTrace();
  94. }
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement