Merge pull request #52 from Aiadan/metal-info-box
Added an info box for Giants' Foundry
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.toofifty.easygiantsfoundry;
|
package com.toofifty.easygiantsfoundry;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
|
||||||
import net.runelite.client.config.Config;
|
import net.runelite.client.config.Config;
|
||||||
import net.runelite.client.config.ConfigGroup;
|
import net.runelite.client.config.ConfigGroup;
|
||||||
import net.runelite.client.config.ConfigItem;
|
import net.runelite.client.config.ConfigItem;
|
||||||
@@ -509,6 +510,78 @@ public interface EasyGiantsFoundryConfig extends Config
|
|||||||
return Color.CYAN;
|
return Color.CYAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = -100,
|
||||||
|
keyName = "alwaysShowInfoPanel",
|
||||||
|
name = "Always show",
|
||||||
|
description = "Always show the info panel, even outside of Giants' Foundry.",
|
||||||
|
section = infoPanelList
|
||||||
|
)
|
||||||
|
default boolean alwaysDrawInfoPanel()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = 100,
|
||||||
|
keyName = "drawMetals",
|
||||||
|
name = "Metals",
|
||||||
|
description = "Show total metals count in the info panel.",
|
||||||
|
section = infoPanelList
|
||||||
|
)
|
||||||
|
default boolean drawMetals()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = 101,
|
||||||
|
keyName = "drawAllMetals",
|
||||||
|
name = "Metals: show all",
|
||||||
|
description = "Show rows for metals even if you don't have any of that type.",
|
||||||
|
section = infoPanelList
|
||||||
|
)
|
||||||
|
default boolean drawAllMetals()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = 110,
|
||||||
|
keyName = "countOre",
|
||||||
|
name = "Metals: count ore",
|
||||||
|
description = "Include raw ores in the metals count.",
|
||||||
|
section = infoPanelList
|
||||||
|
)
|
||||||
|
default boolean countOre()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = 111,
|
||||||
|
keyName = "countBars",
|
||||||
|
name = "Metals: count bars",
|
||||||
|
description = "Include smelted bars in the metals count.",
|
||||||
|
section = infoPanelList
|
||||||
|
)
|
||||||
|
default boolean countBars()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ConfigItem(
|
||||||
|
position = 112,
|
||||||
|
keyName = "countEquipment",
|
||||||
|
name = "Metals: count equipment",
|
||||||
|
description = "Include equipment in the metals count.",
|
||||||
|
section = infoPanelList
|
||||||
|
)
|
||||||
|
default boolean countEquipment()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@ConfigSection(
|
@ConfigSection(
|
||||||
name = "Advanced",
|
name = "Advanced",
|
||||||
description = "Advanced Settings",
|
description = "Advanced Settings",
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import net.runelite.api.ChatMessageType;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.GameObject;
|
import net.runelite.api.GameObject;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.InventoryID;
|
import net.runelite.api.gameval.InventoryID;
|
||||||
import net.runelite.api.Item;
|
import net.runelite.api.Item;
|
||||||
import net.runelite.api.ItemContainer;
|
import net.runelite.api.ItemContainer;
|
||||||
import net.runelite.api.MenuAction;
|
import net.runelite.api.MenuAction;
|
||||||
@@ -75,6 +75,9 @@ public class EasyGiantsFoundryPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private EasyGiantsFoundryHelper helper;
|
private EasyGiantsFoundryHelper helper;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private MetalBarCounter metalBarCounter;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private OverlayManager overlayManager;
|
private OverlayManager overlayManager;
|
||||||
|
|
||||||
@@ -118,6 +121,7 @@ public class EasyGiantsFoundryPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
overlayManager.remove(overlay2d);
|
overlayManager.remove(overlay2d);
|
||||||
overlayManager.remove(overlay3d);
|
overlayManager.remove(overlay3d);
|
||||||
|
metalBarCounter.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
@@ -253,7 +257,7 @@ public class EasyGiantsFoundryPlugin extends Plugin
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
public void onItemContainerChanged(ItemContainerChanged event)
|
public void onItemContainerChanged(ItemContainerChanged event)
|
||||||
{
|
{
|
||||||
if (event.getContainerId() == InventoryID.EQUIPMENT.getId())
|
if (event.getContainerId() == InventoryID.WORN)
|
||||||
{
|
{
|
||||||
if (event.getItemContainer().count(PREFORM) == 0)
|
if (event.getItemContainer().count(PREFORM) == 0)
|
||||||
{
|
{
|
||||||
@@ -265,6 +269,10 @@ public class EasyGiantsFoundryPlugin extends Plugin
|
|||||||
updateSmithsOutfitPieces();
|
updateSmithsOutfitPieces();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (event.getContainerId() == InventoryID.INV || event.getContainerId() == InventoryID.BANK)
|
||||||
|
{
|
||||||
|
metalBarCounter.put(event.getItemContainer());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||||
@@ -474,7 +482,7 @@ public class EasyGiantsFoundryPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
int pieces = 0;
|
int pieces = 0;
|
||||||
|
|
||||||
ItemContainer equipment = client.getItemContainer(InventoryID.EQUIPMENT);
|
ItemContainer equipment = client.getItemContainer(InventoryID.WORN);
|
||||||
if (equipment != null)
|
if (equipment != null)
|
||||||
{
|
{
|
||||||
for (Item item : equipment.getItems())
|
for (Item item : equipment.getItems())
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.toofifty.easygiantsfoundry;
|
package com.toofifty.easygiantsfoundry;
|
||||||
|
|
||||||
import static com.toofifty.easygiantsfoundry.EasyGiantsFoundryHelper.getHeatColor;
|
|
||||||
import com.toofifty.easygiantsfoundry.enums.Heat;
|
import com.toofifty.easygiantsfoundry.enums.Heat;
|
||||||
|
import com.toofifty.easygiantsfoundry.enums.MetalBarType;
|
||||||
import com.toofifty.easygiantsfoundry.enums.Stage;
|
import com.toofifty.easygiantsfoundry.enums.Stage;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
@@ -24,6 +24,7 @@ public class FoundryOverlay2D extends OverlayPanel
|
|||||||
private final Client client;
|
private final Client client;
|
||||||
private final EasyGiantsFoundryPlugin plugin;
|
private final EasyGiantsFoundryPlugin plugin;
|
||||||
private final EasyGiantsFoundryState state;
|
private final EasyGiantsFoundryState state;
|
||||||
|
private final MetalBarCounter metalBarCounter;
|
||||||
private final EasyGiantsFoundryConfig config;
|
private final EasyGiantsFoundryConfig config;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -31,11 +32,13 @@ public class FoundryOverlay2D extends OverlayPanel
|
|||||||
Client client,
|
Client client,
|
||||||
EasyGiantsFoundryPlugin plugin,
|
EasyGiantsFoundryPlugin plugin,
|
||||||
EasyGiantsFoundryState state,
|
EasyGiantsFoundryState state,
|
||||||
|
MetalBarCounter metalBarCounter,
|
||||||
EasyGiantsFoundryConfig config)
|
EasyGiantsFoundryConfig config)
|
||||||
{
|
{
|
||||||
this.client = client;
|
this.client = client;
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.state = state;
|
this.state = state;
|
||||||
|
this.metalBarCounter = metalBarCounter;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.setPosition(OverlayPosition.BOTTOM_LEFT);
|
this.setPosition(OverlayPosition.BOTTOM_LEFT);
|
||||||
}
|
}
|
||||||
@@ -68,7 +71,7 @@ public class FoundryOverlay2D extends OverlayPanel
|
|||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D graphics)
|
public Dimension render(Graphics2D graphics)
|
||||||
{
|
{
|
||||||
if (client.getLocalPlayer().getWorldLocation().getRegionID() != REGION_ID)
|
if (!config.alwaysDrawInfoPanel() && client.getLocalPlayer().getWorldLocation().getRegionID() != REGION_ID)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -79,6 +82,11 @@ public class FoundryOverlay2D extends OverlayPanel
|
|||||||
panelComponent.getChildren().add(TitleComponent.builder().text("Easy Giants' Foundry").build());
|
panelComponent.getChildren().add(TitleComponent.builder().text("Easy Giants' Foundry").build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.drawMetals())
|
||||||
|
{
|
||||||
|
drawMetals(graphics);
|
||||||
|
}
|
||||||
|
|
||||||
if (swordPickedUp)
|
if (swordPickedUp)
|
||||||
{
|
{
|
||||||
Heat heat = state.getCurrentHeat();
|
Heat heat = state.getCurrentHeat();
|
||||||
@@ -130,4 +138,37 @@ public class FoundryOverlay2D extends OverlayPanel
|
|||||||
|
|
||||||
return super.render(graphics);
|
return super.render(graphics);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void drawMetals(Graphics2D graphics2D)
|
||||||
|
{
|
||||||
|
if (!metalBarCounter.isSeenBank())
|
||||||
|
{
|
||||||
|
panelComponent.getChildren().add(
|
||||||
|
LineComponent.builder()
|
||||||
|
.left("Metals: open bank")
|
||||||
|
.leftColor(Color.RED)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
drawMetalCount(graphics2D, "Bronze bars:", metalBarCounter.get(MetalBarType.BRONZE));
|
||||||
|
drawMetalCount(graphics2D, "Iron bars:", metalBarCounter.get(MetalBarType.IRON));
|
||||||
|
drawMetalCount(graphics2D, "Steel bars:", metalBarCounter.get(MetalBarType.STEEL));
|
||||||
|
drawMetalCount(graphics2D, "Mithril bars:", metalBarCounter.get(MetalBarType.MITHRIL));
|
||||||
|
drawMetalCount(graphics2D, "Adamant bars:", metalBarCounter.get(MetalBarType.ADAMANT));
|
||||||
|
drawMetalCount(graphics2D, "Runite bars:", metalBarCounter.get(MetalBarType.RUNITE));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawMetalCount(Graphics2D graphics2D, String displayName, int count)
|
||||||
|
{
|
||||||
|
if (count > 0 || config.drawAllMetals())
|
||||||
|
{
|
||||||
|
panelComponent.getChildren().add(
|
||||||
|
LineComponent.builder()
|
||||||
|
.left(displayName)
|
||||||
|
.right(Integer.toString(count))
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,148 @@
|
|||||||
|
package com.toofifty.easygiantsfoundry;
|
||||||
|
|
||||||
|
import com.toofifty.easygiantsfoundry.enums.MetalBarSource;
|
||||||
|
import com.toofifty.easygiantsfoundry.enums.MetalBarType;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Value;
|
||||||
|
import net.runelite.api.Item;
|
||||||
|
import net.runelite.api.ItemContainer;
|
||||||
|
import net.runelite.api.gameval.InventoryID;
|
||||||
|
import net.runelite.api.gameval.ItemID;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class MetalBarCounter
|
||||||
|
{
|
||||||
|
private final Map<Integer, Map<MetalBarType, CountsBySource>> index = new HashMap<>(); // container id -> bar counts
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private EasyGiantsFoundryConfig config;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private boolean seenBank = false;
|
||||||
|
|
||||||
|
public int get(MetalBarType type)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
for (Map<MetalBarType, CountsBySource> counts : index.values())
|
||||||
|
{
|
||||||
|
count += counts.get(type).sum(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear()
|
||||||
|
{
|
||||||
|
index.clear();
|
||||||
|
seenBank = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void put(ItemContainer container)
|
||||||
|
{
|
||||||
|
int tinOre = 0;
|
||||||
|
int copperOre = 0;
|
||||||
|
int ironOre = 0;
|
||||||
|
|
||||||
|
if (container.getId() == InventoryID.BANK)
|
||||||
|
{
|
||||||
|
seenBank = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<MetalBarType, CountsBySource> counts = newCounts();
|
||||||
|
for (Item item : container.getItems())
|
||||||
|
{
|
||||||
|
MetalBarValues.Record record = MetalBarValues.get(item.getId());
|
||||||
|
if (record == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ore special cases:
|
||||||
|
// * add bronze bars equal to min(tin, copper)
|
||||||
|
// * there is an edge case here where it won't sum quite right multiple item containers but I don't really
|
||||||
|
// care to code for that right now
|
||||||
|
// * iron ore counts for both iron and steel
|
||||||
|
switch (item.getId())
|
||||||
|
{
|
||||||
|
case ItemID.TIN_ORE:
|
||||||
|
case ItemID.Cert.TIN_ORE:
|
||||||
|
tinOre += item.getQuantity();
|
||||||
|
break;
|
||||||
|
case ItemID.COPPER_ORE:
|
||||||
|
case ItemID.Cert.COPPER_ORE:
|
||||||
|
copperOre += item.getQuantity();
|
||||||
|
break;
|
||||||
|
case ItemID.IRON_ORE:
|
||||||
|
case ItemID.Cert.IRON_ORE:
|
||||||
|
ironOre += item.getQuantity();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
counts.compute(record.getType(), (k, v) ->
|
||||||
|
v.add(record.getSource(), record.getValue() * item.getQuantity()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int finalTinOre = tinOre;
|
||||||
|
int finalCopperOre = copperOre;
|
||||||
|
int finalIronOre = ironOre;
|
||||||
|
counts.compute(MetalBarType.BRONZE, (k, v) ->
|
||||||
|
v.add(MetalBarSource.ORE, Math.min(finalTinOre, finalCopperOre)));
|
||||||
|
counts.compute(MetalBarType.IRON, (k, v) ->
|
||||||
|
v.add(MetalBarSource.ORE, finalIronOre));
|
||||||
|
counts.compute(MetalBarType.STEEL, (k, v) ->
|
||||||
|
v.add(MetalBarSource.ORE, finalIronOre));
|
||||||
|
|
||||||
|
index.put(container.getId(), counts);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<MetalBarType, CountsBySource> newCounts()
|
||||||
|
{
|
||||||
|
Map<MetalBarType, CountsBySource> counts = new HashMap<>();
|
||||||
|
counts.put(MetalBarType.BRONZE, CountsBySource.empty());
|
||||||
|
counts.put(MetalBarType.IRON, CountsBySource.empty());
|
||||||
|
counts.put(MetalBarType.STEEL, CountsBySource.empty());
|
||||||
|
counts.put(MetalBarType.MITHRIL, CountsBySource.empty());
|
||||||
|
counts.put(MetalBarType.ADAMANT, CountsBySource.empty());
|
||||||
|
counts.put(MetalBarType.RUNITE, CountsBySource.empty());
|
||||||
|
return counts;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Value
|
||||||
|
private static class CountsBySource
|
||||||
|
{
|
||||||
|
int ores, bars, equipment;
|
||||||
|
|
||||||
|
public static CountsBySource empty()
|
||||||
|
{
|
||||||
|
return new CountsBySource(0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountsBySource add(MetalBarSource source, int count)
|
||||||
|
{
|
||||||
|
switch (source)
|
||||||
|
{
|
||||||
|
case ORE:
|
||||||
|
return new CountsBySource(ores + count, bars, equipment);
|
||||||
|
case BAR:
|
||||||
|
return new CountsBySource(ores, bars + count, equipment);
|
||||||
|
case EQUIPMENT:
|
||||||
|
return new CountsBySource(ores, bars, equipment + count);
|
||||||
|
default:
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int sum(EasyGiantsFoundryConfig config)
|
||||||
|
{
|
||||||
|
int sum = config.countOre() ? ores : 0;
|
||||||
|
sum += config.countBars() ? bars : 0;
|
||||||
|
sum += config.countEquipment() ? equipment : 0;
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
238
src/main/java/com/toofifty/easygiantsfoundry/MetalBarValues.java
Normal file
238
src/main/java/com/toofifty/easygiantsfoundry/MetalBarValues.java
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
package com.toofifty.easygiantsfoundry;
|
||||||
|
|
||||||
|
import com.toofifty.easygiantsfoundry.enums.MetalBarSource;
|
||||||
|
import com.toofifty.easygiantsfoundry.enums.MetalBarType;
|
||||||
|
import lombok.Value;
|
||||||
|
import net.runelite.api.gameval.ItemID;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class MetalBarValues
|
||||||
|
{
|
||||||
|
private static final HashMap<Integer, Record> values = new HashMap<>();
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
// tin, copper, and iron are included here so the counter doesn't ignore them, but their actual counts are
|
||||||
|
// handled as special cases
|
||||||
|
putOre(ItemID.TIN_ORE, MetalBarType.BRONZE);
|
||||||
|
putOre(ItemID.COPPER_ORE, MetalBarType.BRONZE);
|
||||||
|
putOre(ItemID.IRON_BAR, MetalBarType.IRON);
|
||||||
|
putOre(ItemID.MITHRIL_ORE, MetalBarType.MITHRIL);
|
||||||
|
putOre(ItemID.ADAMANTITE_ORE, MetalBarType.ADAMANT);
|
||||||
|
putOre(ItemID.RUNITE_ORE, MetalBarType.RUNITE);
|
||||||
|
putOre(ItemID.Cert.TIN_ORE, MetalBarType.BRONZE);
|
||||||
|
putOre(ItemID.Cert.COPPER_ORE, MetalBarType.BRONZE);
|
||||||
|
putOre(ItemID.Cert.IRON_BAR, MetalBarType.IRON);
|
||||||
|
putOre(ItemID.Cert.MITHRIL_ORE, MetalBarType.MITHRIL);
|
||||||
|
putOre(ItemID.Cert.ADAMANTITE_ORE, MetalBarType.ADAMANT);
|
||||||
|
putOre(ItemID.Cert.RUNITE_ORE, MetalBarType.RUNITE);
|
||||||
|
|
||||||
|
putBar(ItemID.BRONZE_BAR, MetalBarType.BRONZE);
|
||||||
|
putBar(ItemID.IRON_BAR, MetalBarType.IRON);
|
||||||
|
putBar(ItemID.STEEL_BAR, MetalBarType.STEEL);
|
||||||
|
putBar(ItemID.MITHRIL_BAR, MetalBarType.MITHRIL);
|
||||||
|
putBar(ItemID.ADAMANTITE_BAR, MetalBarType.ADAMANT);
|
||||||
|
putBar(ItemID.RUNITE_BAR, MetalBarType.RUNITE);
|
||||||
|
putBar(ItemID.Cert.BRONZE_BAR, MetalBarType.BRONZE);
|
||||||
|
putBar(ItemID.Cert.IRON_BAR, MetalBarType.IRON);
|
||||||
|
putBar(ItemID.Cert.STEEL_BAR, MetalBarType.STEEL);
|
||||||
|
putBar(ItemID.Cert.MITHRIL_BAR, MetalBarType.MITHRIL);
|
||||||
|
putBar(ItemID.Cert.ADAMANTITE_BAR, MetalBarType.ADAMANT);
|
||||||
|
putBar(ItemID.Cert.RUNITE_BAR, MetalBarType.RUNITE);
|
||||||
|
|
||||||
|
putEquipment(ItemID.BRONZE_SCIMITAR, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.BRONZE_LONGSWORD, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.BRONZE_FULL_HELM, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.BRONZE_SQ_SHIELD, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.BRONZE_CLAWS, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.BRONZE_WARHAMMER, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_BATTLEAXE, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_CHAINBODY, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_KITESHIELD, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_2H_SWORD, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_PLATELEGS, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_PLATESKIRT, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.BRONZE_PLATEBODY, MetalBarType.BRONZE, 4);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_SCIMITAR, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_LONGSWORD, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_FULL_HELM, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_SQ_SHIELD, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_CLAWS, MetalBarType.BRONZE, 1);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_WARHAMMER, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_BATTLEAXE, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_CHAINBODY, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_KITESHIELD, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_2H_SWORD, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_PLATELEGS, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_PLATESKIRT, MetalBarType.BRONZE, 2);
|
||||||
|
putEquipment(ItemID.Cert.BRONZE_PLATEBODY, MetalBarType.BRONZE, 4);
|
||||||
|
|
||||||
|
putEquipment(ItemID.IRON_SCIMITAR, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.IRON_LONGSWORD, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.IRON_FULL_HELM, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.IRON_SQ_SHIELD, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.IRON_CLAWS, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.IRON_WARHAMMER, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_BATTLEAXE, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_CHAINBODY, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_KITESHIELD, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_2H_SWORD, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_PLATELEGS, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_PLATESKIRT, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.IRON_PLATEBODY, MetalBarType.IRON, 4);
|
||||||
|
putEquipment(ItemID.Cert.IRON_SCIMITAR, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.Cert.IRON_LONGSWORD, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.Cert.IRON_FULL_HELM, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.Cert.IRON_SQ_SHIELD, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.Cert.IRON_CLAWS, MetalBarType.IRON, 1);
|
||||||
|
putEquipment(ItemID.Cert.IRON_WARHAMMER, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_BATTLEAXE, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_CHAINBODY, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_KITESHIELD, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_2H_SWORD, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_PLATELEGS, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_PLATESKIRT, MetalBarType.IRON, 2);
|
||||||
|
putEquipment(ItemID.Cert.IRON_PLATEBODY, MetalBarType.IRON, 4);
|
||||||
|
|
||||||
|
putEquipment(ItemID.STEEL_SCIMITAR, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.STEEL_LONGSWORD, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.STEEL_FULL_HELM, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.STEEL_SQ_SHIELD, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.STEEL_CLAWS, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.STEEL_WARHAMMER, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_BATTLEAXE, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_CHAINBODY, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_KITESHIELD, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_2H_SWORD, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_PLATELEGS, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_PLATESKIRT, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.STEEL_PLATEBODY, MetalBarType.STEEL, 4);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_SCIMITAR, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_LONGSWORD, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_FULL_HELM, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_SQ_SHIELD, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_CLAWS, MetalBarType.STEEL, 1);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_WARHAMMER, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_BATTLEAXE, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_CHAINBODY, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_KITESHIELD, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_2H_SWORD, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_PLATELEGS, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_PLATESKIRT, MetalBarType.STEEL, 2);
|
||||||
|
putEquipment(ItemID.Cert.STEEL_PLATEBODY, MetalBarType.STEEL, 4);
|
||||||
|
|
||||||
|
putEquipment(ItemID.MITHRIL_SCIMITAR, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.MITHRIL_LONGSWORD, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.MITHRIL_FULL_HELM, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.MITHRIL_SQ_SHIELD, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.MITHRIL_CLAWS, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.MITHRIL_WARHAMMER, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_BATTLEAXE, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_CHAINBODY, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_KITESHIELD, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_2H_SWORD, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_PLATELEGS, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_PLATESKIRT, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.MITHRIL_PLATEBODY, MetalBarType.MITHRIL, 4);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_SCIMITAR, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_LONGSWORD, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_FULL_HELM, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_SQ_SHIELD, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_CLAWS, MetalBarType.MITHRIL, 1);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_WARHAMMER, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_BATTLEAXE, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_CHAINBODY, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_KITESHIELD, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_2H_SWORD, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_PLATELEGS, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_PLATESKIRT, MetalBarType.MITHRIL, 2);
|
||||||
|
putEquipment(ItemID.Cert.MITHRIL_PLATEBODY, MetalBarType.MITHRIL, 4);
|
||||||
|
|
||||||
|
putEquipment(ItemID.ADAMANT_SCIMITAR, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.ADAMANT_LONGSWORD, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.ADAMANT_FULL_HELM, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.ADAMANT_SQ_SHIELD, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.ADAMANT_CLAWS, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.ADAMNT_WARHAMMER, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_BATTLEAXE, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_CHAINBODY, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_KITESHIELD, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_2H_SWORD, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_PLATELEGS, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_PLATESKIRT, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.ADAMANT_PLATEBODY, MetalBarType.ADAMANT, 4);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_SCIMITAR, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_LONGSWORD, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_FULL_HELM, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_SQ_SHIELD, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_CLAWS, MetalBarType.ADAMANT, 1);
|
||||||
|
putEquipment(ItemID.Cert.ADAMNT_WARHAMMER, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_BATTLEAXE, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_CHAINBODY, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_KITESHIELD, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_2H_SWORD, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_PLATELEGS, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_PLATESKIRT, MetalBarType.ADAMANT, 2);
|
||||||
|
putEquipment(ItemID.Cert.ADAMANT_PLATEBODY, MetalBarType.ADAMANT, 4);
|
||||||
|
|
||||||
|
putEquipment(ItemID.RUNE_SCIMITAR, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.RUNE_LONGSWORD, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.RUNE_FULL_HELM, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.RUNE_SQ_SHIELD, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.RUNE_CLAWS, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.RUNE_WARHAMMER, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_BATTLEAXE, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_CHAINBODY, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_KITESHIELD, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_2H_SWORD, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_PLATELEGS, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_PLATESKIRT, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.RUNE_PLATEBODY, MetalBarType.RUNITE, 4);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_SCIMITAR, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_LONGSWORD, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_FULL_HELM, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_SQ_SHIELD, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_CLAWS, MetalBarType.RUNITE, 1);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_WARHAMMER, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_BATTLEAXE, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_CHAINBODY, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_KITESHIELD, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_2H_SWORD, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_PLATELEGS, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_PLATESKIRT, MetalBarType.RUNITE, 2);
|
||||||
|
putEquipment(ItemID.Cert.RUNE_PLATEBODY, MetalBarType.RUNITE, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Value
|
||||||
|
public static class Record
|
||||||
|
{
|
||||||
|
MetalBarType type;
|
||||||
|
MetalBarSource source;
|
||||||
|
int value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Record get(int id)
|
||||||
|
{
|
||||||
|
return values.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void putOre(int id, MetalBarType type)
|
||||||
|
{
|
||||||
|
values.put(id, new Record(type, MetalBarSource.ORE, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void putBar(int id, MetalBarType type)
|
||||||
|
{
|
||||||
|
values.put(id, new Record(type, MetalBarSource.BAR, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void putEquipment(int id, MetalBarType type, int value)
|
||||||
|
{
|
||||||
|
values.put(id, new Record(type, MetalBarSource.EQUIPMENT, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
private MetalBarValues()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.toofifty.easygiantsfoundry.enums;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public enum Location {
|
||||||
|
GIANTS_FOUNDRY("Giants' Foundry"),
|
||||||
|
EVERYWHERE("Everywhere"),
|
||||||
|
NOWHERE("Nowhere");
|
||||||
|
|
||||||
|
private final String type;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.toofifty.easygiantsfoundry.enums;
|
||||||
|
|
||||||
|
public enum MetalBarSource
|
||||||
|
{
|
||||||
|
ORE,
|
||||||
|
BAR,
|
||||||
|
EQUIPMENT,
|
||||||
|
;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.toofifty.easygiantsfoundry.enums;
|
||||||
|
|
||||||
|
public enum MetalBarType
|
||||||
|
{
|
||||||
|
BRONZE,
|
||||||
|
IRON,
|
||||||
|
STEEL,
|
||||||
|
MITHRIL,
|
||||||
|
ADAMANT,
|
||||||
|
RUNITE,
|
||||||
|
;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user