test1
This commit is contained in:
55
src/main/java/ee/futur/easygotr/EasyGOTRWidgetOverlay.java
Normal file
55
src/main/java/ee/futur/easygotr/EasyGOTRWidgetOverlay.java
Normal file
@@ -0,0 +1,55 @@
|
||||
package ee.futur.easygotr;
|
||||
|
||||
import lombok.Setter;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* Overlay that highlights UI widgets (inventory items) the player should interact with.
|
||||
*/
|
||||
public class EasyGOTRWidgetOverlay extends Overlay {
|
||||
|
||||
@Setter
|
||||
private EasyGOTRActionHint hint;
|
||||
|
||||
@Inject
|
||||
private EasyGOTRWidgetOverlay() {
|
||||
setPosition(OverlayPosition.DYNAMIC);
|
||||
setLayer(OverlayLayer.ABOVE_WIDGETS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics) {
|
||||
EasyGOTRActionHint localHint = hint;
|
||||
if (localHint == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (EasyGOTRHighlightTarget target : localHint.getHighlightsSafe()) {
|
||||
target.getWidgetOptional().ifPresent(widget -> highlightWidget(graphics, widget, target.getColorOrDefault(Color.CYAN), target.getLabel()));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void highlightWidget(Graphics2D graphics, Widget widget, Color color, String label) {
|
||||
Rectangle bounds = widget.getBounds();
|
||||
if (bounds == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
graphics.setColor(color);
|
||||
graphics.setStroke(new BasicStroke(2));
|
||||
graphics.draw(bounds);
|
||||
|
||||
if (label != null && !label.isEmpty()) {
|
||||
graphics.drawString(label, (int) bounds.getX(), (int) (bounds.getY() - 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user