using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArmoredVehicle
{
internal static class ExtentionMachine
{
///
/// Разделитель для записи информации по объекту в файл
///
private static readonly char _separatorForObject = ':';
///
/// Создание объекта из строки
///
///
///
public static DrawingArmoredVehicle CreateDrawningCar(this string info)
{
string[] strs = info.Split(_separatorForObject);
if (strs.Length == 3)
{
return new DrawingArmoredVehicle(Convert.ToInt32(strs[0]),
Convert.ToInt32(strs[1]), Color.FromName(strs[2]));
}
if (strs.Length == 6)
{
return new DrawingTank(Convert.ToInt32(strs[0]),
Convert.ToInt32(strs[1]), Color.FromName(strs[2]),
Color.FromName(strs[3]), Convert.ToBoolean(strs[4]),
Convert.ToBoolean(strs[5]));
}
return null;
}
///
/// Получение данных для сохранения в файл
///
///
///
public static string GetDataForSave(this DrawingArmoredVehicle drawningMachine)
{
var car = drawningMachine.ArmoredVehicle;
var str = $"{car.Speed}{_separatorForObject}{car.Weight}{_separatorForObject}{car.BodyColor.Name}";
if (car is not TankEnity tank)
{
return str;
}
return $"{str}{_separatorForObject}{tank.DopColor.Name}{_separatorForObject}{tank.MachineGun}{_separatorForObject}{tank.Tower}";
}
}
}