51
whalewatchers/WhaleWatchersOverlay.java
Normal file
51
whalewatchers/WhaleWatchersOverlay.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package net.runelite.client.plugins.whalewatchers;
|
||||
|
||||
import net.runelite.api.*;
|
||||
import net.runelite.client.ui.overlay.*;
|
||||
import javax.inject.*;
|
||||
import net.runelite.client.ui.overlay.components.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class WhaleWatchersOverlay extends Overlay
|
||||
{
|
||||
private Client client;
|
||||
private final WhaleWatchersConfig config;
|
||||
private WhaleWatchersPlugin plugin;
|
||||
private PanelComponent panelComponent;
|
||||
private String lastOpponent;
|
||||
|
||||
@Inject
|
||||
public WhaleWatchersOverlay(final WhaleWatchersConfig config, final Client client, final WhaleWatchersPlugin plugin) {
|
||||
this.lastOpponent = "-";
|
||||
this.client = client;
|
||||
this.config = config;
|
||||
this.plugin = plugin;
|
||||
this.setLayer(OverlayLayer.ABOVE_WIDGETS);
|
||||
this.setPriority(OverlayPriority.HIGH);
|
||||
this.setPosition(OverlayPosition.DETACHED);
|
||||
this.panelComponent = new PanelComponent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension render(final Graphics2D graphics) {
|
||||
this.panelComponent.getChildren().clear();
|
||||
if (this.plugin.inCombat && this.config.showDamageCounter()) {
|
||||
this.panelComponent.setBackgroundColor(this.config.damageBackgroundColor());
|
||||
final String opp = (this.client.getLocalPlayer().getInteracting() != null) ? this.client.getLocalPlayer().getInteracting().getName() : this.lastOpponent;
|
||||
if (this.client.getLocalPlayer().getInteracting() != null) {
|
||||
this.lastOpponent = this.client.getLocalPlayer().getInteracting().getName();
|
||||
}
|
||||
final String opponent = "Fight vs " + opp;
|
||||
final String damageTaken = "Damage Taken: " + this.plugin.damageTaken;
|
||||
final String damageDealt = "Damage Dealt: " + this.plugin.damageDone;
|
||||
this.panelComponent.getChildren().add(TitleComponent.builder().text(opponent).color(Color.BLACK).build());
|
||||
this.panelComponent.getChildren().add(TitleComponent.builder().text(damageDealt).color(Color.BLACK).build());
|
||||
this.panelComponent.getChildren().add(TitleComponent.builder().text(damageTaken).color(Color.BLACK).build());
|
||||
this.panelComponent.setPreferredSize(new Dimension(graphics.getFontMetrics().stringWidth(damageDealt) + graphics.getFontMetrics().stringWidth(opponent) + 10, 0));
|
||||
}
|
||||
else {
|
||||
this.panelComponent.getChildren().clear();
|
||||
}
|
||||
return this.panelComponent.render(graphics);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user