aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util/GTUtilityClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util/GTUtilityClient.java')
-rw-r--r--src/main/java/gregtech/api/util/GTUtilityClient.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/util/GTUtilityClient.java b/src/main/java/gregtech/api/util/GTUtilityClient.java
new file mode 100644
index 0000000000..a6039e10d3
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GTUtilityClient.java
@@ -0,0 +1,52 @@
+package gregtech.api.util;
+
+import java.lang.reflect.Field;
+import java.util.List;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+import com.google.common.collect.Lists;
+
+import cpw.mods.fml.relauncher.ReflectionHelper;
+
+public class GTUtilityClient {
+
+ private static final Field isDrawingField = ReflectionHelper
+ .findField(Tessellator.class, "isDrawing", "field_78415_z");
+
+ public static boolean isDrawing(Tessellator tess) {
+ try {
+ return isDrawingField.getBoolean(tess);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public static List<String> getTooltip(ItemStack aStack, boolean aGuiStyle) {
+ try {
+ List<String> tooltip = aStack.getTooltip(
+ Minecraft.getMinecraft().thePlayer,
+ Minecraft.getMinecraft().gameSettings.advancedItemTooltips);
+ if (aGuiStyle) {
+ tooltip.set(
+ 0,
+ (aStack.getRarity() == null ? EnumRarity.common : aStack.getRarity()).rarityColor + tooltip.get(0));
+ for (int i = 1; i < tooltip.size(); i++) {
+ tooltip.set(i, EnumChatFormatting.GRAY + tooltip.get(i));
+ }
+ }
+ return tooltip;
+ } catch (RuntimeException e) {
+ // Collections.singletonList() can not be added to. we don't want that
+ if (aGuiStyle) return Lists.newArrayList(
+ (aStack.getRarity() == null ? EnumRarity.common : aStack.getRarity()).rarityColor
+ + aStack.getDisplayName());
+ return Lists.newArrayList(aStack.getDisplayName());
+ }
+ }
+}