aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/render')
-rw-r--r--src/main/java/gregtech/common/render/CosmicItemRendererGT.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/render/CosmicItemRendererGT.java b/src/main/java/gregtech/common/render/CosmicItemRendererGT.java
new file mode 100644
index 0000000000..0055e8ad08
--- /dev/null
+++ b/src/main/java/gregtech/common/render/CosmicItemRendererGT.java
@@ -0,0 +1,74 @@
+package gregtech.common.render;
+
+import java.util.*;
+
+import fox.spiteful.avaritia.render.CosmicItemRenderer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.client.MinecraftForgeClient;
+import net.minecraftforge.oredict.OreDictionary;
+
+public class CosmicItemRendererGT extends CosmicItemRenderer {
+
+ private static CosmicItemRendererGT sInstance = null;
+ public static HashMap<Item, List<Integer>> sCosmicItemRendererGtMapping = new HashMap<Item, List<Integer>>();
+ private static boolean sInit = false;
+
+ public static void registerItemWithMeta(Item aItem, List<Integer> aMeta) {
+ if (aItem != null) {
+ if (aMeta == null || aMeta.isEmpty()) {
+ ArrayList<Integer> aWildCard = new ArrayList<Integer>();
+ aWildCard.add(OreDictionary.WILDCARD_VALUE);
+ sCosmicItemRendererGtMapping.put(aItem, aWildCard);
+ }
+ else {
+ sCosmicItemRendererGtMapping.put(aItem, aMeta);
+ }
+ }
+ }
+
+ public static void registerItemWithMeta(Item aItem, int aMeta) {
+ if (aItem != null) {
+ ArrayList<Integer> aSingleMeta = new ArrayList<Integer>();
+ aSingleMeta.add(aMeta);
+ sCosmicItemRendererGtMapping.put(aItem, aSingleMeta);
+ }
+ }
+
+ public static void init() {
+ if (sInstance == null) {
+ sInstance = new CosmicItemRendererGT();
+ }
+ if (!sInit) {
+ for (Item aItem : sCosmicItemRendererGtMapping.keySet()) { MinecraftForgeClient.registerItemRenderer(aItem, sInstance); }
+ sInit = true;
+ }
+ }
+
+ private boolean isSupported(ItemStack aStack) {
+ List<Integer> aMeta = sCosmicItemRendererGtMapping.get(aStack.getItem());
+ if (aMeta != null && !aMeta.isEmpty()) {
+
+ for (int meta : aMeta) {
+ if (meta == OreDictionary.WILDCARD_VALUE) {
+ return true;
+ }
+ else {
+ if (aStack.getItemDamage() == meta) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
+ if (!isSupported(item)) {
+ return;
+ }
+ super.renderItem(type, item, data);
+ }
+
+}