clue plugin: centralize spade check
This commit is contained in:
@@ -30,17 +30,23 @@ import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import javax.inject.Inject;
|
||||
import static net.runelite.api.ItemID.SPADE;
|
||||
import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.ClueScroll;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
||||
import net.runelite.client.ui.overlay.Overlay;
|
||||
import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE;
|
||||
import net.runelite.client.ui.overlay.OverlayMenuEntry;
|
||||
import net.runelite.client.ui.overlay.OverlayPriority;
|
||||
import net.runelite.client.ui.overlay.components.ComponentConstants;
|
||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
|
||||
public class ClueScrollOverlay extends Overlay
|
||||
{
|
||||
private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(SPADE);
|
||||
|
||||
public static final Color TITLED_CONTENT_COLOR = new Color(190, 190, 190);
|
||||
|
||||
private final ClueScrollPlugin plugin;
|
||||
@@ -70,6 +76,15 @@ public class ClueScrollOverlay extends Overlay
|
||||
|
||||
clue.makeOverlayHint(panelComponent, plugin);
|
||||
|
||||
if (clue.isRequiresSpade() && plugin.getInventoryItems() != null)
|
||||
{
|
||||
if (!HAS_SPADE.fulfilledBy(plugin.getInventoryItems()))
|
||||
{
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("").build());
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("Requires Spade!").leftColor(Color.RED).build());
|
||||
}
|
||||
}
|
||||
|
||||
return panelComponent.render(graphics);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,11 +25,18 @@
|
||||
package net.runelite.client.plugins.cluescrolls.clues;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
|
||||
public abstract class ClueScroll
|
||||
{
|
||||
@Setter(AccessLevel.PROTECTED)
|
||||
@Getter(AccessLevel.PUBLIC)
|
||||
private boolean requiresSpade;
|
||||
|
||||
public abstract void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin);
|
||||
|
||||
public abstract void makeWorldOverlayHint(Graphics2D graphics, ClueScrollPlugin plugin);
|
||||
|
||||
@@ -27,21 +27,16 @@ package net.runelite.client.plugins.cluescrolls.clues;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics2D;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
||||
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.TitleComponent;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public class CoordinateClue extends ClueScroll implements TextClueScroll, LocationClueScroll
|
||||
{
|
||||
private static final ImmutableMap<WorldPoint, String> CLUES = new ImmutableMap.Builder<WorldPoint, String>()
|
||||
@@ -192,9 +187,15 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
.put(new WorldPoint(2994, 3961, 0), "Wilderness. Inside Agility Training Area.")
|
||||
.build();
|
||||
|
||||
private String text;
|
||||
private WorldPoint location;
|
||||
private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(ItemID.SPADE);
|
||||
private final String text;
|
||||
private final WorldPoint location;
|
||||
|
||||
public CoordinateClue(String text, WorldPoint location)
|
||||
{
|
||||
this.text = text;
|
||||
this.location = location;
|
||||
setRequiresSpade(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void makeOverlayHint(PanelComponent panelComponent, ClueScrollPlugin plugin)
|
||||
@@ -214,15 +215,6 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
.left("Click the clue scroll on your world map to see dig location.")
|
||||
.build());
|
||||
|
||||
if (plugin.getInventoryItems() != null)
|
||||
{
|
||||
if (!HAS_SPADE.fulfilledBy(plugin.getInventoryItems()))
|
||||
{
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("").build());
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("Requires Spade!").leftColor(Color.RED).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,13 +29,10 @@ import java.awt.Color;
|
||||
import java.awt.Graphics2D;
|
||||
import java.util.Set;
|
||||
import lombok.Getter;
|
||||
import net.runelite.api.ItemID;
|
||||
import net.runelite.api.coords.LocalPoint;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollOverlay.TITLED_CONTENT_COLOR;
|
||||
import net.runelite.client.plugins.cluescrolls.ClueScrollPlugin;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
@@ -59,12 +56,12 @@ public class FairyRingClue extends ClueScroll implements TextClueScroll, Locatio
|
||||
|
||||
private String text;
|
||||
private WorldPoint location;
|
||||
private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(ItemID.SPADE);
|
||||
|
||||
private FairyRingClue(String text, WorldPoint location)
|
||||
{
|
||||
this.text = text;
|
||||
this.location = location;
|
||||
setRequiresSpade(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,15 +77,6 @@ public class FairyRingClue extends ClueScroll implements TextClueScroll, Locatio
|
||||
panelComponent.getChildren().add(LineComponent.builder()
|
||||
.left("Travel to the fairy ring to see where to dig.")
|
||||
.build());
|
||||
|
||||
if (plugin.getInventoryItems() != null)
|
||||
{
|
||||
if (!HAS_SPADE.fulfilledBy(plugin.getInventoryItems()))
|
||||
{
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("").build());
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("Requires Spade!").leftColor(Color.RED).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -44,8 +44,6 @@ import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLI
|
||||
import static net.runelite.client.plugins.cluescrolls.ClueScrollWorldOverlay.CLICKBOX_FILL_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 net.runelite.client.plugins.cluescrolls.clues.emote.ItemRequirement;
|
||||
import net.runelite.client.plugins.cluescrolls.clues.emote.SingleItemRequirement;
|
||||
import net.runelite.client.ui.overlay.OverlayUtil;
|
||||
import net.runelite.client.ui.overlay.components.LineComponent;
|
||||
import net.runelite.client.ui.overlay.components.PanelComponent;
|
||||
@@ -89,8 +87,6 @@ public class MapClue extends ClueScroll implements ObjectClueScroll
|
||||
new MapClue(CLUE_SCROLL_ELITE_19786, new WorldPoint(2703, 2716, 0), CRATE_6616)
|
||||
);
|
||||
|
||||
private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(SPADE);
|
||||
|
||||
private final int itemId;
|
||||
private final WorldPoint location;
|
||||
private final int objectId;
|
||||
@@ -117,6 +113,7 @@ public class MapClue extends ClueScroll implements ObjectClueScroll
|
||||
this.location = location;
|
||||
this.objectId = objectId;
|
||||
this.description = description;
|
||||
setRequiresSpade(objectId == -1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -157,15 +154,6 @@ public class MapClue extends ClueScroll implements ObjectClueScroll
|
||||
.left(description)
|
||||
.build());
|
||||
}
|
||||
|
||||
if (objectId == -1 && plugin.getInventoryItems() != null)
|
||||
{
|
||||
if (!HAS_SPADE.fulfilledBy(plugin.getInventoryItems()))
|
||||
{
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("").build());
|
||||
panelComponent.getChildren().add(LineComponent.builder().left("Requires Spade!").leftColor(Color.RED).build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user