From 991616d91486d636be00a0424bbc06b1a41dec0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=BB=D0=B0=D0=B2=D0=B0?= Date: Mon, 3 Jun 2024 02:45:21 +0400 Subject: [PATCH] s --- .../ProjectPlane/Drawnings/DirectionType.cs | 27 -- .../ProjectPlane/Drawnings/DrawningCruiser.cs | 230 ------------------ .../Drawnings/DrawningMilitaryCruiser.cs | 75 ------ .../Drawnings/ExtentionDrawningCruiser.cs | 50 ---- 4 files changed, 382 deletions(-) delete mode 100644 ProjectPlane/ProjectPlane/Drawnings/DirectionType.cs delete mode 100644 ProjectPlane/ProjectPlane/Drawnings/DrawningCruiser.cs delete mode 100644 ProjectPlane/ProjectPlane/Drawnings/DrawningMilitaryCruiser.cs delete mode 100644 ProjectPlane/ProjectPlane/Drawnings/ExtentionDrawningCruiser.cs diff --git a/ProjectPlane/ProjectPlane/Drawnings/DirectionType.cs b/ProjectPlane/ProjectPlane/Drawnings/DirectionType.cs deleted file mode 100644 index 1ef4846..0000000 --- a/ProjectPlane/ProjectPlane/Drawnings/DirectionType.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace ProjectCruiser.Drawnings; -/// -/// -/// -public enum DirectionType -{ - /// - /// - /// - Unknow = -1, - /// - /// - /// - Up = 1, - /// - /// - /// - Down = 2, - /// - /// - /// - Left = 3, - /// - /// - /// - Right = 4 -} \ No newline at end of file diff --git a/ProjectPlane/ProjectPlane/Drawnings/DrawningCruiser.cs b/ProjectPlane/ProjectPlane/Drawnings/DrawningCruiser.cs deleted file mode 100644 index ece51ce..0000000 --- a/ProjectPlane/ProjectPlane/Drawnings/DrawningCruiser.cs +++ /dev/null @@ -1,230 +0,0 @@ -using ProjectCruiser.Entities; - -namespace ProjectCruiser.Drawnings; -/// -/// Класс, отвечающий за прорисовку и перемещение объекта-сущности -/// -public class DrawningCruiser -{ - /// - /// Класс-сущность - /// - public EntityCruiser? EntityCruiser { get; protected set; } - /// - /// Ширина окна - /// - private int? _pictureWidth; - /// - /// Высота окна - /// - private int? _pictureHeight; - /// - /// Левая координата прорисовки крейсера - /// - protected int? _startPosX; - /// - /// Верхняя кооридната прорисовки крейсера - /// - protected int? _startPosY; - - /// - /// Ширина прорисовки крейсера - /// - private readonly int _drawningCruiserWidth = 150; - /// - /// Высота прорисовки крейсера - /// - private readonly int _drawningCruiserHeight = 50; - private readonly int _drawningEnginesWidth = 3; - - /// - /// Координата X объекта - /// - public int? GetPosX => _startPosX; - /// - /// Координата Y объекта - /// - public int? GetPosY => _startPosY; - /// - /// Ширина объекта - /// - public int GetWidth => _drawningCruiserWidth; - /// - /// Высота объекта - /// - public int GetHeight => _drawningCruiserHeight; - - /// - /// Пустой онструктор - /// - public DrawningCruiser() - { - _pictureWidth = null; - _pictureHeight = null; - _startPosX = null; - _startPosY = null; - } - - /// - /// Конструктор - /// - /// Скорость - /// Вес - /// Основной цвет - public DrawningCruiser(int speed, double weight, Color bodyColor) : this() - { - EntityCruiser = new EntityCruiser(speed, weight, bodyColor); - } - /// - /// Конструктор для наследников - /// - /// Ширина прорисовки автомобиля - /// Высота прорисовки автомобиля - protected DrawningCruiser(int drawningCarWidth, int drawningCarHeight) : this() - { - _drawningCruiserWidth = drawningCarWidth; - _pictureHeight = drawningCarHeight; - } - - /// - /// конструктор - /// - /// - public DrawningCruiser(EntityCruiser entityCruiser) - { - EntityCruiser = entityCruiser; - } - - /// - /// Установка границ поля - /// - /// Ширина поля - /// Высота поля - /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах - public bool SetPictureSize(int width, int height) - { - // TODO проверка, что объект "влезает" в размеры поля - // если влезает, сохраняем границы и корректируем позицию объекта,если она была уже установлена - - if (_drawningCruiserHeight > height || _drawningCruiserWidth > width) - { - return false; - - } - - _pictureWidth = width; - _pictureHeight = height; - - if (_startPosX.HasValue && _startPosY.HasValue) - { - SetPosition(_startPosX.Value, _startPosY.Value); - } - - return true; - } - /// - /// Установка позиции - /// - /// Координата X - /// Координата Y - public void SetPosition(int x, int y) - { - if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) - { - return; - } - - if (x < 0 || x + _drawningCruiserWidth > _pictureWidth || y < 0 || y + _drawningCruiserHeight > _pictureHeight) - { - _startPosX = _pictureWidth - _drawningCruiserWidth; - _startPosY = _pictureHeight - _drawningCruiserHeight; - } - else - { - _startPosX = x; - _startPosY = y; - } - - } - /// - /// Изменение направления перемещения - /// - /// Направление - /// true - перемещене выполнено, false - перемещение невозможно - public bool MoveTransport(DirectionType direction) - { - if (EntityCruiser == null || !_startPosX.HasValue || !_startPosY.HasValue) - { - return false; - } - switch (direction) - { - //влево - case DirectionType.Left: - if (_startPosX.Value - EntityCruiser.Step - _drawningEnginesWidth > 0) - { - _startPosX -= (int)EntityCruiser.Step; - } - return true; - //вверх - case DirectionType.Up: - if (_startPosY.Value - EntityCruiser.Step > 0) - { - _startPosY -= (int)EntityCruiser.Step; - } - return true; - // вправо - case DirectionType.Right: - //TODO прописать логику сдвига в право - if (_startPosX.Value + EntityCruiser.Step + _drawningCruiserWidth < _pictureWidth) - { - _startPosX += (int)EntityCruiser.Step; - } - return true; - //вниз - case DirectionType.Down: - if (_startPosY.Value + EntityCruiser.Step + _drawningCruiserHeight < _pictureHeight) - { - _startPosY += (int)EntityCruiser.Step; - } - return true; - default: - return false; - } - } - - /// - /// Прорисовка объекта - /// - /// - public virtual void DrawTransport(Graphics g) - { - if (EntityCruiser == null || !_startPosX.HasValue || - !_startPosY.HasValue) - { - return; - } - Pen pen = new(EntityCruiser.BodyColor, 2); - Brush additionalBrush = new SolidBrush(Color.Black); - - //границы круисера - g.DrawLine(pen, _startPosX.Value, _startPosY.Value, _startPosX.Value + 105, _startPosY.Value); - g.DrawLine(pen, _startPosX.Value + 105, _startPosY.Value, _startPosX.Value + 147, _startPosY.Value + 24); - - g.DrawLine(pen, _startPosX.Value, _startPosY.Value + 49, _startPosX.Value + 105, _startPosY.Value + 49); - g.DrawLine(pen, _startPosX.Value + 105, _startPosY.Value + 49, _startPosX.Value + 147, _startPosY.Value + 24); - - g.DrawLine(pen, _startPosX.Value, _startPosY.Value, _startPosX.Value, _startPosY.Value + 49); - - //внутренности круисера - g.DrawEllipse(pen, _startPosX.Value + 94, _startPosY.Value + 14, 19, 19); - - g.DrawRectangle(pen, _startPosX.Value + 63, _startPosY.Value + 11, 21, 28); - g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value + 17, 28, 14); - - //зад - g.FillRectangle(additionalBrush, _startPosX.Value - 3, _startPosY.Value + 7, 3, 14); - g.FillRectangle(additionalBrush, _startPosX.Value - 3, _startPosY.Value + 26, 3, 14); - - } -} \ No newline at end of file diff --git a/ProjectPlane/ProjectPlane/Drawnings/DrawningMilitaryCruiser.cs b/ProjectPlane/ProjectPlane/Drawnings/DrawningMilitaryCruiser.cs deleted file mode 100644 index efd9cce..0000000 --- a/ProjectPlane/ProjectPlane/Drawnings/DrawningMilitaryCruiser.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.Drawing.Drawing2D; -using ProjectCruiser.Entities; - -namespace ProjectCruiser.Drawnings -{ - public class DrawningMilitaryCruiser : DrawningCruiser - { - /// - /// Конструктор - /// - /// Скорость - /// Вес - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия вертолетной площадки - /// Признак наличия шлюпок - /// Признак наличия пушки - - public DrawningMilitaryCruiser(int speed, double weight, Color bodyColor, Color additionalColor, bool helicopterArea, bool boat, bool weapon) - : base(150, 50) - { - EntityCruiser = new EntityMilitaryCruiser(speed, weight, bodyColor, additionalColor, helicopterArea, boat, weapon); - } - - public DrawningMilitaryCruiser(EntityCruiser entityCruiser) - { - if (entityCruiser != null) - { - EntityCruiser = entityCruiser; - } - } - - public override void DrawTransport(Graphics g) - { - if (EntityCruiser == null || EntityCruiser is not EntityMilitaryCruiser entityMilitaryCruiser || !_startPosX.HasValue || - !_startPosY.HasValue) - { - return; - } - - Pen pen = new(entityMilitaryCruiser.BodyColor, 2); - Brush additionalBrush = new SolidBrush(Color.Black); - Brush weaponBrush = new SolidBrush(Color.Black); - Brush weaponBrush2 = new SolidBrush(entityMilitaryCruiser.AdditionalColor); - Brush helicopterAreaBrush = new HatchBrush(HatchStyle.ZigZag, entityMilitaryCruiser.AdditionalColor, Color.FromArgb(163, 163, 163)); - Brush boatBrush = new SolidBrush(entityMilitaryCruiser.AdditionalColor); - - base.DrawTransport(g); - - if (entityMilitaryCruiser.HelicopterArea) - { - g.FillEllipse(helicopterAreaBrush, _startPosX.Value + 5, _startPosY.Value + 9, 25, 30); - g.DrawEllipse(pen, _startPosX.Value + 5, _startPosY.Value + 9, 25, 30); - } - - if (entityMilitaryCruiser.Boat) - { - g.DrawEllipse(pen, _startPosX.Value + 34, _startPosY.Value + 2, 30, 7); - g.FillEllipse(boatBrush, _startPosX.Value + 34, _startPosY.Value + 2, 30, 7); - - g.DrawEllipse(pen, _startPosX.Value + 34, _startPosY.Value + 39, 30, 7); - g.FillEllipse(boatBrush, _startPosX.Value + 34, _startPosY.Value + 39, 30, 7); - } - - if (entityMilitaryCruiser.Weapon) - { - g.DrawEllipse(pen, _startPosX.Value + 97, _startPosY.Value + 36, 10, 10); - g.FillEllipse(weaponBrush2, _startPosX.Value + 97, _startPosY.Value + 36, 10, 10); - - g.FillRectangle(weaponBrush, _startPosX.Value + 107, _startPosY.Value + 40, 15, 5); - } - - } - } -} diff --git a/ProjectPlane/ProjectPlane/Drawnings/ExtentionDrawningCruiser.cs b/ProjectPlane/ProjectPlane/Drawnings/ExtentionDrawningCruiser.cs deleted file mode 100644 index 4be9fa2..0000000 --- a/ProjectPlane/ProjectPlane/Drawnings/ExtentionDrawningCruiser.cs +++ /dev/null @@ -1,50 +0,0 @@ -using ProjectCruiser.Entities; - -namespace ProjectCruiser.Drawnings -{ - public static class ExtentionDrawningCruiser - { - /// - /// Разделитель для записи информации по объекту в файл - /// - private static readonly string _separatorForObject = ":"; - - /// - /// Создание объекта из строки - /// - /// Строка с данными для создания объекта - /// Объект - public static DrawningCruiser? CreateDrawningCruiser(this string info) - { - string[] strs = info.Split(_separatorForObject); - EntityCruiser? cruiser = EntityMilitaryCruiser.CreateEntityMilitaryCruiser(strs); - if (cruiser != null) - { - return new DrawningMilitaryCruiser(cruiser); - } - - cruiser = EntityCruiser.CreateEntityCruiser(strs); - if (cruiser != null) - { - return new DrawningCruiser(cruiser); - } - return null; - } - - /// - /// Получение данных для сохранения в файл - /// - /// Сохраняемый объект - /// Строка с данными по объекту - public static string GetDataForSave(this DrawningCruiser drawningCrusier) - { - string[]? array = drawningCrusier?.EntityCruiser?.GetStringRepresentation(); - if (array == null) - { - return string.Empty; - } - return string.Join(_separatorForObject, array); - } - - } -}