From 2f6bbea7ba3f81a25a6f1053961af0e01f4a6bf5 Mon Sep 17 00:00:00 2001 From: prodigygirl Date: Sun, 20 Nov 2022 15:54:22 +0400 Subject: [PATCH] =?UTF-8?q?3.=20=D0=92=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4?= =?UTF-8?q?=D1=8B=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D0=BC=D0=B8=20=D0=BE=D0=B1=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=B5=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=B3=D1=83=D1=81=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=86=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/DrawingCaterpillar.java | 10 ++++ src/main/java/DrawingCrossCaterpillar.java | 10 ++++ src/main/java/DrawingDoubleCaterpillar.java | 10 ++++ src/main/java/ExtensionArmoredClass.java | 51 ++++++++++++--------- src/main/java/IDrawingCaterpillar.java | 4 ++ 5 files changed, 64 insertions(+), 21 deletions(-) diff --git a/src/main/java/DrawingCaterpillar.java b/src/main/java/DrawingCaterpillar.java index eb1d1b4..2785b4e 100644 --- a/src/main/java/DrawingCaterpillar.java +++ b/src/main/java/DrawingCaterpillar.java @@ -38,4 +38,14 @@ public class DrawingCaterpillar implements IDrawingCaterpillar { public void setColor(Color color) { this.color = color; } + + @Override + public Color getColor() { + return color; + } + + @Override + public NumRinks getNumRinks() { + return numRinks; + } } diff --git a/src/main/java/DrawingCrossCaterpillar.java b/src/main/java/DrawingCrossCaterpillar.java index 7b4fdee..3796747 100644 --- a/src/main/java/DrawingCrossCaterpillar.java +++ b/src/main/java/DrawingCrossCaterpillar.java @@ -44,4 +44,14 @@ public class DrawingCrossCaterpillar implements IDrawingCaterpillar{ public void setColor(Color color) { this.color = color; } + + @Override + public Color getColor() { + return color; + } + + @Override + public NumRinks getNumRinks() { + return numRinks; + } } diff --git a/src/main/java/DrawingDoubleCaterpillar.java b/src/main/java/DrawingDoubleCaterpillar.java index 5913b9b..e6c8a78 100644 --- a/src/main/java/DrawingDoubleCaterpillar.java +++ b/src/main/java/DrawingDoubleCaterpillar.java @@ -41,4 +41,14 @@ public class DrawingDoubleCaterpillar implements IDrawingCaterpillar{ public void setColor(Color color) { this.color = color; } + + @Override + public Color getColor() { + return color; + } + + @Override + public NumRinks getNumRinks() { + return numRinks; + } } diff --git a/src/main/java/ExtensionArmoredClass.java b/src/main/java/ExtensionArmoredClass.java index 5918a96..2ab9b32 100644 --- a/src/main/java/ExtensionArmoredClass.java +++ b/src/main/java/ExtensionArmoredClass.java @@ -1,15 +1,18 @@ import java.awt.*; +import java.util.Arrays; public class ExtensionArmoredClass { private static final String _separatorForObject = ":"; public static DrawingArmoredCar CreateDrawingArmoredCar(String info) { String[] strs = info.split(_separatorForObject); - if (strs.length == 3) - { - return new DrawingArmoredCar(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Color.decode(strs[2])); - } if (strs.length == 6) + { + var armoredCar = new DrawingArmoredCar(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Color.decode(strs[2])); + armoredCar.drawingCaterpillar = CreateIDrawingCaterpillar(String.join(_separatorForObject, Arrays.copyOfRange(strs, 3, strs.length))); + return armoredCar; + } + if (strs.length == 9) { return new DrawingTank(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]), Color.decode(strs[2]), @@ -19,20 +22,25 @@ public class ExtensionArmoredClass { return null; } -// public static IDrawingCaterpillar CreateIDrawingCaterpillar(String info) { -// String[] strs = info.split(_separatorForObject); -// switch (strs[0]) { -// case "": { -// break; -// } -// case "": { -// break; -// } -// case "": { -// break; -// } -// } -// } + public static IDrawingCaterpillar CreateIDrawingCaterpillar(String info) { + String[] strs = info.split(_separatorForObject); + IDrawingCaterpillar caterpillar = null; + switch (strs[0]) { + case "DrawingCaterpillar" -> { + caterpillar = new DrawingCaterpillar(Color.decode(strs[1])); + caterpillar.setNumRinks(Integer.parseInt(strs[2])); + } + case "DrawingCrossCaterpillar" -> { + caterpillar = new DrawingCrossCaterpillar(Color.decode(strs[1])); + caterpillar.setNumRinks(Integer.parseInt(strs[2])); + } + case "DrawingDoubleCaterpillar" -> { + caterpillar = new DrawingDoubleCaterpillar((Color.decode(strs[1]))); + caterpillar.setNumRinks(Integer.parseInt(strs[2])); + } + } + return caterpillar; + } public static String GetDataForSave(DrawingArmoredCar drawingArmoredCar) { @@ -41,10 +49,11 @@ public class ExtensionArmoredClass { (int)armoredCar.getWeight(), _separatorForObject, armoredCar.getBodyColor().getRGB()); if (!(armoredCar instanceof EntityTank tank)) { - return str; + return String.format("%s%s%s", str, _separatorForObject, GetDataForSave(drawingArmoredCar.drawingCaterpillar)); } - return String.format("%s%s%d%s%s%s%s", str, _separatorForObject, - tank.getDopColor().getRGB(), _separatorForObject, tank.isTowerWeapon(), _separatorForObject, tank.isAMachineGun()); + return String.format("%s%s%d%s%s%s%s%s%s", str, _separatorForObject, + tank.getDopColor().getRGB(), _separatorForObject, tank.isTowerWeapon(), _separatorForObject, + tank.isAMachineGun(), _separatorForObject, GetDataForSave(drawingArmoredCar.drawingCaterpillar)); } public static String GetDataForSave(IDrawingCaterpillar drawingCaterpillar) { diff --git a/src/main/java/IDrawingCaterpillar.java b/src/main/java/IDrawingCaterpillar.java index b52ed5e..6a35aec 100644 --- a/src/main/java/IDrawingCaterpillar.java +++ b/src/main/java/IDrawingCaterpillar.java @@ -7,4 +7,8 @@ public interface IDrawingCaterpillar { void setColor(Color color); + Color getColor(); + + NumRinks getNumRinks(); + }