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