diff options
| author | Cow <cow@volloeko.de> | 2020-12-29 14:06:37 +0100 |
|---|---|---|
| committer | Cow <cow@volloeko.de> | 2020-12-29 14:06:37 +0100 |
| commit | 91975bf22481edb0f74c204a7b847baac3830736 (patch) | |
| tree | 43bc001237f4ec874a4934dffedb8232d29fffe3 /src/main/java/de/cowtipper/cowlection/util | |
| parent | e1c46e5fbad592241dc21b7297f8a982ea4b347f (diff) | |
| download | Cowlection-91975bf22481edb0f74c204a7b847baac3830736.tar.gz Cowlection-91975bf22481edb0f74c204a7b847baac3830736.tar.bz2 Cowlection-91975bf22481edb0f74c204a7b847baac3830736.zip | |
Added quick lookup for item prices and wiki
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/util')
| -rw-r--r-- | src/main/java/de/cowtipper/cowlection/util/GuiHelper.java | 26 | ||||
| -rw-r--r-- | src/main/java/de/cowtipper/cowlection/util/Utils.java | 66 |
2 files changed, 79 insertions, 13 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/util/GuiHelper.java b/src/main/java/de/cowtipper/cowlection/util/GuiHelper.java index 44bfe13..8ce23e5 100644 --- a/src/main/java/de/cowtipper/cowlection/util/GuiHelper.java +++ b/src/main/java/de/cowtipper/cowlection/util/GuiHelper.java @@ -49,9 +49,9 @@ public final class GuiHelper extends GuiScreen { return instance; } - public static Slot getSlotUnderMouse(GuiChest guiChest) { + public static Slot getSlotUnderMouse(GuiContainer guiContainer) { try { - return ReflectionHelper.getPrivateValue(GuiContainer.class, guiChest, "theSlot", "field_147006_u"); + return ReflectionHelper.getPrivateValue(GuiContainer.class, guiContainer, "theSlot", "field_147006_u"); } catch (ReflectionHelper.UnableToAccessFieldException e) { e.printStackTrace(); return null; @@ -94,6 +94,17 @@ public final class GuiHelper extends GuiScreen { tessellator.draw(); } + public static void drawHoveringTextWithGraph(List<String> toolTip) { + int mouseX = Mouse.getX() * getInstance().width / getInstance().mc.displayWidth; + int mouseY = getInstance().height - Mouse.getY() * getInstance().height / getInstance().mc.displayHeight - 1; + ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); + + getInstance().width = scaledResolution.getScaledWidth(); + getInstance().height = scaledResolution.getScaledHeight(); + + getInstance().drawHoveringText(toolTip, mouseX, mouseY, scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight(), -1, true); + } + public static void drawHoveringText(List<String> textLines, int mouseX, int mouseY, int screenWidth, int screenHeight, int maxTextWidth) { if (ForgeVersion.getBuildVersion() < 1808) { // we're running a forge version from before 24 March 2016 (http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.8.9.html for reference) @@ -107,17 +118,6 @@ public final class GuiHelper extends GuiScreen { } } - public static void drawHoveringTextWithGraph(List<String> toolTip) { - int mouseX = Mouse.getX() * getInstance().width / getInstance().mc.displayWidth; - int mouseY = getInstance().height - Mouse.getY() * getInstance().height / getInstance().mc.displayHeight - 1; - ScaledResolution scaledResolution = new ScaledResolution(Minecraft.getMinecraft()); - - getInstance().width = scaledResolution.getScaledWidth(); - getInstance().height = scaledResolution.getScaledHeight(); - - getInstance().drawHoveringText(toolTip, mouseX, mouseY, scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight(), -1, true); - } - /** * Fixed method for forge versions older than 1.8.9-11.15.1.1808 * diff --git a/src/main/java/de/cowtipper/cowlection/util/Utils.java b/src/main/java/de/cowtipper/cowlection/util/Utils.java index 8e8723c..8f4989c 100644 --- a/src/main/java/de/cowtipper/cowlection/util/Utils.java +++ b/src/main/java/de/cowtipper/cowlection/util/Utils.java @@ -1,7 +1,9 @@ package de.cowtipper.cowlection.util; import com.mojang.realmsclient.util.Pair; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DurationFormatUtils; @@ -273,4 +275,68 @@ public final class Utils { .sorted(Map.Entry.comparingByKey()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> a, LinkedHashMap::new)); } + + public static Pair<String, String> extractSbItemBaseName(String originalItemName, NBTTagCompound extraAttributes, boolean strikethrough) { + String reforge = ""; + StringBuilder modifiedItemName = new StringBuilder(originalItemName); + String grayedOutFormatting = "" + EnumChatFormatting.GRAY + EnumChatFormatting.STRIKETHROUGH; + + if (extraAttributes.hasKey("modifier")) { + // item has been reforged; re-format item name to exclude reforges + reforge = StringUtils.capitalize(extraAttributes.getString("modifier")); + int modifierSuffix = Math.max(reforge.indexOf("_sword"), reforge.indexOf("_bow")); + if (modifierSuffix != -1) { + reforge = reforge.substring(0, modifierSuffix); + } + int reforgeInItemName = originalItemName.indexOf(reforge); + if (reforgeInItemName == -1 && reforge.equals("Light") && extraAttributes.getString("id").startsWith("HEAVY_")) { + // special case: heavy armor with light reforge + reforgeInItemName = originalItemName.indexOf("Heavy"); + } + + if (reforgeInItemName > 0 && !originalItemName.contains(EnumChatFormatting.STRIKETHROUGH.toString())) { + // we have a reforged item! remove reforge in item name and remove any essence upgrades (✪) + + int reforgeLength = reforge.length(); + String reforgePrefix = null; + // special cases for reforge + item name + if (reforge.equals("Heavy") && extraAttributes.getString("id").startsWith("HEAVY_")) { + reforgePrefix = "Extremely "; + } else if (reforge.equals("Light") && extraAttributes.getString("id").startsWith("HEAVY_")) { + reforgePrefix = "Not So "; + } else if ((reforge.equals("Wise") && extraAttributes.getString("id").startsWith("WISE_DRAGON_")) + || (reforge.equals("Strong") && extraAttributes.getString("id").startsWith("STRONG_DRAGON_"))) { + reforgePrefix = "Very "; + } else if (reforge.equals("Superior") && extraAttributes.getString("id").startsWith("SUPERIOR_DRAGON_")) { + reforgePrefix = "Highly "; + } else if (reforge.equals("Perfect") && extraAttributes.getString("id").startsWith("PERFECT_")) { + reforgePrefix = "Absolutely "; + } + if (reforgePrefix != null) { + reforgeInItemName -= reforgePrefix.length(); + reforgeLength = reforgePrefix.length() - 1; + } + + if (strikethrough) { + modifiedItemName.insert(reforgeInItemName, grayedOutFormatting) + .insert(reforgeInItemName + reforgeLength + grayedOutFormatting.length(), originalItemName.substring(0, reforgeInItemName)); + } else { + modifiedItemName.delete(reforgeInItemName, reforgeInItemName + reforgeLength); + } + } + } + // remove essence upgrade indicators (✪) + String essenceUpgradeIndicator = EnumChatFormatting.GOLD + "✪"; + int essenceModifier = modifiedItemName.indexOf(essenceUpgradeIndicator); + while (essenceModifier > 0) { + if (strikethrough) { + modifiedItemName.replace(essenceModifier, essenceModifier + essenceUpgradeIndicator.length(), grayedOutFormatting + "✪"); + } else { + modifiedItemName.delete(essenceModifier, essenceModifier + essenceUpgradeIndicator.length()); + } + essenceModifier = modifiedItemName.indexOf(essenceUpgradeIndicator); + } + + return Pair.of(modifiedItemName.toString().trim(), reforge); + } } |
