90 lines
3.9 KiB
Java
Raw Normal View History

2023-12-04 18:05:35 +04:00
package ProjectElectricLocomotive;
2023-12-05 00:57:00 +04:00
import java.awt.*;
2023-12-18 00:49:42 +04:00
import java.util.Objects;
2023-12-05 00:57:00 +04:00
2023-12-04 18:05:35 +04:00
public class ExtentionDrawingLoco {
2023-12-18 00:49:42 +04:00
public static DrawingLocomotive CreateDrawingLocomotive(String info, String separatorForObject, int width, int height)
2023-12-05 00:57:00 +04:00
{
2023-12-18 00:49:42 +04:00
String[] strs = info.split(separatorForObject);
if (strs.length == 7) {
DrawingLocomotive drawingLoco = new DrawingLocomotive(
Integer.parseInt(strs[0]),
Double.parseDouble(strs[1]),
new Color(
Integer.parseInt(strs[2]),
Integer.parseInt(strs[3]),
Integer.parseInt(strs[4])
),
width, height
2023-12-05 00:57:00 +04:00
);
2023-12-18 00:49:42 +04:00
if (Objects.equals(strs[5], "DrawingWheel")) {
drawingLoco._drawingWheels = new DrawingWheel();
} else if (Objects.equals(strs[5], "DrawingEmptyWheels")) {
drawingLoco._drawingWheels = new DrawingEmptyWheels();
} else if (Objects.equals(strs[5], "DrawingWheelsBlueCrom")) {
drawingLoco._drawingWheels = new DrawingWheelsBlueCrom();
}
drawingLoco.SetWheelsCount(Integer.parseInt(strs[6]));
return drawingLoco;
2023-12-05 00:57:00 +04:00
}
2023-12-18 00:49:42 +04:00
if (strs.length == 12) {
DrawingLocomotive drawingLoco = new DrawingElectricLocomotive(
Integer.parseInt(strs[0]),
Double.parseDouble(strs[1]),
new Color(
Integer.parseInt(strs[2]),
Integer.parseInt(strs[3]),
Integer.parseInt(strs[4])
),
new Color(
Integer.parseInt(strs[7]),
Integer.parseInt(strs[8]),
Integer.parseInt(strs[9])
),
Boolean.parseBoolean(strs[10]),
Boolean.parseBoolean(strs[11]),
width, height
2023-12-05 00:57:00 +04:00
);
2023-12-18 00:49:42 +04:00
if (Objects.equals(strs[5], "DrawingWheel")) {
drawingLoco._drawingWheels = new DrawingWheel();
} else if (Objects.equals(strs[5], "DrawingEmptyWheels")) {
drawingLoco._drawingWheels = new DrawingEmptyWheels();
} else if (Objects.equals(strs[5], "DrawingWheelsBlueCrom")) {
drawingLoco._drawingWheels = new DrawingWheelsBlueCrom();
}
drawingLoco.SetWheelsCount(Integer.parseInt(strs[6]));
return drawingLoco;
2023-12-05 00:57:00 +04:00
}
return null;
}
2023-12-18 00:49:42 +04:00
public static String GetDataForSave(DrawingLocomotive drawingLoco, String separatorForObject) {
2023-12-05 00:57:00 +04:00
var loco = drawingLoco.EntityLocomotive;
2023-12-18 00:49:42 +04:00
if (loco == null) {
return "";
2023-12-05 00:57:00 +04:00
}
2023-12-18 00:49:42 +04:00
String str = loco.Speed +
separatorForObject +
loco.Weight +
separatorForObject +
loco.BodyColor.getRed() + separatorForObject +
loco.BodyColor.getGreen() + separatorForObject +
loco.BodyColor.getBlue() + separatorForObject +
(drawingLoco._drawingWheels.GetWheelsCount() == null ? "null" : drawingLoco._drawingWheels.getClass()) + separatorForObject +
(drawingLoco._drawingWheels.GetWheelsCount() == null ? "0" : drawingLoco._drawingWheels.GetWheelsCount().count);
if (!(loco instanceof EntityElectricLocomotive electroLoco)) {
2023-12-05 00:57:00 +04:00
return str;
}
2023-12-18 00:49:42 +04:00
return str +
separatorForObject +
electroLoco.AdditionalColor.getRed() + separatorForObject +
electroLoco.AdditionalColor.getGreen() + separatorForObject +
electroLoco.AdditionalColor.getBlue() + separatorForObject +
electroLoco.Horns +
separatorForObject +
electroLoco.SeifBatteries;
2023-12-05 00:57:00 +04:00
}
2023-12-04 18:05:35 +04:00
}