aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java29
-rw-r--r--src/main/java/gregtech/api/util/GT_UtilityClient.java32
2 files changed, 59 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index a07868ec68..3b0ec94a92 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -3,6 +3,7 @@ package gregtech.api.util;
import cofh.api.transport.IItemDuct;
import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterators;
import com.google.common.collect.Maps;
import com.gtnewhorizon.structurelib.alignment.IAlignment;
import com.gtnewhorizon.structurelib.alignment.IAlignmentProvider;
@@ -104,7 +105,16 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.NumberFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Optional;
@@ -2425,7 +2435,18 @@ public class GT_Utility {
return false;
}
- public static class ItemNBT {
+ public static int findMatchingStackInList(List<ItemStack> aStacks, ItemStack aStack) {
+ if (isStackInvalid(aStack))
+ return -1;
+ for (int i = 0, aStacksSize = aStacks.size(); i < aStacksSize; i++) {
+ ItemStack tStack = aStacks.get(i);
+ if (areStacksEqual(aStack, tStack))
+ return i;
+ }
+ return -1;
+ }
+
+ public static class ItemNBT {
public static void setNBT(ItemStack aStack, NBTTagCompound aNBT) {
if (aNBT == null) {
aStack.setTagCompound(null);
@@ -2989,4 +3010,8 @@ public class GT_Utility {
public static long getNonnullElementCount(Object[] tArray) {
return Arrays.stream(tArray).filter(Objects::nonNull).count();
}
+
+ public static int clamp(int val, int lo, int hi) {
+ return val > hi ? hi : val < lo ? lo : val;
+ }
}
diff --git a/src/main/java/gregtech/api/util/GT_UtilityClient.java b/src/main/java/gregtech/api/util/GT_UtilityClient.java
new file mode 100644
index 0000000000..abad0e9e90
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_UtilityClient.java
@@ -0,0 +1,32 @@
+package gregtech.api.util;
+
+import com.google.common.collect.Lists;
+import net.minecraft.client.Minecraft;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+import java.util.List;
+
+public class GT_UtilityClient {
+
+ @SuppressWarnings("unchecked")
+ 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());
+ }
+ }
+
+}