clue plugin: centralize spade check

This commit is contained in:
Adam
2019-03-31 11:11:34 -04:00
parent f8fd91bb1c
commit bffdc47f89
5 changed files with 33 additions and 43 deletions

View File

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

View File

@@ -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);

View File

@@ -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

View File

@@ -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

View File

@@ -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