Реализовано сохранение допкласса

This commit is contained in:
Никита Потапов 2023-12-17 21:19:45 +04:00
parent 5ea79c63eb
commit 9bb8540007

View File

@ -1,13 +1,13 @@
package ProjectStormtrooper; package ProjectStormtrooper;
import java.awt.*; import java.awt.*;
import java.util.Objects;
public class ExtensionDrawingPlane { public class ExtensionDrawingPlane {
public static DrawingPlane CreateDrawingPlane(String info, String separatorForObject, int width, int height) { public static DrawingPlane CreateDrawingPlane(String info, String separatorForObject, int width, int height) {
// todo Добавить сохранение значеиня допкласса
String[] strs = info.split(separatorForObject); String[] strs = info.split(separatorForObject);
if (strs.length == 5) { if (strs.length == 7) {
return new DrawingPlane( DrawingPlane drawingPlane = new DrawingPlane(
Integer.parseInt(strs[0]), Integer.parseInt(strs[0]),
Double.parseDouble(strs[1]), Double.parseDouble(strs[1]),
new Color( new Color(
@ -17,9 +17,18 @@ public class ExtensionDrawingPlane {
), ),
width, height width, height
); );
if (strs[5] == "DrawingEnginesSimple") {
drawingPlane._drawingEngines = new DrawingEnginesSimple();
} else if (strs[5] == "DrawingEnginesPyramid") {
drawingPlane._drawingEngines = new DrawingEnginesPyramid();
} else if (strs[5] == "DrawingEnginesEllipse") {
drawingPlane._drawingEngines = new DrawingEnginesEllipse();
}
drawingPlane.SetEnginesCount(Integer.parseInt(strs[6]));
return drawingPlane;
} }
if (strs.length == 10) { if (strs.length == 12) {
return new DrawingStormtrooper( DrawingPlane drawingPlane = new DrawingStormtrooper(
Integer.parseInt(strs[0]), Integer.parseInt(strs[0]),
Double.parseDouble(strs[1]), Double.parseDouble(strs[1]),
new Color( new Color(
@ -28,28 +37,51 @@ public class ExtensionDrawingPlane {
Integer.parseInt(strs[4]) Integer.parseInt(strs[4])
), ),
new Color( new Color(
Integer.parseInt(strs[5]), Integer.parseInt(strs[7]),
Integer.parseInt(strs[6]), Integer.parseInt(strs[8]),
Integer.parseInt(strs[7]) Integer.parseInt(strs[9])
), ),
Boolean.parseBoolean(strs[8]), Boolean.parseBoolean(strs[10]),
Boolean.parseBoolean(strs[9]), Boolean.parseBoolean(strs[11]),
width, height width, height
); );
if (Objects.equals(strs[5], "DrawingEnginesSimple")) {
drawingPlane._drawingEngines = new DrawingEnginesSimple();
} else if (Objects.equals(strs[5], "DrawingEnginesPyramid")) {
drawingPlane._drawingEngines = new DrawingEnginesPyramid();
} else if (Objects.equals(strs[5], "DrawingEnginesEllipse")) {
drawingPlane._drawingEngines = new DrawingEnginesEllipse();
}
drawingPlane.SetEnginesCount(Integer.parseInt(strs[6]));
return drawingPlane;
} }
return null; return null;
} }
public static String GetDataForSave(DrawingPlane drawingPlane, String separatorForObject) { public static String GetDataForSave(DrawingPlane drawingPlane, String separatorForObject) {
// todo Добавить загрузку значеиня допкласса
var plane = drawingPlane.EntityPlane; var plane = drawingPlane.EntityPlane;
if (plane == null) { if (plane == null) {
return ""; return "";
} }
String str = plane.Speed + separatorForObject + plane.Weight + separatorForObject + plane.BodyColor.getRed() + separatorForObject + plane.BodyColor.getGreen() + separatorForObject + plane.BodyColor.getBlue(); String str = plane.Speed +
separatorForObject +
plane.Weight +
separatorForObject +
plane.BodyColor.getRed() + separatorForObject +
plane.BodyColor.getGreen() + separatorForObject +
plane.BodyColor.getBlue() + separatorForObject +
drawingPlane._drawingEngines.getClass() + separatorForObject +
drawingPlane._drawingEngines.GetEnumEnginesCount().count;
if (!(plane instanceof EntityStormtrooper stormtrooper)) { if (!(plane instanceof EntityStormtrooper stormtrooper)) {
return str; return str;
} }
return str + separatorForObject + stormtrooper.AdditionalColor.getRed() + separatorForObject + stormtrooper.AdditionalColor.getGreen() + separatorForObject + stormtrooper.AdditionalColor.getBlue() + separatorForObject + stormtrooper.Bombs + separatorForObject + stormtrooper.Rockets; return str +
separatorForObject +
stormtrooper.AdditionalColor.getRed() + separatorForObject +
stormtrooper.AdditionalColor.getGreen() + separatorForObject +
stormtrooper.AdditionalColor.getBlue() + separatorForObject +
stormtrooper.Bombs +
separatorForObject +
stormtrooper.Rockets;
} }
} }