using ProjectAntiAircraftGun.DrawingObjects; namespace ProjectAntiAircraftGun.MovementStrategy { /// /// Реализация интерфейса IDrawningObject для работы с объектом Drawing (паттерн Adapter) public class DrawingObjectTank : IMoveableObject { private readonly DrawingTank? _draningTank = null; public DrawingObjectTank(DrawingTank drawingTank) { _draningTank = drawingTank; } public ObjectParameters? GetObjectPosition { get { if (_draningTank == null || _draningTank.EntityTank == null) { return null; } return new ObjectParameters(_draningTank.GetPosX, _draningTank.GetPosY, _draningTank.GetWidth, _draningTank.GetHeight); } } public int GetStep => (int)(_draningTank?.EntityTank?.Step ?? 0); public bool CheckCanMove(DirectionType direction) => _draningTank?.CanMove(direction) ?? false; public void MoveObject(DirectionType direction) => _draningTank?.MoveTransport(direction); } }