diff --git a/src/DrawingBoat.java b/src/DrawingBoat.java index f092340..f30c78c 100644 --- a/src/DrawingBoat.java +++ b/src/DrawingBoat.java @@ -202,4 +202,9 @@ public class DrawingBoat { __startPosY = __pictureHeight - __boatHeight; } } + + // Метод для получения текущих координат объекта + Position GetCurrentPosition() { + return new Position(__startPosX, __startPosY, __startPosX + __boatWidth, __startPosY + __boatHeight); + } } diff --git a/src/DrawingObjectBoat.java b/src/DrawingObjectBoat.java new file mode 100644 index 0000000..f3af4a8 --- /dev/null +++ b/src/DrawingObjectBoat.java @@ -0,0 +1,46 @@ +package src; + +import java.awt.*; + +public class DrawingObjectBoat implements IDrawingObject { + private DrawingBoat __drawingBoat = null; + + public DrawingObjectBoat(DrawingBoat drawingBoat) { + __drawingBoat = drawingBoat; + } + + @Override + public Position GetCurrentPosition() { + if (__drawingBoat == null) + return null; + return __drawingBoat.GetCurrentPosition(); + } + + @Override + public void MoveObject(EnumDirection enumDirection) { + if (__drawingBoat == null) + return; + __drawingBoat.MoveTransport(enumDirection); + } + + @Override + public float Step() { + if (__drawingBoat == null) + return 0; + if (__drawingBoat.entityBoat == null) + return 0; + return __drawingBoat.entityBoat.Step(); + } + + @Override + public void SetObject(int x, int y, int width, int height) { + __drawingBoat.SetPosition(x, y, width, height); + } + + @Override + public void DrawingObject(Graphics g) { + if (__drawingBoat == null) + return; + __drawingBoat.DrawTransport(g); + } +} diff --git a/src/IDrawingObject.java b/src/IDrawingObject.java index 4c93ddc..cf65086 100644 --- a/src/IDrawingObject.java +++ b/src/IDrawingObject.java @@ -4,7 +4,7 @@ import java.awt.*; public interface IDrawingObject { - float Step = 0; + float Step(); void SetObject(int x, int y, int width, int height);