Update all overlays to support new PanelComponent
- Move all PanelComponents declarations to be persisted - Use new LineComponent and ImageComponent classes and add them to PanelComponent Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -32,6 +32,7 @@ import javax.inject.Inject;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class LapCounterOverlay extends Overlay
|
public class LapCounterOverlay extends Overlay
|
||||||
@@ -73,19 +74,18 @@ public class LapCounterOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
.left("Total Laps")
|
||||||
"Total Laps",
|
.right(Integer.toString(session.getTotalLaps()))
|
||||||
Integer.toString(session.getTotalLaps())
|
.build());
|
||||||
));
|
|
||||||
|
|
||||||
if (session.getLapsTillLevel() > 0)
|
if (session.getLapsTillLevel() > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Laps till level",
|
.left("Laps till level")
|
||||||
Integer.toString(session.getLapsTillLevel())
|
.right(Integer.toString(session.getLapsTillLevel()))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
|
|||||||
@@ -34,8 +34,6 @@ import net.runelite.client.ui.overlay.components.PanelComponent;
|
|||||||
|
|
||||||
public class AttackStylesOverlay extends Overlay
|
public class AttackStylesOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private static final int COMPONENT_WIDTH = 80;
|
|
||||||
|
|
||||||
private final AttackStylesPlugin plugin;
|
private final AttackStylesPlugin plugin;
|
||||||
private final AttackStylesConfig config;
|
private final AttackStylesConfig config;
|
||||||
private final PanelComponent panelComponent = new PanelComponent();
|
private final PanelComponent panelComponent = new PanelComponent();
|
||||||
@@ -56,10 +54,11 @@ public class AttackStylesOverlay extends Overlay
|
|||||||
if (warnedSkillSelected || config.alwaysShowStyle())
|
if (warnedSkillSelected || config.alwaysShowStyle())
|
||||||
{
|
{
|
||||||
final String attackStyleString = plugin.getAttackStyle().getName();
|
final String attackStyleString = plugin.getAttackStyle().getName();
|
||||||
|
|
||||||
panelComponent.setTitleColor(warnedSkillSelected ? Color.RED : Color.WHITE);
|
panelComponent.setTitleColor(warnedSkillSelected ? Color.RED : Color.WHITE);
|
||||||
panelComponent.setTitle(attackStyleString);
|
panelComponent.setTitle(attackStyleString);
|
||||||
panelComponent.setWidth(COMPONENT_WIDTH);
|
panelComponent.setPreferredSize(new Dimension(
|
||||||
|
graphics.getFontMetrics().stringWidth(attackStyleString) + 10,
|
||||||
|
0));
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import net.runelite.api.widgets.WidgetInfo;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class BarrowsBrotherSlainOverlay extends Overlay
|
public class BarrowsBrotherSlainOverlay extends Overlay
|
||||||
@@ -66,17 +67,16 @@ public class BarrowsBrotherSlainOverlay extends Overlay
|
|||||||
barrowsBrothers.setHidden(true);
|
barrowsBrothers.setHidden(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
for (BarrowsBrothers brother : BarrowsBrothers.values())
|
for (BarrowsBrothers brother : BarrowsBrothers.values())
|
||||||
{
|
{
|
||||||
String slain = client.getVar(brother.getKilledVarbit()) > 0 ? "✓" : "";
|
String slain = client.getVar(brother.getKilledVarbit()) > 0 ? "✓" : "";
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
brother.getName(),
|
.left(brother.getName())
|
||||||
Color.WHITE,
|
.right(slain)
|
||||||
slain,
|
.rightColor(slain.isEmpty() ? Color.WHITE : Color.GREEN)
|
||||||
slain.isEmpty() ? Color.WHITE : Color.GREEN
|
.build());
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import net.runelite.api.widgets.Widget;
|
|||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
|
|
||||||
@@ -60,17 +61,18 @@ class BlastFurnaceCofferOverlay extends Overlay
|
|||||||
|
|
||||||
Widget sack = client.getWidget(WidgetInfo.BLAST_FURNACE_COFFER);
|
Widget sack = client.getWidget(WidgetInfo.BLAST_FURNACE_COFFER);
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
if (sack != null)
|
if (sack != null)
|
||||||
{
|
{
|
||||||
sack.setHidden(true);
|
sack.setHidden(true);
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Coffer:",
|
.left("Coffer:")
|
||||||
StackFormatter.quantityToStackSize(client.getVar(BLAST_FURNACE_COFFER)) + " gp"
|
.right(StackFormatter.quantityToStackSize(client.getVar(BLAST_FURNACE_COFFER)) + " gp")
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -32,13 +32,14 @@ import net.runelite.api.Client;
|
|||||||
import net.runelite.client.game.ItemManager;
|
import net.runelite.client.game.ItemManager;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.components.ImagePanelComponent;
|
import net.runelite.client.ui.overlay.components.ImageComponent;
|
||||||
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
class BlastFurnaceOverlay extends Overlay
|
class BlastFurnaceOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final BlastFurnacePlugin plugin;
|
private final BlastFurnacePlugin plugin;
|
||||||
private final ImagePanelComponent imagePanelComponent = new ImagePanelComponent();
|
private final PanelComponent imagePanelComponent = new PanelComponent();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ItemManager itemManager;
|
private ItemManager itemManager;
|
||||||
@@ -49,6 +50,7 @@ class BlastFurnaceOverlay extends Overlay
|
|||||||
setPosition(OverlayPosition.TOP_LEFT);
|
setPosition(OverlayPosition.TOP_LEFT);
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.client = client;
|
this.client = client;
|
||||||
|
imagePanelComponent.setOrientation(PanelComponent.Orientation.HORIZONTAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,7 +61,7 @@ class BlastFurnaceOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
imagePanelComponent.getImages().clear();
|
imagePanelComponent.getChildren().clear();
|
||||||
|
|
||||||
for (BarsOres varbit : BarsOres.values())
|
for (BarsOres varbit : BarsOres.values())
|
||||||
{
|
{
|
||||||
@@ -70,7 +72,7 @@ class BlastFurnaceOverlay extends Overlay
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
imagePanelComponent.getImages().add(getImage(varbit.getItemID(), amount));
|
imagePanelComponent.getChildren().add(new ImageComponent(getImage(varbit.getItemID(), amount)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return imagePanelComponent.render(graphics);
|
return imagePanelComponent.render(graphics);
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import net.runelite.client.game.SkillIconManager;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
|
|
||||||
@@ -47,6 +48,7 @@ class BoostsOverlay extends Overlay
|
|||||||
private final Client client;
|
private final Client client;
|
||||||
private final BoostsConfig config;
|
private final BoostsConfig config;
|
||||||
private final InfoBoxManager infoBoxManager;
|
private final InfoBoxManager infoBoxManager;
|
||||||
|
private final PanelComponent panelComponent = new PanelComponent();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private BoostsPlugin plugin;
|
private BoostsPlugin plugin;
|
||||||
@@ -54,8 +56,6 @@ class BoostsOverlay extends Overlay
|
|||||||
@Inject
|
@Inject
|
||||||
private SkillIconManager iconManager;
|
private SkillIconManager iconManager;
|
||||||
|
|
||||||
private PanelComponent panelComponent;
|
|
||||||
|
|
||||||
private boolean overlayActive;
|
private boolean overlayActive;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -71,9 +71,9 @@ class BoostsOverlay extends Overlay
|
|||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
panelComponent = new PanelComponent();
|
|
||||||
|
|
||||||
Instant lastChange = plugin.getLastChange();
|
Instant lastChange = plugin.getLastChange();
|
||||||
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
if (!config.displayIndicators()
|
if (!config.displayIndicators()
|
||||||
&& config.displayNextChange()
|
&& config.displayNextChange()
|
||||||
&& lastChange != null
|
&& lastChange != null
|
||||||
@@ -82,12 +82,10 @@ class BoostsOverlay extends Overlay
|
|||||||
int nextChange = plugin.getChangeTime();
|
int nextChange = plugin.getChangeTime();
|
||||||
if (nextChange > 0)
|
if (nextChange > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Next change in",
|
.left("Next change in")
|
||||||
Color.WHITE,
|
.right(String.valueOf(nextChange))
|
||||||
String.valueOf(nextChange),
|
.build());
|
||||||
Color.WHITE
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,16 +146,15 @@ class BoostsOverlay extends Overlay
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
skill.getName(),
|
.left(skill.getName())
|
||||||
Color.WHITE,
|
.right(str)
|
||||||
str,
|
.rightColor(strColor)
|
||||||
strColor
|
.build());
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.getLines().isEmpty() ? null : panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Color getTextColor(int boost)
|
private Color getTextColor(int boost)
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import net.runelite.client.game.SkillIconManager;
|
import net.runelite.client.game.SkillIconManager;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.components.ImagePanelComponent;
|
import net.runelite.client.ui.overlay.components.ImageComponent;
|
||||||
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -40,6 +41,7 @@ public class CerberusOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
private final CerberusPlugin plugin;
|
private final CerberusPlugin plugin;
|
||||||
private final SkillIconManager iconManager;
|
private final SkillIconManager iconManager;
|
||||||
|
private final PanelComponent panelComponent = new PanelComponent();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
CerberusOverlay(final CerberusPlugin plugin, final SkillIconManager iconManager)
|
CerberusOverlay(final CerberusPlugin plugin, final SkillIconManager iconManager)
|
||||||
@@ -57,8 +59,9 @@ public class CerberusOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ImagePanelComponent imagePanelComponent = new ImagePanelComponent();
|
panelComponent.getChildren().clear();
|
||||||
imagePanelComponent.setTitle("Ghost order");
|
panelComponent.setOrientation(PanelComponent.Orientation.HORIZONTAL);
|
||||||
|
panelComponent.setTitle("Ghost order");
|
||||||
|
|
||||||
// Ghosts are already sorted
|
// Ghosts are already sorted
|
||||||
plugin.getGhosts().stream()
|
plugin.getGhosts().stream()
|
||||||
@@ -66,11 +69,11 @@ public class CerberusOverlay extends Overlay
|
|||||||
.limit(CerberusGhost.values().length)
|
.limit(CerberusGhost.values().length)
|
||||||
.forEach(npc -> CerberusGhost
|
.forEach(npc -> CerberusGhost
|
||||||
.fromNPC(npc)
|
.fromNPC(npc)
|
||||||
.ifPresent(ghost -> imagePanelComponent
|
.ifPresent(ghost -> panelComponent
|
||||||
.getImages()
|
.getChildren()
|
||||||
.add(iconManager.getSkillImage(ghost.getType()))));
|
.add(new ImageComponent(iconManager.getSkillImage(ghost.getType())))));
|
||||||
|
|
||||||
|
|
||||||
return imagePanelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class ClueScrollOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
clue.makeOverlayHint(panelComponent, plugin);
|
clue.makeOverlayHint(panelComponent, plugin);
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
|||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.CLUE_SCROLL_IMAGE;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.CLUE_SCROLL_IMAGE;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -167,18 +168,25 @@ public class AnagramClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
|||||||
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
||||||
{
|
{
|
||||||
panelComponent.setTitle("Anagram Clue");
|
panelComponent.setTitle("Anagram Clue");
|
||||||
panelComponent.setWidth(150);
|
panelComponent.getChildren().add(LineComponent.builder().left("NPC:").build());
|
||||||
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getNpc())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("NPC:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Area:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(getNpc(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getArea())
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Area:"));
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(true, getArea(), TITLED_CONTENT_COLOR));
|
.build());
|
||||||
|
|
||||||
if (getAnswer() != null)
|
if (getAnswer() != null)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Answer:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Answer:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(true, getAnswer(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getAnswer())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
|||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.CLUE_SCROLL_IMAGE;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.CLUE_SCROLL_IMAGE;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -76,18 +77,25 @@ public class CipherClue extends ClueScroll implements TextClueScroll, NpcClueScr
|
|||||||
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
||||||
{
|
{
|
||||||
panelComponent.setTitle("Cipher Clue");
|
panelComponent.setTitle("Cipher Clue");
|
||||||
panelComponent.setWidth(150);
|
panelComponent.getChildren().add(LineComponent.builder().left("NPC:").build());
|
||||||
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getNpc())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("NPC:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Area:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(getNpc(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getArea())
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Area:"));
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(true, getArea(), TITLED_CONTENT_COLOR));
|
.build());
|
||||||
|
|
||||||
if (getAnswer() != null)
|
if (getAnswer() != null)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Answer:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Answer:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(true, getAnswer(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getAnswer())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import net.runelite.api.coords.WorldPoint;
|
|||||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.SPADE_IMAGE;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.SPADE_IMAGE;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -46,12 +47,9 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
|||||||
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
||||||
{
|
{
|
||||||
panelComponent.setTitle("Coordinate Clue");
|
panelComponent.setTitle("Coordinate Clue");
|
||||||
panelComponent.setWidth(135);
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Travel to the marked out destination to see a marker for where you should dig.")
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Travel to the marked"));
|
.build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("out destination to see"));
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("a marker for where"));
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("you should dig."));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLI
|
|||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLICKBOX_HOVER_BORDER_COLOR;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLICKBOX_HOVER_BORDER_COLOR;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -338,15 +339,19 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
|||||||
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
||||||
{
|
{
|
||||||
panelComponent.setTitle("Cryptic Clue");
|
panelComponent.setTitle("Cryptic Clue");
|
||||||
panelComponent.setWidth(150);
|
panelComponent.getChildren().add(LineComponent.builder().left("Clue:").build());
|
||||||
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Clue:"));
|
.left(getText())
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(true, getText(), TITLED_CONTENT_COLOR));
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
|
|
||||||
if (getNpc() != null)
|
if (getNpc() != null)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("NPC:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("NPC:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(getNpc(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getNpc())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (objectId != -1)
|
if (objectId != -1)
|
||||||
@@ -355,13 +360,19 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
|||||||
|
|
||||||
if (object != null)
|
if (object != null)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Object:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Object:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(object.getName(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(object.getName())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Solution:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Solution:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(true, getSolution(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getSolution())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,7 +41,336 @@ import static net.runelite.api.EquipmentInventorySlot.RING;
|
|||||||
import static net.runelite.api.EquipmentInventorySlot.SHIELD;
|
import static net.runelite.api.EquipmentInventorySlot.SHIELD;
|
||||||
import static net.runelite.api.EquipmentInventorySlot.WEAPON;
|
import static net.runelite.api.EquipmentInventorySlot.WEAPON;
|
||||||
import net.runelite.api.Item;
|
import net.runelite.api.Item;
|
||||||
import static net.runelite.api.ItemID.*;
|
import static net.runelite.api.ItemID.ABYSSAL_WHIP;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_2H_SWORD;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_DAGGER;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_HALBERD;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_MED_HELM;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_PLATELEGS;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_PLATESKIRT;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_SQ_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.ADAMANT_SWORD;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_HOOD_0;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_HOOD_100;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_0;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_ROBESKIRT_100;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_0;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_ROBETOP_100;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_STAFF_0;
|
||||||
|
import static net.runelite.api.ItemID.AHRIMS_STAFF_100;
|
||||||
|
import static net.runelite.api.ItemID.AIR_TIARA;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY1;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY2;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY3;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY4;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY5;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_GLORY6;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_POWER;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_STRENGTH;
|
||||||
|
import static net.runelite.api.ItemID.AMULET_OF_THE_DAMNED;
|
||||||
|
import static net.runelite.api.ItemID.ANCIENT_CROZIER;
|
||||||
|
import static net.runelite.api.ItemID.ANCIENT_MITRE;
|
||||||
|
import static net.runelite.api.ItemID.ANCIENT_STOLE;
|
||||||
|
import static net.runelite.api.ItemID.ARCLIGHT;
|
||||||
|
import static net.runelite.api.ItemID.ARMADYL_CROZIER;
|
||||||
|
import static net.runelite.api.ItemID.ARMADYL_MITRE;
|
||||||
|
import static net.runelite.api.ItemID.ARMADYL_STOLE;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_CLOAK;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_CROZIER;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_GODSWORD;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_MITRE;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.BANDOS_STOLE;
|
||||||
|
import static net.runelite.api.ItemID.BARROWS_GLOVES;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_AXE;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_CAPE;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_DHIDE_BODY;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_DHIDE_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_DHIDE_VAMB;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_DRAGON_MASK;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_SALAMANDER;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_SLAYER_HELMET;
|
||||||
|
import static net.runelite.api.ItemID.BLACK_SLAYER_HELMET_I;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_DHIDE_BODY;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_DHIDE_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_DHIDE_VAMB;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_ROBE_TOP;
|
||||||
|
import static net.runelite.api.ItemID.BLUE_WIZARD_HAT;
|
||||||
|
import static net.runelite.api.ItemID.BOBS_PURPLE_SHIRT;
|
||||||
|
import static net.runelite.api.ItemID.BOBS_RED_SHIRT;
|
||||||
|
import static net.runelite.api.ItemID.BODY_TIARA;
|
||||||
|
import static net.runelite.api.ItemID.BONE_DAGGER;
|
||||||
|
import static net.runelite.api.ItemID.BONE_SPEAR;
|
||||||
|
import static net.runelite.api.ItemID.BOOK_OF_BALANCE;
|
||||||
|
import static net.runelite.api.ItemID.BOOK_OF_DARKNESS;
|
||||||
|
import static net.runelite.api.ItemID.BOOK_OF_LAW;
|
||||||
|
import static net.runelite.api.ItemID.BOOK_OF_WAR;
|
||||||
|
import static net.runelite.api.ItemID.BRINE_SABRE;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_2H_SWORD;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_AXE;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_CHAINBODY;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_DAGGER;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_PLATELEGS;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_SPEAR;
|
||||||
|
import static net.runelite.api.ItemID.BRONZE_SQ_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.BROWN_APRON;
|
||||||
|
import static net.runelite.api.ItemID.BROWN_HEADBAND;
|
||||||
|
import static net.runelite.api.ItemID.BRUISE_BLUE_SNELM_3343;
|
||||||
|
import static net.runelite.api.ItemID.CAPE_OF_LEGENDS;
|
||||||
|
import static net.runelite.api.ItemID.CASTLE_WARS_BRACELET3;
|
||||||
|
import static net.runelite.api.ItemID.CLIMBING_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.COIF;
|
||||||
|
import static net.runelite.api.ItemID.COMBAT_BRACELET;
|
||||||
|
import static net.runelite.api.ItemID.CREAM_ROBE_TOP;
|
||||||
|
import static net.runelite.api.ItemID.DEATH_TIARA;
|
||||||
|
import static net.runelite.api.ItemID.DESERT_SHIRT;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_0;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_GREATAXE_100;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_HELM_0;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_HELM_100;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_0;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_PLATEBODY_100;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_0;
|
||||||
|
import static net.runelite.api.ItemID.DHAROKS_PLATELEGS_100;
|
||||||
|
import static net.runelite.api.ItemID.DIAMOND_BRACELET;
|
||||||
|
import static net.runelite.api.ItemID.DIAMOND_RING;
|
||||||
|
import static net.runelite.api.ItemID.DRAGONSTONE_AMULET;
|
||||||
|
import static net.runelite.api.ItemID.DRAGONSTONE_RING;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_2H_SWORD;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_AXE;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_BATTLEAXE;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_CHAINBODY_3140;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_DEFENDER;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_MED_HELM;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_NECKLACE;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_PICKAXE;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_PLATESKIRT;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_SPEAR;
|
||||||
|
import static net.runelite.api.ItemID.DRAGON_SQ_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.EARTH_RUNE;
|
||||||
|
import static net.runelite.api.ItemID.ELEMENTAL_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.EMERALD_AMULET;
|
||||||
|
import static net.runelite.api.ItemID.EMERALD_RING;
|
||||||
|
import static net.runelite.api.ItemID.FIRE_BATTLESTAFF;
|
||||||
|
import static net.runelite.api.ItemID.FIRE_CAPE;
|
||||||
|
import static net.runelite.api.ItemID.FLARED_TROUSERS;
|
||||||
|
import static net.runelite.api.ItemID.GOLD_NECKLACE;
|
||||||
|
import static net.runelite.api.ItemID.GOLD_RING;
|
||||||
|
import static net.runelite.api.ItemID.GRANITE_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_DHIDE_BODY;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_DHIDE_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_HAT;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_HEADBAND;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_ROBE_BOTTOMS;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_ROBE_TOP;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_SLAYER_HELMET;
|
||||||
|
import static net.runelite.api.ItemID.GREEN_SLAYER_HELMET_I;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_0;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_CHAINSKIRT_100;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_HELM_0;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_HELM_100;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_0;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_PLATEBODY_100;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_0;
|
||||||
|
import static net.runelite.api.ItemID.GUTHANS_WARSPEAR_100;
|
||||||
|
import static net.runelite.api.ItemID.GUTHIX_MITRE;
|
||||||
|
import static net.runelite.api.ItemID.GUTHIX_STOLE;
|
||||||
|
import static net.runelite.api.ItemID.HAM_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.HAM_ROBE;
|
||||||
|
import static net.runelite.api.ItemID.HARDLEATHER_BODY;
|
||||||
|
import static net.runelite.api.ItemID.HELM_OF_NEITIZNOT;
|
||||||
|
import static net.runelite.api.ItemID.HOLY_BOOK;
|
||||||
|
import static net.runelite.api.ItemID.IBANS_STAFF;
|
||||||
|
import static net.runelite.api.ItemID.IBANS_STAFF_U;
|
||||||
|
import static net.runelite.api.ItemID.IRON_2H_SWORD;
|
||||||
|
import static net.runelite.api.ItemID.IRON_CHAINBODY;
|
||||||
|
import static net.runelite.api.ItemID.IRON_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.IRON_KITESHIELD;
|
||||||
|
import static net.runelite.api.ItemID.IRON_MED_HELM;
|
||||||
|
import static net.runelite.api.ItemID.IRON_PICKAXE;
|
||||||
|
import static net.runelite.api.ItemID.IRON_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.IRON_PLATELEGS;
|
||||||
|
import static net.runelite.api.ItemID.IRON_PLATESKIRT;
|
||||||
|
import static net.runelite.api.ItemID.IRON_SCIMITAR;
|
||||||
|
import static net.runelite.api.ItemID.IRON_WARHAMMER;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_COIF_0;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_COIF_100;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_CROSSBOW_0;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_CROSSBOW_100;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_0;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_LEATHERSKIRT_100;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_0;
|
||||||
|
import static net.runelite.api.ItemID.KARILS_LEATHERTOP_100;
|
||||||
|
import static net.runelite.api.ItemID.LAVA_BATTLESTAFF;
|
||||||
|
import static net.runelite.api.ItemID.LEATHER_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.LEATHER_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.LEATHER_COWL;
|
||||||
|
import static net.runelite.api.ItemID.LEATHER_GLOVES;
|
||||||
|
import static net.runelite.api.ItemID.LONGBOW;
|
||||||
|
import static net.runelite.api.ItemID.MAGIC_LONGBOW;
|
||||||
|
import static net.runelite.api.ItemID.MAPLE_LONGBOW;
|
||||||
|
import static net.runelite.api.ItemID.MAPLE_SHORTBOW;
|
||||||
|
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_HAT;
|
||||||
|
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_ROBE;
|
||||||
|
import static net.runelite.api.ItemID.MENAPHITE_PURPLE_TOP;
|
||||||
|
import static net.runelite.api.ItemID.MIND_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_CHAINBODY;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_MED_HELM;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_PICKAXE;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_PLATELEGS;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_PLATESKIRT;
|
||||||
|
import static net.runelite.api.ItemID.MITHRIL_SCIMITAR;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_FIRE_STAFF;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_GLOVES;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_HAT;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_ROBE_BOTTOM;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_ROBE_BOTTOM_DARK;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_ROBE_TOP;
|
||||||
|
import static net.runelite.api.ItemID.MYSTIC_ROBE_TOP_DARK;
|
||||||
|
import static net.runelite.api.ItemID.NEW_CRYSTAL_BOW_I;
|
||||||
|
import static net.runelite.api.ItemID.OAK_LONGBOW;
|
||||||
|
import static net.runelite.api.ItemID.OAK_SHORTBOW;
|
||||||
|
import static net.runelite.api.ItemID.OBSIDIAN_CAPE;
|
||||||
|
import static net.runelite.api.ItemID.ORANGE_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.PHARAOHS_SCEPTRE_3;
|
||||||
|
import static net.runelite.api.ItemID.PINK_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.PINK_ROBE_TOP;
|
||||||
|
import static net.runelite.api.ItemID.PINK_SKIRT;
|
||||||
|
import static net.runelite.api.ItemID.PIRATE_BANDANA;
|
||||||
|
import static net.runelite.api.ItemID.PIRATE_BANDANA_7124;
|
||||||
|
import static net.runelite.api.ItemID.PIRATE_BANDANA_7130;
|
||||||
|
import static net.runelite.api.ItemID.PIRATE_BANDANA_7136;
|
||||||
|
import static net.runelite.api.ItemID.PROSELYTE_HAUBERK;
|
||||||
|
import static net.runelite.api.ItemID.PURPLE_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.PURPLE_GLOVES;
|
||||||
|
import static net.runelite.api.ItemID.PURPLE_SLAYER_HELMET;
|
||||||
|
import static net.runelite.api.ItemID.PURPLE_SLAYER_HELMET_I;
|
||||||
|
import static net.runelite.api.ItemID.RED_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.RED_DHIDE_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.RED_HEADBAND;
|
||||||
|
import static net.runelite.api.ItemID.RED_SLAYER_HELMET;
|
||||||
|
import static net.runelite.api.ItemID.RED_SLAYER_HELMET_I;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING1;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING2;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING3;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING4;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING5;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING6;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING7;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_DUELING8;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_FORGING;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_LIFE;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_WEALTH;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_WEALTH_1;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_WEALTH_2;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_WEALTH_3;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_WEALTH_4;
|
||||||
|
import static net.runelite.api.ItemID.RING_OF_WEALTH_5;
|
||||||
|
import static net.runelite.api.ItemID.ROLLING_PIN;
|
||||||
|
import static net.runelite.api.ItemID.RUBY_AMULET;
|
||||||
|
import static net.runelite.api.ItemID.RUBY_RING;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_AXE;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_CROSSBOW;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_HALBERD;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_HELM_H1;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_HELM_H5;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_KITESHIELD;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_LONGSWORD;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_PICKAXE;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_PLATELEGS;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_PLATESKIRT;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_SHIELD_H1;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_SHIELD_H2;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_SHIELD_H3;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_SHIELD_H4;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_SHIELD_H5;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_SPEAR;
|
||||||
|
import static net.runelite.api.ItemID.RUNE_WARHAMMER;
|
||||||
|
import static net.runelite.api.ItemID.SAPPHIRE_AMULET;
|
||||||
|
import static net.runelite.api.ItemID.SAPPHIRE_NECKLACE;
|
||||||
|
import static net.runelite.api.ItemID.SAPPHIRE_RING;
|
||||||
|
import static net.runelite.api.ItemID.SARADOMIN_CROZIER;
|
||||||
|
import static net.runelite.api.ItemID.SARADOMIN_MITRE;
|
||||||
|
import static net.runelite.api.ItemID.SARADOMIN_STOLE;
|
||||||
|
import static net.runelite.api.ItemID.SEERCULL;
|
||||||
|
import static net.runelite.api.ItemID.SHADOW_SWORD;
|
||||||
|
import static net.runelite.api.ItemID.SILVER_SICKLE;
|
||||||
|
import static net.runelite.api.ItemID.SLAYER_HELMET;
|
||||||
|
import static net.runelite.api.ItemID.SLAYER_HELMET_I;
|
||||||
|
import static net.runelite.api.ItemID.SLED_4084;
|
||||||
|
import static net.runelite.api.ItemID.SNAKESKIN_BOOTS;
|
||||||
|
import static net.runelite.api.ItemID.SNAKESKIN_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.SPINED_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.SPLITBARK_BODY;
|
||||||
|
import static net.runelite.api.ItemID.SPLITBARK_LEGS;
|
||||||
|
import static net.runelite.api.ItemID.SPOTTED_CAPE;
|
||||||
|
import static net.runelite.api.ItemID.SPOTTED_CAPE_10073;
|
||||||
|
import static net.runelite.api.ItemID.STAFF;
|
||||||
|
import static net.runelite.api.ItemID.STAFF_OF_AIR;
|
||||||
|
import static net.runelite.api.ItemID.STAFF_OF_WATER;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_AXE;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_KITESHIELD;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_LONGSWORD;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_MACE;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_MED_HELM;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_PICKAXE;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_PLATEBODY;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_PLATESKIRT;
|
||||||
|
import static net.runelite.api.ItemID.STEEL_SQ_SHIELD;
|
||||||
|
import static net.runelite.api.ItemID.STUDDED_BODY;
|
||||||
|
import static net.runelite.api.ItemID.STUDDED_CHAPS;
|
||||||
|
import static net.runelite.api.ItemID.TEAM1_CAPE;
|
||||||
|
import static net.runelite.api.ItemID.TEAM50_CAPE;
|
||||||
|
import static net.runelite.api.ItemID.TIARA;
|
||||||
|
import static net.runelite.api.ItemID.TOKTZKETXIL;
|
||||||
|
import static net.runelite.api.ItemID.TOKTZXILUL;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_HAMMERS_0;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_HAMMERS_100;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_HELM_0;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_HELM_100;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_0;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_PLATEBODY_100;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_0;
|
||||||
|
import static net.runelite.api.ItemID.TORAGS_PLATELEGS_100;
|
||||||
|
import static net.runelite.api.ItemID.TURQUOISE_ROBE_BOTTOMS;
|
||||||
|
import static net.runelite.api.ItemID.TURQUOISE_SLAYER_HELMET;
|
||||||
|
import static net.runelite.api.ItemID.TURQUOISE_SLAYER_HELMET_I;
|
||||||
|
import static net.runelite.api.ItemID.UNHOLY_BOOK;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_BRASSARD_0;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_BRASSARD_100;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_FLAIL_0;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_FLAIL_100;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_HELM_0;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_HELM_100;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_0;
|
||||||
|
import static net.runelite.api.ItemID.VERACS_PLATESKIRT_100;
|
||||||
|
import static net.runelite.api.ItemID.WHITE_APRON;
|
||||||
|
import static net.runelite.api.ItemID.WHITE_BOATER;
|
||||||
|
import static net.runelite.api.ItemID.WHITE_HEADBAND;
|
||||||
|
import static net.runelite.api.ItemID.ZAMORAK_CROZIER;
|
||||||
|
import static net.runelite.api.ItemID.ZAMORAK_FULL_HELM;
|
||||||
|
import static net.runelite.api.ItemID.ZAMORAK_GODSWORD;
|
||||||
|
import static net.runelite.api.ItemID.ZAMORAK_MITRE;
|
||||||
|
import static net.runelite.api.ItemID.ZAMORAK_STOLE;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollOverlay.TITLED_CONTENT_COLOR;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollOverlay.TITLED_CONTENT_COLOR;
|
||||||
@@ -50,13 +379,40 @@ import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.EMOTE_IMA
|
|||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.AllRequirementsCollection;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.AllRequirementsCollection;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.AnyRequirementCollection;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.AnyRequirementCollection;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.Emote;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.Emote;
|
||||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.*;
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.ANGRY;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BECKON;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BLOW_KISS;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BOW;
|
||||||
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BULL_ROARER;
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.BULL_ROARER;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.CHEER;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.CLAP;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.CRY;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.DANCE;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.FLAP;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.GOBLIN_SALUTE;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.HEADBANG;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.JIG;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.JUMP_FOR_JOY;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.LAUGH;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.NO;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.PANIC;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.PUSH_UP;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.RASPBERRY;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SALUTE;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SHRUG;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SLAP_HEAD;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.SPIN;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.STOMP;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.THINK;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.WAVE;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.YAWN;
|
||||||
|
import static net.runelite.client.plugins.cluescrolls.clues.emote.Emote.YES;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.RangeItemRequirement;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.RangeItemRequirement;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
||||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SlotLimitationRequirement;
|
import net.runelite.client.plugins.cluescrolls.clues.emote.SlotLimitationRequirement;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -227,22 +583,30 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu
|
|||||||
{
|
{
|
||||||
panelComponent.setTitle("Emote Clue");
|
panelComponent.setTitle("Emote Clue");
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Emotes:"));
|
panelComponent.getChildren().add(LineComponent.builder().left("Emotes:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(getFirstEmote().getName(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getFirstEmote().getName())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
|
|
||||||
if (getSecondEmote() != null)
|
if (getSecondEmote() != null)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(getSecondEmote().getName(), TITLED_CONTENT_COLOR));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getSecondEmote().getName())
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getItemRequirements() == null)
|
if (getItemRequirements() == null)
|
||||||
{
|
{
|
||||||
panelComponent.setWidth(130);
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Items:", "None"));
|
.left("Items:")
|
||||||
|
.right("None")
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
panelComponent.setWidth(160);
|
panelComponent.getChildren().add(LineComponent.builder().left("Equip:").build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Equip:"));
|
|
||||||
|
|
||||||
Item[] items = plugin.getEquippedItems();
|
Item[] items = plugin.getEquippedItems();
|
||||||
|
|
||||||
@@ -255,10 +619,13 @@ public class EmoteClue extends ClueScroll implements TextClueScroll, LocationClu
|
|||||||
for (ItemRequirement requirement : getItemRequirements())
|
for (ItemRequirement requirement : getItemRequirements())
|
||||||
{
|
{
|
||||||
boolean found = requirement.fulfilledBy(items);
|
boolean found = requirement.fulfilledBy(items);
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
|
||||||
requirement.getCollectiveName(plugin.getClient()), TITLED_CONTENT_COLOR,
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
found ? "X" : "-", found ? Color.GREEN : Color.RED)
|
.left(requirement.getCollectiveName(plugin.getClient()))
|
||||||
);
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.right(found ? "X" : "-")
|
||||||
|
.rightColor(found ? Color.GREEN : Color.RED)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import static net.runelite.client.plugins.cluescrolls.ClueScrollOverlay.TITLED_C
|
|||||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.SPADE_IMAGE;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollPlugin.SPADE_IMAGE;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -66,13 +67,15 @@ public class FairyRingClue extends ClueScroll implements TextClueScroll, Locatio
|
|||||||
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
||||||
{
|
{
|
||||||
panelComponent.setTitle("Fairy Ring Clue");
|
panelComponent.setTitle("Fairy Ring Clue");
|
||||||
panelComponent.setWidth(140);
|
panelComponent.getChildren().add(LineComponent.builder().left("Code:").build());
|
||||||
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left(getText().substring(0, 5))
|
||||||
|
.leftColor(TITLED_CONTENT_COLOR)
|
||||||
|
.build());
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Code:"));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(getText().substring(0, 5), TITLED_CONTENT_COLOR));
|
.left("Travel to the fairy ring to see where to dig.")
|
||||||
|
.build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Travel to the fairy ring"));
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("to see where to dig."));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -32,7 +32,10 @@ import lombok.Getter;
|
|||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
import static net.runelite.api.ItemID.*;
|
import static net.runelite.api.ItemID.*;
|
||||||
import net.runelite.api.ObjectComposition;
|
import net.runelite.api.ObjectComposition;
|
||||||
import static net.runelite.api.ObjectID.*;
|
import static net.runelite.api.ObjectID.CRATE_18506;
|
||||||
|
import static net.runelite.api.ObjectID.CRATE_2620;
|
||||||
|
import static net.runelite.api.ObjectID.CRATE_354;
|
||||||
|
import static net.runelite.api.ObjectID.CRATE_357;
|
||||||
import net.runelite.api.coords.LocalPoint;
|
import net.runelite.api.coords.LocalPoint;
|
||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||||
@@ -43,6 +46,7 @@ import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLI
|
|||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLICKBOX_HOVER_BORDER_COLOR;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLICKBOX_HOVER_BORDER_COLOR;
|
||||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.IMAGE_Z_OFFSET;
|
||||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -103,25 +107,24 @@ public class MapClue extends ClueScroll implements ObjectClueScroll
|
|||||||
|
|
||||||
if (objectId != -1)
|
if (objectId != -1)
|
||||||
{
|
{
|
||||||
panelComponent.setWidth(150);
|
|
||||||
|
|
||||||
ObjectComposition objectToClick = plugin.getClient().getObjectDefinition(getObjectId());
|
ObjectComposition objectToClick = plugin.getClient().getObjectDefinition(getObjectId());
|
||||||
|
|
||||||
String objectName = "N/A";
|
String objectName = "N/A";
|
||||||
|
|
||||||
if (objectToClick != null)
|
if (objectToClick != null)
|
||||||
{
|
{
|
||||||
objectName = objectToClick.getName();
|
objectName = objectToClick.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Travel to the destination"));
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("and click the " + objectName + "."));
|
.left("Travel to the destination and click the " + objectName + ".")
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
panelComponent.setWidth(160);
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Travel to the destination and dig on the marked tile.")
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Travel to the destination"));
|
.build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("and dig on the marked tile."));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,12 +34,14 @@ import net.runelite.api.coords.LocalPoint;
|
|||||||
import net.runelite.api.coords.WorldPoint;
|
import net.runelite.api.coords.WorldPoint;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class LocationOverlay extends Overlay
|
public class LocationOverlay extends Overlay
|
||||||
{
|
{
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final DevToolsPlugin plugin;
|
private final DevToolsPlugin plugin;
|
||||||
|
private final PanelComponent panelComponent = new PanelComponent();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
LocationOverlay(Client client, DevToolsPlugin plugin)
|
LocationOverlay(Client client, DevToolsPlugin plugin)
|
||||||
@@ -57,7 +59,7 @@ public class LocationOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
PanelComponent panelComponent = new PanelComponent();
|
panelComponent.setPreferredSize(new Dimension(150, 0));
|
||||||
|
|
||||||
WorldPoint localWorld = client.getLocalPlayer().getWorldLocation();
|
WorldPoint localWorld = client.getLocalPlayer().getWorldLocation();
|
||||||
LocalPoint localPoint = client.getLocalPlayer().getLocalLocation();
|
LocalPoint localPoint = client.getLocalPlayer().getLocalLocation();
|
||||||
@@ -66,8 +68,9 @@ public class LocationOverlay extends Overlay
|
|||||||
|
|
||||||
if (client.isInInstancedRegion())
|
if (client.isInInstancedRegion())
|
||||||
{
|
{
|
||||||
panelComponent.setWidth(150);
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
panelComponent.getLines().add(new PanelComponent.Line("Instance"));
|
.left("Instance")
|
||||||
|
.build());
|
||||||
|
|
||||||
int[][][] instanceTemplateChunks = client.getInstanceTemplateChunks();
|
int[][][] instanceTemplateChunks = client.getInstanceTemplateChunks();
|
||||||
int z = client.getPlane();
|
int z = client.getPlane();
|
||||||
@@ -77,25 +80,26 @@ public class LocationOverlay extends Overlay
|
|||||||
int chunkY = (chunkData >> 3 & 0x7FF) * CHUNK_SIZE;
|
int chunkY = (chunkData >> 3 & 0x7FF) * CHUNK_SIZE;
|
||||||
int chunkX = (chunkData >> 14 & 0x3FF) * CHUNK_SIZE;
|
int chunkX = (chunkData >> 14 & 0x3FF) * CHUNK_SIZE;
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Chunk " + localPoint.getRegionX() / CHUNK_SIZE + "," + localPoint.getRegionY() / CHUNK_SIZE,
|
.left("Chunk " + localPoint.getRegionX() / CHUNK_SIZE + "," + localPoint.getRegionY() / CHUNK_SIZE)
|
||||||
rotation + " " + chunkX + " " + chunkY
|
.right(rotation + " " + chunkX + " " + chunkY)
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Tile",
|
.left("Tile")
|
||||||
localWorld.getX() + ", " + localWorld.getY() + ", " + client.getPlane()
|
.right(localWorld.getX() + ", " + localWorld.getY() + ", " + client.getPlane())
|
||||||
));
|
.build());
|
||||||
|
|
||||||
for (int i = 0; i < client.getMapRegions().length; i++)
|
for (int i = 0; i < client.getMapRegions().length; i++)
|
||||||
{
|
{
|
||||||
int region = client.getMapRegions()[i];
|
int region = client.getMapRegions()[i];
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
(i == 0) ? "Map regions" : " ", new Color(255, 255, 255, 255),
|
.left((i == 0) ? "Map regions" : " ")
|
||||||
String.valueOf(region), (region == regionID) ? new Color(0, 255, 0, 255) : new Color(255, 255, 255, 255)
|
.right(String.valueOf(region))
|
||||||
));
|
.rightColor((region == regionID) ? Color.GREEN : Color.WHITE)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import net.runelite.api.Client;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
import net.runelite.client.ui.overlay.components.ImagePanelComponent;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -38,6 +37,8 @@ import java.awt.Dimension;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import net.runelite.client.ui.overlay.components.ImageComponent;
|
||||||
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class FightCaveOverlay extends Overlay
|
public class FightCaveOverlay extends Overlay
|
||||||
@@ -46,7 +47,7 @@ public class FightCaveOverlay extends Overlay
|
|||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final FightCavePlugin plugin;
|
private final FightCavePlugin plugin;
|
||||||
|
private final PanelComponent imagePanelComponent = new PanelComponent();
|
||||||
private BufferedImage protectFromMagicImg;
|
private BufferedImage protectFromMagicImg;
|
||||||
private BufferedImage protectFromMissilesImg;
|
private BufferedImage protectFromMissilesImg;
|
||||||
|
|
||||||
@@ -68,13 +69,14 @@ public class FightCaveOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
BufferedImage prayerImage = getPrayerImage(attack);
|
BufferedImage prayerImage = getPrayerImage(attack);
|
||||||
ImagePanelComponent imagePanelComponent = new ImagePanelComponent();
|
|
||||||
imagePanelComponent.setTitle("TzTok-Jad");
|
imagePanelComponent.setTitle("TzTok-Jad");
|
||||||
imagePanelComponent.getImages().add(prayerImage);
|
imagePanelComponent.getChildren().add(new ImageComponent(prayerImage));
|
||||||
|
|
||||||
if (!client.isPrayerActive(attack.getPrayer()))
|
if (!client.isPrayerActive(attack.getPrayer()))
|
||||||
{
|
{
|
||||||
imagePanelComponent.setBackgroundColor(NOT_ACTIVATED_BACKGROUND_COLOR);
|
imagePanelComponent.setBackgroundColor(NOT_ACTIVATED_BACKGROUND_COLOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
return imagePanelComponent.render(graphics);
|
return imagePanelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import net.runelite.api.Skill;
|
|||||||
import net.runelite.client.plugins.xptracker.XpTrackerService;
|
import net.runelite.client.plugins.xptracker.XpTrackerService;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
class FishingOverlay extends Overlay
|
class FishingOverlay extends Overlay
|
||||||
@@ -81,7 +82,7 @@ class FishingOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
if (client.getLocalPlayer().getInteracting() != null && client.getLocalPlayer().getInteracting().getName()
|
if (client.getLocalPlayer().getInteracting() != null && client.getLocalPlayer().getInteracting().getName()
|
||||||
.contains(FISHING_SPOT))
|
.contains(FISHING_SPOT))
|
||||||
{
|
{
|
||||||
@@ -97,17 +98,17 @@ class FishingOverlay extends Overlay
|
|||||||
int actions = xpTrackerService.getActions(Skill.FISHING);
|
int actions = xpTrackerService.getActions(Skill.FISHING);
|
||||||
if (actions > 0)
|
if (actions > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Caught fish:",
|
.left("Caught fish:")
|
||||||
Integer.toString(actions)
|
.right(Integer.toString(actions))
|
||||||
));
|
.build());
|
||||||
|
|
||||||
if (actions > 2)
|
if (actions > 2)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Fish/hr:",
|
.left("Fish/hr:")
|
||||||
Integer.toString(xpTrackerService.getActionsHr(Skill.FISHING))
|
.right(Integer.toString(xpTrackerService.getActionsHr(Skill.FISHING)))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import java.time.Instant;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class MotherlodeGemOverlay extends Overlay
|
public class MotherlodeGemOverlay extends Overlay
|
||||||
@@ -70,41 +71,42 @@ public class MotherlodeGemOverlay extends Overlay
|
|||||||
int emeraldsFound = session.getEmeraldsFound();
|
int emeraldsFound = session.getEmeraldsFound();
|
||||||
int sapphiresFound = session.getSapphiresFound();
|
int sapphiresFound = session.getSapphiresFound();
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
panelComponent.setTitle("Gems found");
|
panelComponent.setTitle("Gems found");
|
||||||
|
|
||||||
if (diamondsFound > 0)
|
if (diamondsFound > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Diamonds:",
|
.left("Diamonds:")
|
||||||
Integer.toString(diamondsFound)
|
.right(Integer.toString(diamondsFound))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rubiesFound > 0)
|
if (rubiesFound > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Rubies:",
|
.left("Rubies:")
|
||||||
Integer.toString(rubiesFound)
|
.right(Integer.toString(rubiesFound))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (emeraldsFound > 0)
|
if (emeraldsFound > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Emeralds:",
|
.left("Emeralds:")
|
||||||
Integer.toString(emeraldsFound)
|
.right(Integer.toString(emeraldsFound))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sapphiresFound > 0)
|
if (sapphiresFound > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Sapphires:",
|
.left("Sapphires:")
|
||||||
Integer.toString(sapphiresFound)
|
.right(Integer.toString(sapphiresFound))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import static net.runelite.api.AnimationID.MINING_MOTHERLODE_STEEL;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
class MotherlodeOverlay extends Overlay
|
class MotherlodeOverlay extends Overlay
|
||||||
@@ -93,7 +94,7 @@ class MotherlodeOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
if (config.showMiningState())
|
if (config.showMiningState())
|
||||||
{
|
{
|
||||||
@@ -113,17 +114,15 @@ class MotherlodeOverlay extends Overlay
|
|||||||
panelComponent.setTitle(null);
|
panelComponent.setTitle(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Pay-dirt mined:",
|
.left("Pay-dirt mined:")
|
||||||
Integer.toString(session.getTotalMined())
|
.right(Integer.toString(session.getTotalMined()))
|
||||||
));
|
.build());
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Pay-dirt/hr:",
|
.left("Pay-dirt/hr:")
|
||||||
session.getRecentMined() > 2
|
.right(session.getRecentMined() > 2 ? Integer.toString(session.getPerHour()) : "")
|
||||||
? Integer.toString(session.getPerHour())
|
.build());
|
||||||
: ""
|
|
||||||
));
|
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import net.runelite.api.widgets.WidgetInfo;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.components.BackgroundComponent;
|
import net.runelite.client.ui.overlay.components.BackgroundComponent;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
class MotherlodeSackOverlay extends Overlay
|
class MotherlodeSackOverlay extends Overlay
|
||||||
@@ -67,7 +68,7 @@ class MotherlodeSackOverlay extends Overlay
|
|||||||
|
|
||||||
Widget sack = client.getWidget(WidgetInfo.MOTHERLODE_MINE);
|
Widget sack = client.getWidget(WidgetInfo.MOTHERLODE_MINE);
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
panelComponent.setBackgroundColor(BackgroundComponent.DEFAULT_BACKGROUND_COLOR);
|
panelComponent.setBackgroundColor(BackgroundComponent.DEFAULT_BACKGROUND_COLOR);
|
||||||
|
|
||||||
if (sack != null)
|
if (sack != null)
|
||||||
@@ -81,23 +82,16 @@ class MotherlodeSackOverlay extends Overlay
|
|||||||
panelComponent.setBackgroundColor(DANGER);
|
panelComponent.setBackgroundColor(DANGER);
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Pay-dirt in sack:",
|
.left("Pay-dirt in sack:")
|
||||||
Color.WHITE,
|
.right(String.valueOf(client.getVar(Varbits.SACK_NUMBER)))
|
||||||
String.valueOf(client.getVar(Varbits.SACK_NUMBER)),
|
.build());
|
||||||
Color.WHITE
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.showDepositsLeft())
|
if (config.showDepositsLeft())
|
||||||
{
|
{
|
||||||
final Integer depositsLeft = plugin.getDepositsLeft();
|
final Integer depositsLeft = plugin.getDepositsLeft();
|
||||||
final PanelComponent.Line line = new PanelComponent.Line(
|
Color color = Color.WHITE;
|
||||||
"Deposits left:",
|
|
||||||
Color.WHITE,
|
|
||||||
depositsLeft == null ? "N/A" : String.valueOf(depositsLeft),
|
|
||||||
Color.WHITE
|
|
||||||
);
|
|
||||||
|
|
||||||
if (depositsLeft != null)
|
if (depositsLeft != null)
|
||||||
{
|
{
|
||||||
@@ -107,12 +101,16 @@ class MotherlodeSackOverlay extends Overlay
|
|||||||
}
|
}
|
||||||
else if (depositsLeft == 1)
|
else if (depositsLeft == 1)
|
||||||
{
|
{
|
||||||
line.setLeftColor(Color.RED);
|
color = Color.RED;
|
||||||
line.setRightColor(Color.RED);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(line);
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Deposits left:")
|
||||||
|
.leftColor(color)
|
||||||
|
.right(depositsLeft == null ? "N/A" : String.valueOf(depositsLeft))
|
||||||
|
.rightColor(color)
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.nightmarezone;
|
package net.runelite.client.plugins.nightmarezone;
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -37,6 +36,7 @@ import net.runelite.client.game.ItemManager;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||||
import net.runelite.client.util.StackFormatter;
|
import net.runelite.client.util.StackFormatter;
|
||||||
@@ -96,13 +96,11 @@ class NightmareZoneOverlay extends Overlay
|
|||||||
|
|
||||||
renderAbsorptionCounter();
|
renderAbsorptionCounter();
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Points: ",
|
.left("Points: ")
|
||||||
Color.WHITE,
|
.right(StackFormatter.formatNumber(client.getVar(Varbits.NMZ_POINTS)))
|
||||||
StackFormatter.formatNumber(client.getVar(Varbits.NMZ_POINTS)),
|
.build());
|
||||||
Color.WHITE
|
|
||||||
));
|
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import net.runelite.client.plugins.raids.solver.Room;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class RaidsOverlay extends Overlay
|
public class RaidsOverlay extends Overlay
|
||||||
@@ -61,7 +62,7 @@ public class RaidsOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
if (plugin.getRaid() == null || plugin.getRaid().getLayout() == null)
|
if (plugin.getRaid() == null || plugin.getRaid().getLayout() == null)
|
||||||
{
|
{
|
||||||
@@ -81,9 +82,11 @@ public class RaidsOverlay extends Overlay
|
|||||||
color = Color.RED;
|
color = Color.RED;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Layout", Color.WHITE, layout, color
|
.left("Layout")
|
||||||
));
|
.right(layout)
|
||||||
|
.rightColor(color)
|
||||||
|
.build());
|
||||||
|
|
||||||
int bossMatches = 0;
|
int bossMatches = 0;
|
||||||
int bossCount = 0;
|
int bossCount = 0;
|
||||||
@@ -119,9 +122,12 @@ public class RaidsOverlay extends Overlay
|
|||||||
color = Color.RED;
|
color = Color.RED;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
room.getType().getName(), Color.WHITE, room.getBoss().getName(), color
|
.left(room.getType().getName())
|
||||||
));
|
.right(room.getBoss().getName())
|
||||||
|
.rightColor(color)
|
||||||
|
.build());
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PUZZLE:
|
case PUZZLE:
|
||||||
@@ -134,9 +140,11 @@ public class RaidsOverlay extends Overlay
|
|||||||
color = Color.RED;
|
color = Color.RED;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
room.getType().getName(), Color.WHITE, room.getPuzzle().getName(), color
|
.left(room.getType().getName())
|
||||||
));
|
.right(room.getPuzzle().getName())
|
||||||
|
.rightColor(color)
|
||||||
|
.build());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.raids;
|
package net.runelite.client.plugins.raids;
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -34,6 +33,7 @@ import static net.runelite.client.plugins.raids.RaidsPlugin.POINTS_FORMAT;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class RaidsPointsOverlay extends Overlay
|
public class RaidsPointsOverlay extends Overlay
|
||||||
@@ -64,16 +64,21 @@ public class RaidsPointsOverlay extends Overlay
|
|||||||
int totalPoints = client.getVar(Varbits.TOTAL_POINTS);
|
int totalPoints = client.getVar(Varbits.TOTAL_POINTS);
|
||||||
int personalPoints = client.getVar(Varbits.PERSONAL_POINTS);
|
int personalPoints = client.getVar(Varbits.PERSONAL_POINTS);
|
||||||
|
|
||||||
panel.getLines().clear();
|
panel.getChildren().clear();
|
||||||
panel.getLines().add(new PanelComponent.Line(
|
panel.getChildren().add(LineComponent.builder()
|
||||||
"Total:", Color.WHITE, POINTS_FORMAT.format(totalPoints), Color.WHITE
|
.left("Total:")
|
||||||
));
|
.right(POINTS_FORMAT.format(totalPoints))
|
||||||
panel.getLines().add(new PanelComponent.Line(
|
.build());
|
||||||
client.getLocalPlayer().getName() + ":", Color.WHITE, POINTS_FORMAT.format(personalPoints), Color.WHITE
|
|
||||||
));
|
panel.getChildren().add(LineComponent.builder()
|
||||||
panel.getLines().add(new PanelComponent.Line(
|
.left(client.getLocalPlayer().getName() + ":")
|
||||||
"Party size:", Color.WHITE, String.valueOf(client.getVar(Varbits.RAID_PARTY_SIZE)), Color.WHITE
|
.right(POINTS_FORMAT.format(personalPoints))
|
||||||
));
|
.build());
|
||||||
|
|
||||||
|
panel.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Party size:")
|
||||||
|
.right(String.valueOf(client.getVar(Varbits.RAID_PARTY_SIZE)))
|
||||||
|
.build());
|
||||||
|
|
||||||
return panel.render(graphics);
|
return panel.render(graphics);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.teamcapes;
|
package net.runelite.client.plugins.teamcapes;
|
||||||
|
|
||||||
import java.awt.Color;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -32,6 +31,7 @@ import javax.inject.Inject;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
public class TeamCapesOverlay extends Overlay
|
public class TeamCapesOverlay extends Overlay
|
||||||
@@ -57,20 +57,20 @@ public class TeamCapesOverlay extends Overlay
|
|||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
for (Map.Entry<Integer, Integer> team : teams.entrySet())
|
for (Map.Entry<Integer, Integer> team : teams.entrySet())
|
||||||
{
|
{
|
||||||
// Only display team capes that have a count greater than the configured minimum.
|
// Only display team capes that have a count greater than the configured minimum.
|
||||||
if (team.getValue() >= config.getMinimumCapeCount())
|
if (team.getValue() >= config.getMinimumCapeCount())
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Team-" + Integer.toString(team.getKey()),
|
.left("Team-" + Integer.toString(team.getKey()))
|
||||||
Color.WHITE,
|
.right(Integer.toString(team.getValue()))
|
||||||
Integer.toString(team.getValue()),
|
.build());
|
||||||
Color.WHITE
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import net.runelite.api.widgets.Widget;
|
|||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
class TitheFarmSackOverlay extends Overlay
|
class TitheFarmSackOverlay extends Overlay
|
||||||
@@ -58,19 +59,20 @@ class TitheFarmSackOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
sack.setHidden(true);
|
sack.setHidden(true);
|
||||||
|
|
||||||
if (config.showSack())
|
if (config.showSack())
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Fruits in sack:",
|
.left("Fruits in sack:")
|
||||||
String.valueOf(client.getVar(Varbits.TITHE_FARM_SACK_AMOUNT))
|
.right(String.valueOf(client.getVar(Varbits.TITHE_FARM_SACK_AMOUNT)))
|
||||||
));
|
.build());
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
|
||||||
"Points:",
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
String.valueOf(client.getVar(Varbits.TITHE_FARM_POINTS))
|
.left("Points:")
|
||||||
));
|
.right(String.valueOf(client.getVar(Varbits.TITHE_FARM_POINTS)))
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
return panelComponent.render(graphics);
|
return panelComponent.render(graphics);
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import net.runelite.api.Skill;
|
|||||||
import net.runelite.client.plugins.xptracker.XpTrackerService;
|
import net.runelite.client.plugins.xptracker.XpTrackerService;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
|
|
||||||
class WoodcuttingOverlay extends Overlay
|
class WoodcuttingOverlay extends Overlay
|
||||||
@@ -95,7 +96,7 @@ class WoodcuttingOverlay extends Overlay
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
panelComponent.getLines().clear();
|
panelComponent.getChildren().clear();
|
||||||
|
|
||||||
if (IntStream.of(animationIds).anyMatch(x -> x == client.getLocalPlayer().getAnimation()))
|
if (IntStream.of(animationIds).anyMatch(x -> x == client.getLocalPlayer().getAnimation()))
|
||||||
{
|
{
|
||||||
@@ -111,17 +112,17 @@ class WoodcuttingOverlay extends Overlay
|
|||||||
int actions = xpTrackerService.getActions(Skill.WOODCUTTING);
|
int actions = xpTrackerService.getActions(Skill.WOODCUTTING);
|
||||||
if (actions > 0)
|
if (actions > 0)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Logs cut:",
|
.left("Logs cut:")
|
||||||
Integer.toString(actions)
|
.right(Integer.toString(actions))
|
||||||
));
|
.build());
|
||||||
|
|
||||||
if (actions > 2)
|
if (actions > 2)
|
||||||
{
|
{
|
||||||
panelComponent.getLines().add(new PanelComponent.Line(
|
panelComponent.getChildren().add(LineComponent.builder()
|
||||||
"Logs/hr:",
|
.left("Logs/hr:")
|
||||||
Integer.toString(xpTrackerService.getActionsHr(Skill.WOODCUTTING))
|
.right(Integer.toString(xpTrackerService.getActionsHr(Skill.WOODCUTTING)))
|
||||||
));
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import net.runelite.client.plugins.xptracker.XpTrackerService;
|
|||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayPosition;
|
import net.runelite.client.ui.overlay.OverlayPosition;
|
||||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||||
|
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||||
import net.runelite.client.ui.overlay.components.ProgressBarComponent;
|
import net.runelite.client.ui.overlay.components.ProgressBarComponent;
|
||||||
|
|
||||||
@@ -57,6 +58,7 @@ public class XpGlobesOverlay extends Overlay
|
|||||||
private final XpGlobesPlugin plugin;
|
private final XpGlobesPlugin plugin;
|
||||||
private final XpGlobesConfig config;
|
private final XpGlobesConfig config;
|
||||||
private final XpTrackerService xpTrackerService;
|
private final XpTrackerService xpTrackerService;
|
||||||
|
private final PanelComponent xpTooltip = new PanelComponent();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private SkillIconManager iconManager;
|
private SkillIconManager iconManager;
|
||||||
@@ -228,22 +230,38 @@ public class XpGlobesOverlay extends Overlay
|
|||||||
DecimalFormat decimalFormat = new DecimalFormat("###,###,###");
|
DecimalFormat decimalFormat = new DecimalFormat("###,###,###");
|
||||||
String skillCurrentXp = decimalFormat.format(mouseOverSkill.getCurrentXp());
|
String skillCurrentXp = decimalFormat.format(mouseOverSkill.getCurrentXp());
|
||||||
|
|
||||||
PanelComponent xpTooltip = new PanelComponent();
|
xpTooltip.getChildren().clear();
|
||||||
xpTooltip.setPosition(new java.awt.Point(x, y));
|
xpTooltip.setPosition(new java.awt.Point(x, y));
|
||||||
xpTooltip.setWidth(TOOLTIP_RECT_SIZE_X);
|
xpTooltip.setPreferredSize(new Dimension(TOOLTIP_RECT_SIZE_X, 0));
|
||||||
|
|
||||||
|
xpTooltip.getChildren().add(LineComponent.builder()
|
||||||
|
.left(skillName)
|
||||||
|
.right(skillLevel)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
xpTooltip.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Current xp:")
|
||||||
|
.leftColor(Color.ORANGE)
|
||||||
|
.right(skillCurrentXp)
|
||||||
|
.build());
|
||||||
|
|
||||||
List<PanelComponent.Line> lines = xpTooltip.getLines();
|
|
||||||
lines.add(new PanelComponent.Line(skillName, Color.WHITE, skillLevel, Color.WHITE));
|
|
||||||
lines.add(new PanelComponent.Line("Current xp:", Color.ORANGE, skillCurrentXp, Color.WHITE));
|
|
||||||
if (mouseOverSkill.getGoalXp() != -1)
|
if (mouseOverSkill.getGoalXp() != -1)
|
||||||
{
|
{
|
||||||
int actionsLeft = xpTrackerService.getActionsLeft(mouseOverSkill.getSkill());
|
int actionsLeft = xpTrackerService.getActionsLeft(mouseOverSkill.getSkill());
|
||||||
String actionsLeftString = decimalFormat.format(actionsLeft);
|
String actionsLeftString = decimalFormat.format(actionsLeft);
|
||||||
lines.add(new PanelComponent.Line("Actions left:", Color.ORANGE, actionsLeftString, Color.WHITE));
|
xpTooltip.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Actions left:")
|
||||||
|
.leftColor(Color.ORANGE)
|
||||||
|
.right(actionsLeftString)
|
||||||
|
.build());
|
||||||
|
|
||||||
int xpLeft = mouseOverSkill.getGoalXp() - mouseOverSkill.getCurrentXp();
|
int xpLeft = mouseOverSkill.getGoalXp() - mouseOverSkill.getCurrentXp();
|
||||||
String skillXpToLvl = decimalFormat.format(xpLeft);
|
String skillXpToLvl = decimalFormat.format(xpLeft);
|
||||||
lines.add(new PanelComponent.Line("Xp to level:", Color.ORANGE, skillXpToLvl, Color.WHITE));
|
xpTooltip.getChildren().add(LineComponent.builder()
|
||||||
|
.left("Xp to level:")
|
||||||
|
.leftColor(Color.ORANGE)
|
||||||
|
.right(skillXpToLvl)
|
||||||
|
.build());
|
||||||
|
|
||||||
//Create progress bar for skill.
|
//Create progress bar for skill.
|
||||||
ProgressBarComponent progressBar = new ProgressBarComponent();
|
ProgressBarComponent progressBar = new ProgressBarComponent();
|
||||||
@@ -251,7 +269,7 @@ public class XpGlobesOverlay extends Overlay
|
|||||||
mouseOverSkill.getCurrentXp(), mouseOverSkill.getGoalXp());
|
mouseOverSkill.getCurrentXp(), mouseOverSkill.getGoalXp());
|
||||||
progressBar.setProgress(progress);
|
progressBar.setProgress(progress);
|
||||||
|
|
||||||
xpTooltip.setProgressBar(progressBar);
|
xpTooltip.getChildren().add(progressBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
xpTooltip.render(graphics);
|
xpTooltip.render(graphics);
|
||||||
|
|||||||
Reference in New Issue
Block a user