From 9bb85400072c40d4193582434cf3337aaa04511f Mon Sep 17 00:00:00 2001 From: "ns.potapov" Date: Sun, 17 Dec 2023 21:19:45 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BE=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BF=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtensionDrawingPlane.java | 58 ++++++++++++++----- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/ProjectStormtrooper/ExtensionDrawingPlane.java b/ProjectStormtrooper/ExtensionDrawingPlane.java index 293965c..8a06fe6 100644 --- a/ProjectStormtrooper/ExtensionDrawingPlane.java +++ b/ProjectStormtrooper/ExtensionDrawingPlane.java @@ -1,13 +1,13 @@ package ProjectStormtrooper; import java.awt.*; +import java.util.Objects; public class ExtensionDrawingPlane { public static DrawingPlane CreateDrawingPlane(String info, String separatorForObject, int width, int height) { - // todo Добавить сохранение значеиня допкласса String[] strs = info.split(separatorForObject); - if (strs.length == 5) { - return new DrawingPlane( + if (strs.length == 7) { + DrawingPlane drawingPlane = new DrawingPlane( Integer.parseInt(strs[0]), Double.parseDouble(strs[1]), new Color( @@ -17,9 +17,18 @@ public class ExtensionDrawingPlane { ), 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) { - return new DrawingStormtrooper( + if (strs.length == 12) { + DrawingPlane drawingPlane = new DrawingStormtrooper( Integer.parseInt(strs[0]), Double.parseDouble(strs[1]), new Color( @@ -28,28 +37,51 @@ public class ExtensionDrawingPlane { Integer.parseInt(strs[4]) ), new Color( - Integer.parseInt(strs[5]), - Integer.parseInt(strs[6]), - Integer.parseInt(strs[7]) + Integer.parseInt(strs[7]), + Integer.parseInt(strs[8]), + Integer.parseInt(strs[9]) ), - Boolean.parseBoolean(strs[8]), - Boolean.parseBoolean(strs[9]), + Boolean.parseBoolean(strs[10]), + Boolean.parseBoolean(strs[11]), 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; } public static String GetDataForSave(DrawingPlane drawingPlane, String separatorForObject) { - // todo Добавить загрузку значеиня допкласса var plane = drawingPlane.EntityPlane; if (plane == null) { 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)) { 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; } }