Merge pull request #90 from abelbriggs1/patch

Changes/upgrades to GroundItems
This commit is contained in:
Adam
2017-06-22 21:37:57 -04:00
committed by GitHub
3 changed files with 91 additions and 7 deletions

View File

@@ -40,9 +40,28 @@ public interface GroundItemsConfig
name = "Enabled", name = "Enabled",
description = "Configures whether or not item names/quantities are displayed" description = "Configures whether or not item names/quantities are displayed"
) )
default boolean enabled() default boolean enabled()
{ {
return true; return true;
} }
@ConfigItem(
keyName = "showGEPrice",
name = "Show Grand Exchange Prices",
description = "Configures whether or not to draw GE prices alongside ground items"
)
default boolean showGEPrice()
{
return true;
}
@ConfigItem(
keyName = "showHAValue",
name = "Show High Alchemy Values",
description = "Configure whether or not to draw High Alchemy values alongside ground items"
)
default boolean showHAValue()
{
return false;
}
} }

View File

@@ -73,6 +73,8 @@ public class GroundItemsOverlay extends Overlay
// Threshold for highlighting items as pink. // Threshold for highlighting items as pink.
private static final int INSANE_VALUE = 10_000_000; private static final int INSANE_VALUE = 10_000_000;
private static final Color FADED_PINK = new Color(255, 102, 178); private static final Color FADED_PINK = new Color(255, 102, 178);
// Used when getting High Alchemy value - multiplied by general store price.
private static final float HIGH_ALCHEMY_CONSTANT = 0.6f;
private final Client client = RuneLite.getClient(); private final Client client = RuneLite.getClient();
private final GroundItemsConfig config; private final GroundItemsConfig config;
@@ -94,11 +96,11 @@ public class GroundItemsOverlay extends Overlay
return null; return null;
} }
Widget bank = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER); //Widget bank = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER);
if (bank != null && !bank.isHidden()) //if (bank != null && !bank.isHidden())
{ //{
return null; // return null;
} //}
Region region = client.getRegion(); Region region = client.getRegion();
Tile[][][] tiles = region.getTiles(); Tile[][][] tiles = region.getTiles();
@@ -183,9 +185,15 @@ public class GroundItemsOverlay extends Overlay
} }
} }
// sets item ID to unnoted version, if noted
if (item.getNote() != -1)
{
itemId = item.getLinkedNoteId();
}
Color textColor = Color.WHITE; // Color to use when drawing the ground item Color textColor = Color.WHITE; // Color to use when drawing the ground item
ItemPrice itemPrice = itemManager.get(itemId); ItemPrice itemPrice = itemManager.get(itemId);
if (itemPrice != null) if (itemPrice != null && config.showGEPrice())
{ {
int cost = itemPrice.getPrice() * quantity; int cost = itemPrice.getPrice() * quantity;
// set the color according to rarity, if possible // set the color according to rarity, if possible
@@ -211,6 +219,13 @@ public class GroundItemsOverlay extends Overlay
.append(" gp)"); .append(" gp)");
} }
if (config.showHAValue())
{
itemStringBuilder.append(" (HA: ")
.append(Math.round(item.getPrice() * HIGH_ALCHEMY_CONSTANT))
.append(" gp)");
}
String itemString = itemStringBuilder.toString(); String itemString = itemStringBuilder.toString();
itemStringBuilder.setLength(0); itemStringBuilder.setLength(0);

View File

@@ -27,11 +27,61 @@ package net.runelite.rs.api;
import net.runelite.mapping.Import; import net.runelite.mapping.Import;
/**
* ItemComposition is an interface that represents the various properties
* of an item. Imports several values from rs-client/ItemComposition,
* and allows direct access to them by calling these methods.
*/
public interface ItemComposition public interface ItemComposition
{ {
/**
* Returns the item's name as a string.
* @return the name of the item
*/
@Import("name") @Import("name")
String getName(); String getName();
/**
* Returns the item's ID. A list of item IDs can be
* found in net.runelite.api.ItemID.
* @return the item's ID as an integer
*/
@Import("id")
int getId();
/**
* Returns a result that depends on whether the item
* is in noted form or not.
* @return 799 if noted, -1 if unnoted
*/
@Import("notedTemplate")
int getNote();
/**
* Returns the item ID of the noted/unnoted counterpart.
* For example, if you call this on an unnoted monkfish(ID 7946),
* this method will return the ID of a noted monkfish(ID 7947),
* and vice versa.
* @return the ID that is linked to this item in noted/unnoted form.
*/
@Import("note")
int getLinkedNoteId();
/**
* Returns the store price of the item. Even if the item cannot
* be found in a store, all items have a store price from which the
* High and Low Alchemy values are calculated. Multiply the price by
* 0.6 to get the High Alchemy value, or 0.4 to get the Low Alchemy
* value.
* @return the general store value of the item
*/
@Import("price")
int getPrice();
/**
* Returns whether or not the item is members-only.
* @return true if members-only, false otherwise.
*/
@Import("isMembers") @Import("isMembers")
boolean isMembers(); boolean isMembers();