Store overlay bounds for overlays at LEFT and RIGHT OverlayPositions

This commit is contained in:
Tyler Hardy
2017-10-15 23:40:53 -05:00
parent 7689a90fd4
commit 2d5b2b78fd
3 changed files with 20 additions and 1 deletions

View File

@@ -27,11 +27,13 @@ package net.runelite.client.ui.overlay;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle;
public abstract class Overlay
{
private OverlayPosition position; // where to draw it
private OverlayPriority priority; // if multiple overlays exist in the same position, who wins
private Rectangle bounds; //screen bounds of overlay after OverlayRenderer decides location
public Overlay(OverlayPosition position)
{
@@ -65,4 +67,14 @@ public abstract class Overlay
}
public abstract Dimension render(Graphics2D graphics);
public Rectangle getBounds()
{
return bounds;
}
public void storeBounds(Rectangle bounds)
{
this.bounds = bounds;
}
}

View File

@@ -22,11 +22,11 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.client.ui.overlay;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
@@ -61,6 +61,9 @@ public class TopDownRendererLeft implements Renderer
if (dimension == null)
continue;
Rectangle bounds = new Rectangle(BORDER_LEFT, y, (int) dimension.getWidth(), (int) dimension.getHeight());
overlay.storeBounds(bounds);
y += dimension.getHeight() + PADDING;
}
}

View File

@@ -26,6 +26,7 @@ package net.runelite.client.ui.overlay;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
@@ -74,6 +75,9 @@ public class TopDownRendererRight implements Renderer
graphics.drawImage(image, clientWidth - BORDER_RIGHT - (int) dimension.getWidth(), y, null);
graphics.dispose();
Rectangle bounds = new Rectangle(clientWidth - BORDER_RIGHT - (int) dimension.getWidth(), y, (int) dimension.getWidth(), (int) dimension.getHeight());
overlay.storeBounds(bounds);
y += dimension.getHeight() + PADDING;
}
}