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",
description = "Configures whether or not item names/quantities are displayed"
)
default boolean enabled()
{
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.
private static final int INSANE_VALUE = 10_000_000;
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 GroundItemsConfig config;
@@ -94,11 +96,11 @@ public class GroundItemsOverlay extends Overlay
return null;
}
Widget bank = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER);
if (bank != null && !bank.isHidden())
{
return null;
}
//Widget bank = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER);
//if (bank != null && !bank.isHidden())
//{
// return null;
//}
Region region = client.getRegion();
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
ItemPrice itemPrice = itemManager.get(itemId);
if (itemPrice != null)
if (itemPrice != null && config.showGEPrice())
{
int cost = itemPrice.getPrice() * quantity;
// set the color according to rarity, if possible
@@ -211,6 +219,13 @@ public class GroundItemsOverlay extends Overlay
.append(" gp)");
}
if (config.showHAValue())
{
itemStringBuilder.append(" (HA: ")
.append(Math.round(item.getPrice() * HIGH_ALCHEMY_CONSTANT))
.append(" gp)");
}
String itemString = itemStringBuilder.toString();
itemStringBuilder.setLength(0);

View File

@@ -27,11 +27,61 @@ package net.runelite.rs.api;
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
{
/**
* Returns the item's name as a string.
* @return the name of the item
*/
@Import("name")
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")
boolean isMembers();