using AirBomber.Entities; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AirBomber.DrawningObjects { public static class ExtentionDrawningBomber { /// /// Создание объекта из строки /// /// Строка с данными для создания объекта /// Разделитель даннных /// Ширина /// Высота /// Объект public static DrawningBomber? CreateDrawningBomber(this string info, char separatorForObject, int width, int height) { string[] strs = info.Split(separatorForObject); if (strs.Length == 3) { return new DrawningBomber(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]), width, height); } else if (strs.Length == 6) { return new DrawningAirBomber(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]), Color.FromName(strs[3]), Convert.ToBoolean(strs[4]), Convert.ToBoolean(strs[5]), width, height); } return null; } /// /// Получение данных для сохранения в файл /// /// Сохраняемый объект /// Разделитель даннных /// Строка с данными по объекту public static string GetDataForSave(this DrawningBomber drawningBomber, char separatorForAir) { var air = drawningBomber.EntityBomber; if (air == null) { return string.Empty; } var str = $"{air.Speed}{separatorForAir}{air.Weight}{separatorForAir}{air.BodyColor.Name}"; if (air is not EntityAirBomber airBomber) { return str; } return $"{str}{separatorForAir}{airBomber.DopColor.Name}{separatorForAir}{airBomber.Toplivo}{separatorForAir}{airBomber.Rocket}"; } } }