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