GuiSettings.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package holeg.ui.model;
  2. import java.util.AbstractMap.SimpleEntry;
  3. import java.util.HashSet;
  4. import java.util.Set;
  5. import com.google.gson.Gson;
  6. import com.google.gson.GsonBuilder;
  7. import holeg.adapter.AbstractCpsObjectAdapter;
  8. import holeg.adapter.PairAdapter;
  9. import holeg.adapter.PositionAdapter;
  10. import holeg.model.AbstractCanvasObject;
  11. import holeg.model.Edge;
  12. import holeg.ui.view.main.Category;
  13. import holeg.utility.math.vector.Vec2i;
  14. public class GuiSettings {
  15. private static int pictureScale = 50; // Picture Scale
  16. private static int halfPictureScale = pictureScale / 2;
  17. public static Vec2i canvasSize = new Vec2i(3000,3000);
  18. public static int timerSpeed = 1000;
  19. public static boolean showSupplyBars = true;
  20. public static float maxCapacityForNewCreatedEdges = 10000;
  21. private static Set<Edge> selectedEdges = new HashSet<>();
  22. private static Set<Category> categories = new HashSet<>();
  23. private static Set<AbstractCanvasObject> clipboardObjects = new HashSet<>();
  24. private static Set<AbstractCanvasObject> selectedObjects = new HashSet<>();
  25. public static int autoSaveNr = -1;
  26. public static int numberOfSaves = 35;
  27. public static int getPictureScale() {
  28. return pictureScale;
  29. }
  30. public static int getPictureScaleDiv2() {
  31. return halfPictureScale;
  32. }
  33. public static void setPictureScale(int value) {
  34. pictureScale = value;
  35. halfPictureScale = (value + 1) / 2;
  36. }
  37. public static Set<Edge> getSelectedEdges() {
  38. return selectedEdges;
  39. }
  40. public static Set<Category> getCategories() {
  41. return categories;
  42. }
  43. public static Set<AbstractCanvasObject> getClipboardObjects() {
  44. return clipboardObjects;
  45. }
  46. public static void setClipboardObjects(Set<AbstractCanvasObject> clipboardObjects) {
  47. GuiSettings.clipboardObjects = clipboardObjects;
  48. }
  49. public static Set<AbstractCanvasObject> getSelectedObjects() {
  50. return selectedObjects;
  51. }
  52. public static void setSelectedObjects(Set<AbstractCanvasObject> selectedObjects) {
  53. GuiSettings.selectedObjects = selectedObjects;
  54. }
  55. //TODO(Tom2021-12-20) maybe moved somewhere else
  56. public static Gson gson = initGson();
  57. public static Gson initGson() {
  58. GsonBuilder builder = new GsonBuilder();
  59. builder.serializeNulls();
  60. builder.excludeFieldsWithoutExposeAnnotation();
  61. builder.setPrettyPrinting();
  62. builder.registerTypeAdapter(AbstractCanvasObject.class, new AbstractCpsObjectAdapter());
  63. builder.registerTypeAdapter(Vec2i.class, new PositionAdapter());
  64. builder.registerTypeAdapter(SimpleEntry.class, new PairAdapter());
  65. return builder.create();
  66. }
  67. }