using Airbus_Base.DrawningObjects; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Airbus_Base.MovementStrategy { /// /// Реализация интерфейса IDrawningObject для работы с объектом DrawningAirplane (паттерн Adapter) /// public class DrawningObjectAirplane : IMoveableObject { private readonly DrawningAirplane? _drawningAirplane = null; public DrawningObjectAirplane(DrawningAirplane drawningAirplane) { _drawningAirplane = drawningAirplane; } public ObjectParameters? GetObjectPosition { get { if (_drawningAirplane == null || _drawningAirplane.EntityAirplane == null) { return null; } return new ObjectParameters(_drawningAirplane.GetPosX, _drawningAirplane.GetPosY, _drawningAirplane.GetWidth, _drawningAirplane.GetHeight); } } public int GetStep => (int)(_drawningAirplane?.EntityAirplane?.Step ?? 0); public bool CheckCanMove(DirectionType direction) => _drawningAirplane?.CanMove(direction) ?? false; public void MoveObject(DirectionType direction) => _drawningAirplane?.MoveTransport(direction); } }