Merge pull request #5694 from deathbeam/examine-placeholder

Make examine work for placeholder IDs and smithing interface
This commit is contained in:
Tomas Slusny
2018-09-29 09:47:35 +02:00
committed by GitHub
3 changed files with 22 additions and 7 deletions

View File

@@ -66,6 +66,7 @@ public class WidgetID
public static final int QUICK_PRAYERS_GROUP_ID = 77;
public static final int SHOP_GROUP_ID = 300;
public static final int SHOP_INVENTORY_GROUP_ID = 301;
public static final int SMITHING_GROUP_ID = 312;
public static final int GUIDE_PRICES_GROUP_ID = 464;
public static final int GUIDE_PRICES_INVENTORY_GROUP_ID = 238;
public static final int COMBAT_GROUP_ID = 593;
@@ -229,6 +230,11 @@ public class WidgetID
static final int INVENTORY_ITEM_CONTAINER = 0;
}
static class Smithing
{
static final int INVENTORY_ITEM_CONTAINER = 0;
}
static class GuidePrices
{
static final int ITEM_CONTAINER = 2;

View File

@@ -135,6 +135,8 @@ public enum WidgetInfo
SHOP_ITEMS_CONTAINER(WidgetID.SHOP_GROUP_ID, WidgetID.Shop.ITEMS_CONTAINER),
SHOP_INVENTORY_ITEMS_CONTAINER(WidgetID.SHOP_INVENTORY_GROUP_ID, WidgetID.Shop.INVENTORY_ITEM_CONTAINER),
SMITHING_INVENTORY_ITEMS_CONTAINER(WidgetID.SMITHING_GROUP_ID, WidgetID.Smithing.INVENTORY_ITEM_CONTAINER),
GUIDE_PRICES_ITEMS_CONTAINER(WidgetID.GUIDE_PRICES_GROUP_ID, WidgetID.GuidePrices.ITEM_CONTAINER),
GUIDE_PRICES_INVENTORY_ITEMS_CONTAINER(WidgetID.GUIDE_PRICES_INVENTORY_GROUP_ID, WidgetID.GuidePrices.INVENTORY_ITEM_CONTAINER),

View File

@@ -219,6 +219,15 @@ public class ExaminePlugin extends Plugin
itemId = widgetItem.getItemId();
}
}
else if (WidgetInfo.SMITHING_INVENTORY_ITEMS_CONTAINER.getGroupId() == widgetGroup)
{
Widget widgetItem = widget.getChild(2);
if (widgetItem != null)
{
quantity = widgetItem.getItemQuantity();
itemId = widgetItem.getItemId();
}
}
else if (WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER.getGroupId() == widgetGroup
|| WidgetInfo.RUNE_POUCH_ITEM_CONTAINER.getGroupId() == widgetGroup)
{
@@ -261,17 +270,15 @@ public class ExaminePlugin extends Plugin
if (itemComposition != null)
{
executor.submit(() -> getItemPrice(itemComposition, itemQuantity));
final int id = itemManager.canonicalize(itemComposition.getId());
executor.submit(() -> getItemPrice(id, itemComposition, itemQuantity));
}
}
private void getItemPrice(ItemComposition itemComposition, int quantity)
private void getItemPrice(int id, ItemComposition itemComposition, int quantity)
{
// convert to unnoted id
final boolean note = itemComposition.getNote() != -1;
final int id = note ? itemComposition.getLinkedNoteId() : itemComposition.getId();
// quantity is at least 1
quantity = Math.max(1, quantity);
int itemCompositionPrice = itemComposition.getPrice();
final int gePrice = itemManager.getItemPrice(id);
final int alchPrice = itemCompositionPrice <= 0 ? 0 : Math.round(itemCompositionPrice * HIGH_ALCHEMY_CONSTANT);