aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/cowtipper/cowlection/util
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2020-12-29 14:06:37 +0100
committerCow <cow@volloeko.de>2020-12-29 14:06:37 +0100
commit91975bf22481edb0f74c204a7b847baac3830736 (patch)
tree43bc001237f4ec874a4934dffedb8232d29fffe3 /src/main/java/de/cowtipper/cowlection/util
parente1c46e5fbad592241dc21b7297f8a982ea4b347f (diff)
downloadCowlection-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.java26
-rw-r--r--src/main/java/de/cowtipper/cowlection/util/Utils.java66
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);
+ }
}