aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-02-20 01:59:03 +0900
committerGitHub <noreply@github.com>2023-02-19 17:59:03 +0100
commitdf8abec198820c0b03d615629dea0133e4ef6f20 (patch)
tree34b54ab460e00c6c13a25ea40e13883100945dfb /src/main/java
parent4fa9549f46eb883cff9a96346be38d73bca7c5f4 (diff)
downloadGT5-Unofficial-df8abec198820c0b03d615629dea0133e4ef6f20.tar.gz
GT5-Unofficial-df8abec198820c0b03d615629dea0133e4ef6f20.tar.bz2
GT5-Unofficial-df8abec198820c0b03d615629dea0133e4ef6f20.zip
Fix weirdness with custom renderers (#290)
Former-commit-id: 1fbd438fc1e30dceb7de5ac321fb76d20171e628
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java54
2 files changed, 35 insertions, 21 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java
index 30f1a6813f..99d4afb1e1 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/BW_MetaGenerated_Items.java
@@ -216,7 +216,7 @@ public class BW_MetaGenerated_Items extends GT_MetaGenerated_Item implements IRa
}
@Override
- public final IIcon getIconFromDamage(int aMetaData) {
+ public IIcon getIconFromDamage(int aMetaData) {
if (aMetaData < 0) return null;
Werkstoff tMaterial = werkstoffHashMap.get((short) aMetaData);
if (tMaterial == null) return null;
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
index 96bc459e91..c2c3730874 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/GT_Enhancement/BWGTMetaItems.java
@@ -26,6 +26,7 @@ import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
@@ -44,6 +45,7 @@ import gregtech.api.enums.TextureSet;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.common.render.items.GT_GeneratedMaterial_Renderer;
public class BWGTMetaItems extends BW_MetaGenerated_Items {
@@ -98,10 +100,7 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
private Materials getMaterial(ItemStack is) {
if (is == null || is.getItem() != this) return null;
final int meta = is.getItemDamage();
- Materials material;
- if (meta > 1000 && hasList) material = NoMetaValue.get(meta - 1001);
- else material = Materials.values()[meta];
- return material;
+ return getMaterialFromMeta(meta);
}
@Override
@@ -127,11 +126,12 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
@Override
public IIconContainer getIconContainer(int aMetaData) {
if (this.orePrefixes.mTextureIndex == -1) return getIconContainerBartWorks(aMetaData);
- if (aMetaData > 1000 && hasList)
- return NoMetaValue.get(aMetaData - 1001).mIconSet.mTextures[this.orePrefixes.mTextureIndex];
- if (aMetaData < 0 || aMetaData > Materials.values().length || Materials.values()[(short) aMetaData] == null)
+ Materials material = getMaterialFromMeta(aMetaData);
+ if (material != null) {
+ return material.mIconSet.mTextures[this.orePrefixes.mTextureIndex];
+ } else {
return null;
- return Materials.values()[(short) aMetaData].mIconSet.mTextures[this.orePrefixes.mTextureIndex];
+ }
}
@Override
@@ -142,14 +142,32 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
if (iconLink == null) return null;
- Materials material;
-
- if (aMetaData > 1000 && hasList) material = NoMetaValue.get(aMetaData - 1001);
- else material = Materials.values()[aMetaData];
+ Materials material = getMaterialFromMeta(aMetaData);
if (material == null || material.mIconSet == null) return null;
- return iconLink.get(material.mIconSet);
+ return iconLink.getOrDefault(material.mIconSet, iconLink.get(TextureSet.SET_DULL));
+ }
+
+ @Override
+ public IIcon getIconFromDamage(int aMetaData) {
+ return getIcon(aMetaData, 0);
+ }
+
+ @Override
+ public GT_GeneratedMaterial_Renderer getMaterialRenderer(int aMetaData) {
+ return getMaterialFromMeta(aMetaData).renderer;
+ }
+
+ public Materials getMaterialFromMeta(int aMetaData) {
+ if (aMetaData > 1000 && hasList) {
+ return NoMetaValue.get(aMetaData - 1001);
+ } else {
+ if (aMetaData < 0 || aMetaData >= Materials.values().length) {
+ return null;
+ }
+ return Materials.values()[aMetaData];
+ }
}
@Override
@@ -184,15 +202,12 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
@Override
public short[] getColorForGUI(ItemStack aStack) {
- if (aStack.getItemDamage() > 1000 && hasList) return NoMetaValue.get(aStack.getItemDamage() - 1001).mRGBa;
- return Materials.values()[aStack.getItemDamage()].mRGBa;
+ return getMaterial(aStack).mRGBa;
}
@Override
public String getNameForGUI(ItemStack aStack) {
- if (aStack.getItemDamage() > 1000 && hasList)
- return NoMetaValue.get(aStack.getItemDamage() - 1001).mDefaultLocalName;
- return Materials.values()[aStack.getItemDamage()].mDefaultLocalName;
+ return getMaterial(aStack).mDefaultLocalName;
}
@Override
@@ -200,8 +215,7 @@ public class BWGTMetaItems extends BW_MetaGenerated_Items {
@Override
public short[] getRGBa(ItemStack aStack) {
- if (aStack.getItemDamage() > 1000 && hasList) return NoMetaValue.get(aStack.getItemDamage() - 1001).mRGBa;
- return Materials.values()[aStack.getItemDamage()].mRGBa;
+ return getMaterial(aStack).mRGBa;
}
public boolean onEntityItemUpdate(EntityItem aItemEntity) {