Лабораторная работа №3
This commit is contained in:
parent
fc34842ef1
commit
8b33c79a8b
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace ProjectCleaningCar.CollectionGenericObjects;
|
namespace ProjectCleaningCar.CollectionGenericObjects;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Абстракция компании, хранящая коллекцию автомобилей
|
/// Абстракция компании, хранящая коллекцию грузовиков
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class AbstractCompany
|
public abstract class AbstractCompany
|
||||||
{
|
{
|
||||||
@ -25,18 +25,18 @@ public abstract class AbstractCompany
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Коллекция машин
|
/// Коллекция машин
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected ICollectionGenericObjects<DrawningCar>? _collection = null;
|
protected ICollectionGenericObjects<DrawningTruck>? _collection = null;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вычисление максимального количества элементов, который можно разместить в окне
|
/// Вычисление максимального количества элементов, который можно разместить в окне
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private int GetMaxCount => _pictureWidth * _pictureHeight / (_placeSizeWidth * _placeSizeHeight);
|
private int GetMaxCount => _pictureWidth / _placeSizeWidth * (_pictureHeight / _placeSizeHeight / 2);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор
|
/// Конструктор
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="picWidth">Ширина окна</param>
|
/// <param name="picWidth">Ширина окна</param>
|
||||||
/// <param name="picHeight">Высота окна</param>
|
/// <param name="picHeight">Высота окна</param>
|
||||||
/// <param name="collection">Коллекция машин</param>
|
/// <param name="collection">Коллекция машин</param>
|
||||||
public AbstractCompany(int picWidth, int picHeight, ICollectionGenericObjects<DrawningCar> collection)
|
public AbstractCompany(int picWidth, int picHeight, ICollectionGenericObjects<DrawningTruck> collection)
|
||||||
{
|
{
|
||||||
_pictureWidth = picWidth;
|
_pictureWidth = picWidth;
|
||||||
_pictureHeight = picHeight;
|
_pictureHeight = picHeight;
|
||||||
@ -49,9 +49,9 @@ public abstract class AbstractCompany
|
|||||||
/// <param name="company">Компания</param>
|
/// <param name="company">Компания</param>
|
||||||
/// <param name="car">Добавляемый объект</param>
|
/// <param name="car">Добавляемый объект</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool operator +(AbstractCompany company, DrawningCar car)
|
public static int operator +(AbstractCompany company, DrawningTruck car)
|
||||||
{
|
{
|
||||||
return company._collection?.Insert(car) ?? false;
|
return company._collection.Insert(car);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Перегрузка оператора удаления для класса
|
/// Перегрузка оператора удаления для класса
|
||||||
@ -59,15 +59,15 @@ public abstract class AbstractCompany
|
|||||||
/// <param name="company">Компания</param>
|
/// <param name="company">Компания</param>
|
||||||
/// <param name="position">Номер удаляемого объекта</param>
|
/// <param name="position">Номер удаляемого объекта</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool operator -(AbstractCompany company, int position)
|
public static DrawningTruck operator -(AbstractCompany company, int position)
|
||||||
{
|
{
|
||||||
return company._collection?.Remove(position) ?? false;
|
return company._collection.Remove(position);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение случайного объекта из коллекции
|
/// Получение случайного объекта из коллекции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public DrawningCar? GetRandomObject()
|
public DrawningTruck? GetRandomObject()
|
||||||
{
|
{
|
||||||
Random random = new();
|
Random random = new();
|
||||||
return _collection?.Get(random.Next(GetMaxCount));
|
return _collection?.Get(random.Next(GetMaxCount));
|
||||||
@ -84,7 +84,7 @@ public abstract class AbstractCompany
|
|||||||
SetObjectsPosition();
|
SetObjectsPosition();
|
||||||
for (int i = 0; i < (_collection?.Count ?? 0); ++i)
|
for (int i = 0; i < (_collection?.Count ?? 0); ++i)
|
||||||
{
|
{
|
||||||
DrawningCar? obj = _collection?.Get(i);
|
DrawningTruck? obj = _collection?.Get(i);
|
||||||
obj?.DrawTransport(graphics);
|
obj?.DrawTransport(graphics);
|
||||||
}
|
}
|
||||||
return bitmap;
|
return bitmap;
|
||||||
|
@ -4,9 +4,9 @@ using System.Drawing;
|
|||||||
|
|
||||||
namespace ProjectCleaningCar.CollectionGenericObjects;
|
namespace ProjectCleaningCar.CollectionGenericObjects;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Реализация абстрактной компании каршеринг
|
/// Реализация абстрактной компании автопарк
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CarSharingService : AbstractCompany
|
public class AutoParkService : AbstractCompany
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор
|
/// Конструктор
|
||||||
@ -14,7 +14,7 @@ public class CarSharingService : AbstractCompany
|
|||||||
/// <param name="picWidth"></param>
|
/// <param name="picWidth"></param>
|
||||||
/// <param name="picHeight"></param>
|
/// <param name="picHeight"></param>
|
||||||
/// <param name="collection"></param>
|
/// <param name="collection"></param>
|
||||||
public CarSharingService(int picWidth, int picHeight, ICollectionGenericObjects<DrawningCar> collection) : base(picWidth, picHeight, collection)
|
public AutoParkService(int picWidth, int picHeight, ICollectionGenericObjects<DrawningTruck> collection) : base(picWidth, picHeight, collection)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
@ -19,20 +19,20 @@ public interface ICollectionGenericObjects<T>
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="obj">Добавляемый объект</param>
|
/// <param name="obj">Добавляемый объект</param>
|
||||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||||
bool Insert(T obj);
|
int Insert(T obj);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление объекта в коллекцию на конкретную позицию
|
/// Добавление объекта в коллекцию на конкретную позицию
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="obj">Добавляемый объект</param>
|
/// <param name="obj">Добавляемый объект</param>
|
||||||
/// <param name="position">Позиция</param>
|
/// <param name="position">Позиция</param>
|
||||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||||
bool Insert(T obj, int position);
|
int Insert(T obj, int position);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаление объекта из коллекции с конкретной позиции
|
/// Удаление объекта из коллекции с конкретной позиции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="position">Позиция</param>
|
/// <param name="position">Позиция</param>
|
||||||
/// <returns>true - удаление прошло удачно, false - удаление не удалось</returns>
|
/// <returns>true - удаление прошло удачно, false - удаление не удалось</returns>
|
||||||
bool Remove(int position);
|
T? Remove(int position);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение объекта по позиции
|
/// Получение объекта по позиции
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -35,60 +35,61 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
|
|||||||
if (position < 0 || position >= Count) return null;
|
if (position < 0 || position >= Count) return null;
|
||||||
return _collection[position];
|
return _collection[position];
|
||||||
}
|
}
|
||||||
public bool Insert(T obj)
|
public int Insert(T obj)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < Count; i++)
|
for (int i = 0; i < Count; i++)
|
||||||
{
|
{
|
||||||
if (_collection[i] == null)
|
if (_collection[i] == null)
|
||||||
{
|
{
|
||||||
_collection[i] = obj;
|
_collection[i] = obj;
|
||||||
return true;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO вставка в свободное место набора
|
// TODO вставка в свободное место набора
|
||||||
return false;
|
return -1;
|
||||||
}
|
}
|
||||||
public bool Insert(T obj, int position)
|
public int Insert(T obj, int position)
|
||||||
{
|
{
|
||||||
// TODO проверка позиции
|
// TODO проверка позиции
|
||||||
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
|
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
|
||||||
// ищется свободное место после этой позиции и идет вставка туда
|
// ищется свободное место после этой позиции и идет вставка туда
|
||||||
// если нет после, ищем до
|
// если нет после, ищем до
|
||||||
// TODO вставка
|
// TODO вставка
|
||||||
if (position >= Count || position < 0) return false;
|
if (position >= Count || position < 0) return -1;
|
||||||
if (_collection[position] == null)
|
if (_collection[position] == null)
|
||||||
{
|
{
|
||||||
_collection[position] = obj;
|
_collection[position] = obj;
|
||||||
return true;
|
return position;
|
||||||
}
|
}
|
||||||
int temp = position + 1;
|
int temp = position + 1;
|
||||||
while(temp < Count)
|
while(temp < Count)
|
||||||
{
|
{
|
||||||
if (_collection[temp] == null)
|
if (_collection[temp] == null)
|
||||||
{
|
{
|
||||||
_collection[temp] = obj;
|
_collection[temp] = obj;
|
||||||
return true;
|
return temp;
|
||||||
}
|
}
|
||||||
++temp;
|
++temp;
|
||||||
}
|
}
|
||||||
temp = position - 1;
|
temp = position - 1;
|
||||||
while(temp > 0)
|
while(temp >= 0)
|
||||||
{
|
{
|
||||||
if (_collection[temp] == null)
|
if (_collection[temp] == null)
|
||||||
{
|
{
|
||||||
_collection[temp] = obj;
|
_collection[temp] = obj;
|
||||||
return true;
|
return temp;
|
||||||
}
|
}
|
||||||
--temp;
|
--temp;
|
||||||
}
|
}
|
||||||
return false;
|
return -1;
|
||||||
}
|
}
|
||||||
public bool Remove(int position)
|
public T? Remove(int position)
|
||||||
{
|
{
|
||||||
// TODO проверка позиции
|
// TODO проверка позиции
|
||||||
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
||||||
if (position >= Count || position < 0) return false;
|
if (position >= Count || position < 0) return null;
|
||||||
|
T? myObject = _collection[position];
|
||||||
_collection[position] = null;
|
_collection[position] = null;
|
||||||
return true;
|
return myObject;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ namespace ProjectCleaningCar.Drawning;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
/// Класс, отвечающий за прорисовку и перемещение объекта-сущности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DrawningCleaningCar : DrawningCar
|
public class DrawningCleaningCar : DrawningTruck
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор
|
/// Конструктор
|
||||||
@ -18,7 +18,7 @@ public class DrawningCleaningCar : DrawningCar
|
|||||||
/// <param name="flashlight">Проблескового маячок</param>
|
/// <param name="flashlight">Проблескового маячок</param>
|
||||||
public DrawningCleaningCar(int speed, double weight, Color bodyColor, Color additionalColor, bool tank, bool sweepingBrush, bool flashlight) : base(132, 65)
|
public DrawningCleaningCar(int speed, double weight, Color bodyColor, Color additionalColor, bool tank, bool sweepingBrush, bool flashlight) : base(132, 65)
|
||||||
{
|
{
|
||||||
EntityCar = new EntityCleaningCar(speed, weight, bodyColor, additionalColor, tank, sweepingBrush, flashlight);
|
EntityTruck = new EntityCleaningCar(speed, weight, bodyColor, additionalColor, tank, sweepingBrush, flashlight);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Отрисовка объекта
|
/// Отрисовка объекта
|
||||||
@ -26,13 +26,13 @@ public class DrawningCleaningCar : DrawningCar
|
|||||||
/// <param name="g"></param>
|
/// <param name="g"></param>
|
||||||
public override void DrawTransport(Graphics g)
|
public override void DrawTransport(Graphics g)
|
||||||
{
|
{
|
||||||
if (EntityCar == null || EntityCar is not EntityCleaningCar cleaningCar || !_startPosX.HasValue || !_startPosY.HasValue)
|
if (EntityTruck == null || EntityTruck is not EntityCleaningCar cleaningCar || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
base.DrawTransport(g);
|
base.DrawTransport(g);
|
||||||
Pen pen = new(Color.Black);
|
Pen pen = new(Color.Black);
|
||||||
Brush bodyBrush = new SolidBrush(EntityCar.BodyColor);
|
Brush bodyBrush = new SolidBrush(EntityTruck.BodyColor);
|
||||||
Brush additionalBrush = new SolidBrush(cleaningCar.AdditionalColor);
|
Brush additionalBrush = new SolidBrush(cleaningCar.AdditionalColor);
|
||||||
//бак
|
//бак
|
||||||
if (cleaningCar.Tank)
|
if (cleaningCar.Tank)
|
||||||
|
@ -4,12 +4,12 @@ namespace ProjectCleaningCar.Drawning;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс, отвечающий за прорисовку базового объекта-сущности
|
/// Класс, отвечающий за прорисовку базового объекта-сущности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DrawningCar
|
public class DrawningTruck
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс-сущность
|
/// Класс-сущность
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public EntityCar? EntityCar { get; protected set; }
|
public EntityTruck? EntityTruck { get; protected set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина окна
|
/// Ширина окна
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -29,11 +29,11 @@ public class DrawningCar
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина прорисовки машины
|
/// Ширина прорисовки машины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _drawningCarWidth = 130;
|
private readonly int _drawningTruckWidth = 130;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота прорисовки машины
|
/// Высота прорисовки машины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _drawningCarHeight = 65;
|
private readonly int _drawningTruckHeight = 65;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Координата X объекта
|
/// Координата X объекта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -45,15 +45,15 @@ public class DrawningCar
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ширина объекта
|
/// Ширина объекта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int GetWidth => _drawningCarWidth;
|
public int GetWidth => _drawningTruckWidth;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Высота объекта
|
/// Высота объекта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int GetHeight => _drawningCarHeight;
|
public int GetHeight => _drawningTruckHeight;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Пустой конструктор
|
/// Пустой конструктор
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private DrawningCar()
|
private DrawningTruck()
|
||||||
{
|
{
|
||||||
_pictureWidth = null;
|
_pictureWidth = null;
|
||||||
_pictureHeight = null;
|
_pictureHeight = null;
|
||||||
@ -66,19 +66,19 @@ public class DrawningCar
|
|||||||
/// <param name="speed">Скорость</param>
|
/// <param name="speed">Скорость</param>
|
||||||
/// <param name="weight">Вес</param>
|
/// <param name="weight">Вес</param>
|
||||||
/// <param name="bodyColor">Основной цвет</param>
|
/// <param name="bodyColor">Основной цвет</param>
|
||||||
public DrawningCar(int speed, double weight, Color bodyColor) : this()
|
public DrawningTruck(int speed, double weight, Color bodyColor) : this()
|
||||||
{
|
{
|
||||||
EntityCar = new EntityCar(speed, weight, bodyColor);
|
EntityTruck = new EntityTruck(speed, weight, bodyColor);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор для наследников
|
/// Конструктор для наследников
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="drawningCarWidth">Ширина прорисовки машины</param>
|
/// <param name="drawningTruckWidth">Ширина прорисовки машины</param>
|
||||||
/// <param name="drawningCarHeight">Высота прорисовки машины</param>
|
/// <param name="drawningTruckHeight">Высота прорисовки машины</param>
|
||||||
protected DrawningCar(int drawningCarWidth, int drawningCarHeight) : this()
|
protected DrawningTruck(int drawningTruckWidth, int drawningTruckHeight) : this()
|
||||||
{
|
{
|
||||||
_drawningCarWidth = drawningCarWidth;
|
_drawningTruckWidth = drawningTruckWidth;
|
||||||
_drawningCarHeight = drawningCarHeight;
|
_drawningTruckHeight = drawningTruckHeight;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Установка границ поля
|
/// Установка границ поля
|
||||||
@ -90,22 +90,22 @@ public class DrawningCar
|
|||||||
public bool SetPictureSize(int width, int height)
|
public bool SetPictureSize(int width, int height)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (width < _drawningCarWidth || height < _drawningCarHeight) { return false; };
|
if (width < _drawningTruckWidth || height < _drawningTruckHeight) { return false; };
|
||||||
_pictureWidth = width;
|
_pictureWidth = width;
|
||||||
_pictureHeight = height;
|
_pictureHeight = height;
|
||||||
if (_startPosX != null || _startPosY != null)
|
if (_startPosX != null || _startPosY != null)
|
||||||
{
|
{
|
||||||
if (_startPosX + _drawningCarWidth > _pictureWidth)
|
if (_startPosX + _drawningTruckWidth > _pictureWidth)
|
||||||
{
|
{
|
||||||
_startPosX = -_drawningCarWidth + _pictureWidth;
|
_startPosX = -_drawningTruckWidth + _pictureWidth;
|
||||||
}
|
}
|
||||||
else if (_startPosX < 0)
|
else if (_startPosX < 0)
|
||||||
{
|
{
|
||||||
_startPosX = 0;
|
_startPosX = 0;
|
||||||
}
|
}
|
||||||
if (_startPosY + _drawningCarHeight > _pictureHeight)
|
if (_startPosY + _drawningTruckHeight > _pictureHeight)
|
||||||
{
|
{
|
||||||
_startPosY = -_drawningCarHeight + _pictureHeight;
|
_startPosY = -_drawningTruckHeight + _pictureHeight;
|
||||||
}
|
}
|
||||||
else if (_startPosY < 0)
|
else if (_startPosY < 0)
|
||||||
{
|
{
|
||||||
@ -127,9 +127,9 @@ public class DrawningCar
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x + _drawningCarWidth > _pictureWidth)
|
if (x + _drawningTruckWidth > _pictureWidth)
|
||||||
{
|
{
|
||||||
_startPosX = _pictureWidth - _drawningCarWidth;
|
_startPosX = _pictureWidth - _drawningTruckWidth;
|
||||||
}
|
}
|
||||||
else if (x < 0)
|
else if (x < 0)
|
||||||
{
|
{
|
||||||
@ -140,9 +140,9 @@ public class DrawningCar
|
|||||||
_startPosX = x;
|
_startPosX = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (y + _drawningCarHeight > _pictureHeight)
|
if (y + _drawningTruckHeight > _pictureHeight)
|
||||||
{
|
{
|
||||||
_startPosY = _pictureHeight - _drawningCarHeight;
|
_startPosY = _pictureHeight - _drawningTruckHeight;
|
||||||
}
|
}
|
||||||
else if (y < 0)
|
else if (y < 0)
|
||||||
{
|
{
|
||||||
@ -161,7 +161,7 @@ public class DrawningCar
|
|||||||
/// <returns>true - перемещение выполнено, false - перемещение невозможно</returns>
|
/// <returns>true - перемещение выполнено, false - перемещение невозможно</returns>
|
||||||
public bool MoveTransport(DirectionType direction)
|
public bool MoveTransport(DirectionType direction)
|
||||||
{
|
{
|
||||||
if (EntityCar == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
if (EntityTruck == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -169,30 +169,30 @@ public class DrawningCar
|
|||||||
{
|
{
|
||||||
//влево
|
//влево
|
||||||
case DirectionType.Left:
|
case DirectionType.Left:
|
||||||
if (_startPosX.Value - EntityCar.Step > 0)
|
if (_startPosX.Value - EntityTruck.Step > 0)
|
||||||
{
|
{
|
||||||
_startPosX -= (int)EntityCar.Step;
|
_startPosX -= (int)EntityTruck.Step;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
//вправо
|
//вправо
|
||||||
case DirectionType.Right:
|
case DirectionType.Right:
|
||||||
if (_startPosX.Value + _drawningCarWidth + EntityCar.Step < _pictureWidth)
|
if (_startPosX.Value + _drawningTruckWidth + EntityTruck.Step < _pictureWidth)
|
||||||
{
|
{
|
||||||
_startPosX += (int)EntityCar.Step;
|
_startPosX += (int)EntityTruck.Step;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
//вверх
|
//вверх
|
||||||
case DirectionType.Up:
|
case DirectionType.Up:
|
||||||
if (_startPosY.Value - EntityCar.Step > 0)
|
if (_startPosY.Value - EntityTruck.Step > 0)
|
||||||
{
|
{
|
||||||
_startPosY -= (int)EntityCar.Step;
|
_startPosY -= (int)EntityTruck.Step;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
//вниз
|
//вниз
|
||||||
case DirectionType.Down:
|
case DirectionType.Down:
|
||||||
if (_startPosY.Value + _drawningCarHeight + EntityCar.Step < _pictureHeight)
|
if (_startPosY.Value + _drawningTruckHeight + EntityTruck.Step < _pictureHeight)
|
||||||
{
|
{
|
||||||
_startPosY += (int)EntityCar.Step;
|
_startPosY += (int)EntityTruck.Step;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
@ -206,12 +206,12 @@ public class DrawningCar
|
|||||||
/// <param name="g"></param>
|
/// <param name="g"></param>
|
||||||
public virtual void DrawTransport(Graphics g)
|
public virtual void DrawTransport(Graphics g)
|
||||||
{
|
{
|
||||||
if (EntityCar == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
if (EntityTruck == null || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Pen pen = new(Color.Black);
|
Pen pen = new(Color.Black);
|
||||||
Brush bodyBrush = new SolidBrush(EntityCar.BodyColor);
|
Brush bodyBrush = new SolidBrush(EntityTruck.BodyColor);
|
||||||
//основание
|
//основание
|
||||||
g.FillRectangle(bodyBrush, _startPosX.Value, _startPosY.Value + 35, 120, 10);
|
g.FillRectangle(bodyBrush, _startPosX.Value, _startPosY.Value + 35, 120, 10);
|
||||||
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 35, 120, 10);
|
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value + 35, 120, 10);
|
@ -2,7 +2,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс-сущность "Подметательно-уборочная машина"
|
/// Класс-сущность "Подметательно-уборочная машина"
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class EntityCleaningCar : EntityCar
|
public class EntityCleaningCar : EntityTruck
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дополнительный цвет (для опциональных элементов)
|
/// Дополнительный цвет (для опциональных элементов)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
namespace ProjectCleaningCar.Entities;
|
namespace ProjectCleaningCar.Entities;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс-сущность "Машина"
|
/// Класс-сущность "Грузовик"
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class EntityCar
|
public class EntityTruck
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Скорость
|
/// Скорость
|
||||||
@ -17,17 +17,17 @@ public class EntityCar
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public Color BodyColor { get; private set; }
|
public Color BodyColor { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Шаг перемещения подметательно-уборочной машины
|
/// Шаг перемещения грузовика
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double Step => Speed * 200 / Weight;
|
public double Step => Speed * 200 / Weight;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Инициализация полей объекта-класса подметально-уборочной машины
|
/// Инициализация полей объекта-класса грузовик
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="speed">Скорость</param>
|
/// <param name="speed">Скорость</param>
|
||||||
/// <param name="weight">Вес автомобиля</param>
|
/// <param name="weight">Вес автомобиля</param>
|
||||||
/// <param name="bodyColor">Основной цвет</param>
|
/// <param name="bodyColor">Основной цвет</param>
|
||||||
public EntityCar(int speed, double weight, Color bodyColor)
|
public EntityTruck(int speed, double weight, Color bodyColor)
|
||||||
{
|
{
|
||||||
Speed = speed;
|
Speed = speed;
|
||||||
Weight = weight;
|
Weight = weight;
|
@ -10,7 +10,7 @@ public partial class FormCleaningCar : Form
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поле-объект для прорисовки объекта
|
/// Поле-объект для прорисовки объекта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private DrawningCar? _drawningCar;
|
private DrawningTruck? _drawningTruck;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Стратегия перемещения
|
/// Стратегия перемещения
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -18,12 +18,12 @@ public partial class FormCleaningCar : Form
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение объекта
|
/// Получение объекта
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DrawningCar SetCar
|
public DrawningTruck SetCar
|
||||||
{
|
{
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_drawningCar = value;
|
_drawningTruck = value;
|
||||||
_drawningCar.SetPictureSize(pictureBoxCleaningCar.Width, pictureBoxCleaningCar.Height);
|
_drawningTruck.SetPictureSize(pictureBoxCleaningCar.Width, pictureBoxCleaningCar.Height);
|
||||||
comboBoxStrategy.Enabled = true;
|
comboBoxStrategy.Enabled = true;
|
||||||
_strategy = null;
|
_strategy = null;
|
||||||
Draw();
|
Draw();
|
||||||
@ -42,14 +42,14 @@ public partial class FormCleaningCar : Form
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void Draw()
|
private void Draw()
|
||||||
{
|
{
|
||||||
if (_drawningCar == null)
|
if (_drawningTruck == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Bitmap bmp = new(pictureBoxCleaningCar.Width,
|
Bitmap bmp = new(pictureBoxCleaningCar.Width,
|
||||||
pictureBoxCleaningCar.Height);
|
pictureBoxCleaningCar.Height);
|
||||||
Graphics gr = Graphics.FromImage(bmp);
|
Graphics gr = Graphics.FromImage(bmp);
|
||||||
_drawningCar.DrawTransport(gr);
|
_drawningTruck.DrawTransport(gr);
|
||||||
pictureBoxCleaningCar.Image = bmp;
|
pictureBoxCleaningCar.Image = bmp;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -59,7 +59,7 @@ public partial class FormCleaningCar : Form
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ButtonMove_Click(object sender, EventArgs e)
|
private void ButtonMove_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_drawningCar == null)
|
if (_drawningTruck == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -68,16 +68,16 @@ public partial class FormCleaningCar : Form
|
|||||||
switch (name)
|
switch (name)
|
||||||
{
|
{
|
||||||
case "buttonUp":
|
case "buttonUp":
|
||||||
result = _drawningCar.MoveTransport(DirectionType.Up);
|
result = _drawningTruck.MoveTransport(DirectionType.Up);
|
||||||
break;
|
break;
|
||||||
case "buttonDown":
|
case "buttonDown":
|
||||||
result = _drawningCar.MoveTransport(DirectionType.Down);
|
result = _drawningTruck.MoveTransport(DirectionType.Down);
|
||||||
break;
|
break;
|
||||||
case "buttonLeft":
|
case "buttonLeft":
|
||||||
result = _drawningCar.MoveTransport(DirectionType.Left);
|
result = _drawningTruck.MoveTransport(DirectionType.Left);
|
||||||
break;
|
break;
|
||||||
case "buttonRight":
|
case "buttonRight":
|
||||||
result = _drawningCar.MoveTransport(DirectionType.Right);
|
result = _drawningTruck.MoveTransport(DirectionType.Right);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (result)
|
if (result)
|
||||||
@ -92,7 +92,7 @@ public partial class FormCleaningCar : Form
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ButtonStrategyStep_Click(object sender, EventArgs e)
|
private void ButtonStrategyStep_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_drawningCar == null)
|
if (_drawningTruck == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ public partial class FormCleaningCar : Form
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_strategy.SetData(new MoveableCar(_drawningCar),
|
_strategy.SetData(new MoveableCar(_drawningTruck),
|
||||||
pictureBoxCleaningCar.Width, pictureBoxCleaningCar.Height);
|
pictureBoxCleaningCar.Width, pictureBoxCleaningCar.Height);
|
||||||
}
|
}
|
||||||
if (_strategy == null)
|
if (_strategy == null)
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
buttonDelCar = new Button();
|
buttonDelCar = new Button();
|
||||||
maskedTextBoxPosition = new MaskedTextBox();
|
maskedTextBoxPosition = new MaskedTextBox();
|
||||||
buttonAddCleaningCar = new Button();
|
buttonAddCleaningCar = new Button();
|
||||||
buttonAddCar = new Button();
|
buttonAddTruck = new Button();
|
||||||
comboBoxSelectorCompany = new ComboBox();
|
comboBoxSelectorCompany = new ComboBox();
|
||||||
pictureBox = new PictureBox();
|
pictureBox = new PictureBox();
|
||||||
tools.SuspendLayout();
|
tools.SuspendLayout();
|
||||||
@ -48,7 +48,7 @@
|
|||||||
tools.Controls.Add(buttonDelCar);
|
tools.Controls.Add(buttonDelCar);
|
||||||
tools.Controls.Add(maskedTextBoxPosition);
|
tools.Controls.Add(maskedTextBoxPosition);
|
||||||
tools.Controls.Add(buttonAddCleaningCar);
|
tools.Controls.Add(buttonAddCleaningCar);
|
||||||
tools.Controls.Add(buttonAddCar);
|
tools.Controls.Add(buttonAddTruck);
|
||||||
tools.Controls.Add(comboBoxSelectorCompany);
|
tools.Controls.Add(comboBoxSelectorCompany);
|
||||||
tools.Dock = DockStyle.Right;
|
tools.Dock = DockStyle.Right;
|
||||||
tools.Location = new Point(752, 0);
|
tools.Location = new Point(752, 0);
|
||||||
@ -108,23 +108,23 @@
|
|||||||
buttonAddCleaningCar.UseVisualStyleBackColor = true;
|
buttonAddCleaningCar.UseVisualStyleBackColor = true;
|
||||||
buttonAddCleaningCar.Click += ButtonAddCleaningCar_Click;
|
buttonAddCleaningCar.Click += ButtonAddCleaningCar_Click;
|
||||||
//
|
//
|
||||||
// buttonAddCar
|
// buttonAddTruck
|
||||||
//
|
//
|
||||||
buttonAddCar.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
buttonAddTruck.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
buttonAddCar.Location = new Point(24, 70);
|
buttonAddTruck.Location = new Point(24, 70);
|
||||||
buttonAddCar.Name = "buttonAddCar";
|
buttonAddTruck.Name = "buttonAddTruck";
|
||||||
buttonAddCar.Size = new Size(163, 38);
|
buttonAddTruck.Size = new Size(163, 38);
|
||||||
buttonAddCar.TabIndex = 1;
|
buttonAddTruck.TabIndex = 1;
|
||||||
buttonAddCar.Text = "Добавление машины";
|
buttonAddTruck.Text = "Добавление грузовика";
|
||||||
buttonAddCar.UseVisualStyleBackColor = true;
|
buttonAddTruck.UseVisualStyleBackColor = true;
|
||||||
buttonAddCar.Click += ButtonAddCar_Click;
|
buttonAddTruck.Click += ButtonAddTruck_Click;
|
||||||
//
|
//
|
||||||
// comboBoxSelectorCompany
|
// comboBoxSelectorCompany
|
||||||
//
|
//
|
||||||
comboBoxSelectorCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
comboBoxSelectorCompany.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
comboBoxSelectorCompany.DropDownStyle = ComboBoxStyle.DropDownList;
|
comboBoxSelectorCompany.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
comboBoxSelectorCompany.FormattingEnabled = true;
|
comboBoxSelectorCompany.FormattingEnabled = true;
|
||||||
comboBoxSelectorCompany.Items.AddRange(new object[] { "Хранилище" });
|
comboBoxSelectorCompany.Items.AddRange(new object[] { "Автопарк" });
|
||||||
comboBoxSelectorCompany.Location = new Point(24, 22);
|
comboBoxSelectorCompany.Location = new Point(24, 22);
|
||||||
comboBoxSelectorCompany.Name = "comboBoxSelectorCompany";
|
comboBoxSelectorCompany.Name = "comboBoxSelectorCompany";
|
||||||
comboBoxSelectorCompany.Size = new Size(163, 23);
|
comboBoxSelectorCompany.Size = new Size(163, 23);
|
||||||
@ -158,7 +158,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private GroupBox tools;
|
private GroupBox tools;
|
||||||
private Button buttonAddCar;
|
private Button buttonAddTruck;
|
||||||
private ComboBox comboBoxSelectorCompany;
|
private ComboBox comboBoxSelectorCompany;
|
||||||
private MaskedTextBox maskedTextBoxPosition;
|
private MaskedTextBox maskedTextBoxPosition;
|
||||||
private Button buttonAddCleaningCar;
|
private Button buttonAddCleaningCar;
|
||||||
|
@ -27,18 +27,18 @@ public partial class FormCleaningCarCollection : Form
|
|||||||
{
|
{
|
||||||
switch (comboBoxSelectorCompany.Text)
|
switch (comboBoxSelectorCompany.Text)
|
||||||
{
|
{
|
||||||
case "Хранилище":
|
case "Автопарк":
|
||||||
_company = new CarSharingService(pictureBox.Width,
|
_company = new AutoParkService(pictureBox.Width,
|
||||||
pictureBox.Height, new MassiveGenericObjects<DrawningCar>());
|
pictureBox.Height, new MassiveGenericObjects<DrawningTruck>());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление спортивного автомобиля
|
/// Добавление грузовика
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ButtonAddCar_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningCar));
|
private void ButtonAddTruck_Click(object sender, EventArgs e) => CreateObject(nameof(DrawningTruck));
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление подметательно-уборочной машины
|
/// Добавление подметательно-уборочной машины
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -56,16 +56,16 @@ public partial class FormCleaningCarCollection : Form
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Random random = new();
|
Random random = new();
|
||||||
DrawningCar drawningCar;
|
DrawningTruck drawningTruck;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case nameof(DrawningCar):
|
case nameof(DrawningTruck):
|
||||||
drawningCar = new DrawningCar(random.Next(100, 300),
|
drawningTruck = new DrawningTruck(random.Next(100, 300),
|
||||||
random.Next(1000, 3000), GetColor(random));
|
random.Next(1000, 3000), GetColor(random));
|
||||||
break;
|
break;
|
||||||
case nameof(DrawningCleaningCar):
|
case nameof(DrawningCleaningCar):
|
||||||
// TODO вызов диалогового окна для выбора цвета
|
// TODO вызов диалогового окна для выбора цвета
|
||||||
drawningCar = new DrawningCleaningCar(random.Next(100, 300), random.Next(1000, 3000),
|
drawningTruck = new DrawningCleaningCar(random.Next(100, 300), random.Next(1000, 3000),
|
||||||
GetColor(random), GetColor(random),
|
GetColor(random), GetColor(random),
|
||||||
Convert.ToBoolean(random.Next(0, 2)),
|
Convert.ToBoolean(random.Next(0, 2)),
|
||||||
Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
|
Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
|
||||||
@ -73,7 +73,7 @@ public partial class FormCleaningCarCollection : Form
|
|||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_company + drawningCar)
|
if (_company + drawningTruck != -1)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Объект добавлен");
|
MessageBox.Show("Объект добавлен");
|
||||||
pictureBox.Image = _company.Show();
|
pictureBox.Image = _company.Show();
|
||||||
@ -115,7 +115,7 @@ public partial class FormCleaningCarCollection : Form
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
|
int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
|
||||||
if (_company - pos)
|
if (_company - pos != null)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Объект удален");
|
MessageBox.Show("Объект удален");
|
||||||
pictureBox.Image = _company.Show();
|
pictureBox.Image = _company.Show();
|
||||||
@ -137,20 +137,20 @@ public partial class FormCleaningCarCollection : Form
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DrawningCar? car = null;
|
DrawningTruck? truck = null;
|
||||||
int counter = 100;
|
int counter = 100;
|
||||||
while (car == null)
|
while (truck == null)
|
||||||
{
|
{
|
||||||
car = _company.GetRandomObject();
|
truck = _company.GetRandomObject();
|
||||||
counter--;
|
counter--;
|
||||||
if (counter <= 0) break;
|
if (counter <= 0) break;
|
||||||
}
|
}
|
||||||
if (car == null)
|
if (truck == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
FormCleaningCar form = new FormCleaningCar();
|
FormCleaningCar form = new FormCleaningCar();
|
||||||
form.SetCar = car;
|
form.SetCar = truck;
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -164,24 +164,24 @@ public partial class FormCleaningCarCollection : Form
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
DrawningCar? car = null;
|
DrawningTruck? truck = null;
|
||||||
int counter = 100;
|
int counter = 100;
|
||||||
while (car == null)
|
while (truck == null)
|
||||||
{
|
{
|
||||||
car = _company.GetRandomObject();
|
truck = _company.GetRandomObject();
|
||||||
counter--;
|
counter--;
|
||||||
if (counter <= 0)
|
if (counter <= 0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (car == null)
|
if (truck == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
FormCleaningCar form = new()
|
FormCleaningCar form = new()
|
||||||
{
|
{
|
||||||
SetCar = car
|
SetCar = truck
|
||||||
};
|
};
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
|
||||||
|
@ -2,41 +2,41 @@
|
|||||||
|
|
||||||
namespace ProjectCleaningCar.MovementStrategy;
|
namespace ProjectCleaningCar.MovementStrategy;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс-реализация IMoveableObject с использованием DrawningCar
|
/// Класс-реализация IMoveableObject с использованием DrawningTruck
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class MoveableCar : IMoveableObject
|
public class MoveableCar : IMoveableObject
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поле-объект класса DrawningCar или его наследника
|
/// Поле-объект класса DrawningTruck или его наследника
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly DrawningCar? _car = null;
|
private readonly DrawningTruck? _truck = null;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конструктор
|
/// Конструктор
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="car">Объект класса DrawningCar</param>
|
/// <param name="truck">Объект класса DrawningTruck</param>
|
||||||
public MoveableCar(DrawningCar car)
|
public MoveableCar(DrawningTruck truck)
|
||||||
{
|
{
|
||||||
_car = car;
|
_truck = truck;
|
||||||
}
|
}
|
||||||
public ObjectParameters? GetObjectPosition
|
public ObjectParameters? GetObjectPosition
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_car == null || _car.EntityCar == null || !_car.GetPosX.HasValue || !_car.GetPosY.HasValue)
|
if (_truck == null || _truck.EntityTruck == null || !_truck.GetPosX.HasValue || !_truck.GetPosY.HasValue)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return new ObjectParameters(_car.GetPosX.Value, _car.GetPosY.Value, _car.GetWidth, _car.GetHeight);
|
return new ObjectParameters(_truck.GetPosX.Value, _truck.GetPosY.Value, _truck.GetWidth, _truck.GetHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public int GetStep => (int)(_car?.EntityCar?.Step ?? 0);
|
public int GetStep => (int)(_truck?.EntityTruck?.Step ?? 0);
|
||||||
public bool TryMoveObject(MovementDirection direction)
|
public bool TryMoveObject(MovementDirection direction)
|
||||||
{
|
{
|
||||||
if (_car == null || _car.EntityCar == null)
|
if (_truck == null || _truck.EntityTruck == null)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return _car.MoveTransport(GetDirectionType(direction));
|
return _truck.MoveTransport(GetDirectionType(direction));
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конвертация из MovementDirection в DirectionType
|
/// Конвертация из MovementDirection в DirectionType
|
||||||
|
Loading…
x
Reference in New Issue
Block a user