69 lines
2.2 KiB
Java
69 lines
2.2 KiB
Java
package ee.futur.easygotr;
|
|
|
|
import lombok.Getter;
|
|
import net.runelite.api.NPC;
|
|
import net.runelite.api.TileObject;
|
|
import net.runelite.api.coords.WorldPoint;
|
|
import net.runelite.api.widgets.Widget;
|
|
|
|
import java.awt.*;
|
|
import java.util.Optional;
|
|
|
|
/**
|
|
* Represents an entity or tile that should be highlighted for the player.
|
|
*/
|
|
@Getter
|
|
public class EasyGOTRHighlightTarget {
|
|
private final TileObject tileObject;
|
|
private final NPC npc;
|
|
private final WorldPoint worldPoint;
|
|
private final Widget widget;
|
|
private final Color color;
|
|
private final String label;
|
|
|
|
private EasyGOTRHighlightTarget(TileObject tileObject, NPC npc, WorldPoint worldPoint, Widget widget, Color color, String label) {
|
|
this.tileObject = tileObject;
|
|
this.npc = npc;
|
|
this.worldPoint = worldPoint;
|
|
this.widget = widget;
|
|
this.color = color;
|
|
this.label = label;
|
|
}
|
|
|
|
public static EasyGOTRHighlightTarget forTileObject(TileObject tileObject, Color color, String label) {
|
|
return new EasyGOTRHighlightTarget(tileObject, null, null, null, color, label);
|
|
}
|
|
|
|
public static EasyGOTRHighlightTarget forNpc(NPC npc, Color color, String label) {
|
|
return new EasyGOTRHighlightTarget(null, npc, null, null, color, label);
|
|
}
|
|
|
|
public static EasyGOTRHighlightTarget forWorldPoint(WorldPoint worldPoint, Color color, String label) {
|
|
return new EasyGOTRHighlightTarget(null, null, worldPoint, null, color, label);
|
|
}
|
|
|
|
public static EasyGOTRHighlightTarget forWidget(Widget widget, Color color, String label) {
|
|
return new EasyGOTRHighlightTarget(null, null, null, widget, color, label);
|
|
}
|
|
|
|
public Optional<TileObject> getTileObjectOptional() {
|
|
return Optional.ofNullable(tileObject);
|
|
}
|
|
|
|
public Optional<NPC> getNpcOptional() {
|
|
return Optional.ofNullable(npc);
|
|
}
|
|
|
|
public Optional<WorldPoint> getWorldPointOptional() {
|
|
return Optional.ofNullable(worldPoint);
|
|
}
|
|
|
|
public Optional<Widget> getWidgetOptional() {
|
|
return Optional.ofNullable(widget);
|
|
}
|
|
|
|
public Color getColorOrDefault(Color defaultColor) {
|
|
return color != null ? color : defaultColor;
|
|
}
|
|
}
|