Files
k4rli-plugins/src/main/java/ee/futur/easygotr/EasyGOTRHighlightTarget.java
2025-11-22 15:31:10 +02:00

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;
}
}