Merge pull request #90 from abelbriggs1/patch
Changes/upgrades to GroundItems
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user