This commit is contained in:
2025-11-17 19:16:57 +02:00
parent e3e7de9108
commit e555d5a114
22 changed files with 864 additions and 141 deletions

View File

@@ -0,0 +1,57 @@
package ee.futur.easygotr;
import lombok.Getter;
import net.runelite.api.NPC;
import net.runelite.api.TileObject;
import net.runelite.api.coords.WorldPoint;
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 Color color;
private final String label;
private EasyGOTRHighlightTarget(TileObject tileObject, NPC npc, WorldPoint worldPoint, Color color, String label) {
this.tileObject = tileObject;
this.npc = npc;
this.worldPoint = worldPoint;
this.color = color;
this.label = label;
}
public static EasyGOTRHighlightTarget forTileObject(TileObject tileObject, Color color, String label) {
return new EasyGOTRHighlightTarget(tileObject, null, null, color, label);
}
public static EasyGOTRHighlightTarget forNpc(NPC npc, Color color, String label) {
return new EasyGOTRHighlightTarget(null, npc, null, color, label);
}
public static EasyGOTRHighlightTarget forWorldPoint(WorldPoint worldPoint, Color color, String label) {
return new EasyGOTRHighlightTarget(null, null, worldPoint, 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 Color getColorOrDefault(Color defaultColor) {
return color != null ? color : defaultColor;
}
}