aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/render
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-02-18 03:09:38 +0900
committerGitHub <noreply@github.com>2023-02-17 19:09:38 +0100
commite64166c670b7f4e2c37e3cfffb3b4d0a0e7b9f79 (patch)
treee7a3a4b1884554973721c8417224928654ee78d1 /src/main/java/gregtech/common/render
parent61f625feacb5282bb5dcb2c0998d2adfe8a86c93 (diff)
downloadGT5-Unofficial-e64166c670b7f4e2c37e3cfffb3b4d0a0e7b9f79.tar.gz
GT5-Unofficial-e64166c670b7f4e2c37e3cfffb3b4d0a0e7b9f79.tar.bz2
GT5-Unofficial-e64166c670b7f4e2c37e3cfffb3b4d0a0e7b9f79.zip
Add Hodgepodge compat (#1752)
* Add Hodgepodge compat * cleanup * Fix for fluid inside large cell
Diffstat (limited to 'src/main/java/gregtech/common/render')
-rw-r--r--src/main/java/gregtech/common/render/CosmicItemRendererGT.java74
-rw-r--r--src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java1
-rw-r--r--src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java16
-rw-r--r--src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java15
-rw-r--r--src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java2
-rw-r--r--src/main/java/gregtech/common/render/items/UniversiumRenderer.java12
6 files changed, 31 insertions, 89 deletions
diff --git a/src/main/java/gregtech/common/render/CosmicItemRendererGT.java b/src/main/java/gregtech/common/render/CosmicItemRendererGT.java
deleted file mode 100644
index cea0fd684f..0000000000
--- a/src/main/java/gregtech/common/render/CosmicItemRendererGT.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package gregtech.common.render;
-
-import java.util.*;
-
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.client.MinecraftForgeClient;
-import net.minecraftforge.oredict.OreDictionary;
-
-import fox.spiteful.avaritia.render.CosmicItemRenderer;
-
-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);
- }
-}
diff --git a/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java b/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
index 5a67abf85a..125c692353 100644
--- a/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
+++ b/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
@@ -34,6 +34,7 @@ public class CosmicNeutroniumRenderer extends GT_GeneratedMaterial_Renderer {
return;
}
+ markNeedsAnimationUpdate(haloFuzzy);
GL11.glPushMatrix();
// Ideally this magic haloColour number should scale depending on the # of transparent pixels,
diff --git a/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java b/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java
index 7559580f96..436b9c4422 100644
--- a/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java
+++ b/src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java
@@ -16,6 +16,9 @@ import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
+import com.mitchej123.hodgepodge.textures.IPatchedTextureAtlasSprite;
+
+import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.items.GT_MetaGenerated_Item;
@@ -71,6 +74,8 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
if (tIcon == null) tIcon = Textures.ItemIcons.RENDERING_ERROR.getIcon();
+ markNeedsAnimationUpdate(tIcon);
+
ItemList largeFluidCell = getLargeFluidCell(aStack);
if (largeFluidCell != null) {
renderLargeFluidCellExtraParts(type, largeFluidCell, aStack);
@@ -109,8 +114,7 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
return null;
}
- private static void renderLargeFluidCellExtraParts(IItemRenderer.ItemRenderType type, ItemList item,
- ItemStack stack) {
+ private void renderLargeFluidCellExtraParts(IItemRenderer.ItemRenderType type, ItemList item, ItemStack stack) {
IIcon inner;
if (item == Large_Fluid_Cell_Steel) inner = ExtraIcons.steelLargeCellInner;
@@ -125,6 +129,7 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
// Empty inner side
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
+ markNeedsAnimationUpdate(inner);
if (type.equals(ItemRenderType.INVENTORY)) {
GT_RenderUtil.renderItemIcon(inner, 16.0D, -0.001D, 0.0F, 0.0F, -1.0F);
} else {
@@ -146,6 +151,7 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
int fluidColor = fluidStack.getFluid().getColor(fluidStack);
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
+ markNeedsAnimationUpdate(fluidIcon);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glDepthFunc(GL11.GL_EQUAL);
GL11.glColor3ub((byte) (fluidColor >> 16), (byte) (fluidColor >> 8), (byte) fluidColor);
@@ -174,4 +180,10 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
return internal.getItem() == stack.getItem() && internal.getItemDamage() == stack.getItemDamage();
}
+
+ protected void markNeedsAnimationUpdate(IIcon icon) {
+ if (GregTech_API.mHodgepodge && icon instanceof IPatchedTextureAtlasSprite) {
+ ((IPatchedTextureAtlasSprite) icon).markNeedsAnimationUpdate();
+ }
+ }
}
diff --git a/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java b/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java
index 46d6a13469..e0ff69e216 100644
--- a/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java
+++ b/src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java
@@ -11,6 +11,10 @@ import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
import codechicken.lib.render.TextureUtils;
+
+import com.mitchej123.hodgepodge.textures.IPatchedTextureAtlasSprite;
+
+import gregtech.api.GregTech_API;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.items.GT_MetaGenerated_Item;
import gregtech.api.util.GT_Utility;
@@ -36,7 +40,7 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
* {@link IItemRenderer#renderItem(ItemRenderType, ItemStack, Object...)} verbatim. Do not modify the argument.
*
* While this is called, BLEND and ALPHA_TEST is on. It is expected that these remain enabled while exit.
- *
+ *
* @return true if did special fluid display rendering. false otherwise.
*/
public boolean renderFluidDisplayItem(ItemRenderType type, ItemStack aStack, Object... data) {
@@ -63,12 +67,14 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
GL11.glEnable(GL11.GL_ALPHA_TEST);
if (tIcon != null) {
+ markNeedsAnimationUpdate(tIcon);
renderRegularItem(type, aStack, tIcon, aFluid == null);
}
if (tOverlay != null && aFluid != null && aFluid.getFluid() != null) {
IIcon fluidIcon = aFluid.getFluid().getIcon(aFluid);
if (fluidIcon != null) {
+ markNeedsAnimationUpdate(fluidIcon);
// Adds colour to a cells fluid. Does not colour full fluid icons as shown in NEI etc.
renderContainedFluid(type, aFluid, fluidIcon);
}
@@ -77,6 +83,7 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
if (tOverlay != null) {
GL11.glColor3f(1.0F, 1.0F, 1.0F);
TextureUtils.bindAtlas(aItem.getSpriteNumber());
+ markNeedsAnimationUpdate(tOverlay);
if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
} else {
@@ -140,4 +147,10 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
}
GL11.glDepthFunc(GL11.GL_LEQUAL);
}
+
+ protected void markNeedsAnimationUpdate(IIcon icon) {
+ if (GregTech_API.mHodgepodge && icon instanceof IPatchedTextureAtlasSprite) {
+ ((IPatchedTextureAtlasSprite) icon).markNeedsAnimationUpdate();
+ }
+ }
}
diff --git a/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java b/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java
index b255fbab9c..19b14e7d6d 100644
--- a/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java
+++ b/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java
@@ -16,7 +16,7 @@ import gregtech.api.util.GT_Utility;
public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
- private final IItemRenderer mItemRenderer = new GT_GeneratedItem_Renderer();;
+ private final IItemRenderer mItemRenderer = new GT_GeneratedItem_Renderer();
private final IItemRenderer mMaterialRenderer = new GT_GeneratedMaterial_Renderer();
public GT_MetaGenerated_Item_Renderer() {
diff --git a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
index d7b1aced36..ff5171b998 100644
--- a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
+++ b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
@@ -267,17 +267,7 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
}
break;
}
- case EQUIPPED: {
- EntityLivingBase ent = (EntityLivingBase) (data[1]);
- if (ent != null) {
- CosmicRenderStuffs.setLightFromLocation(
- ent.worldObj,
- MathHelper.floor_double(ent.posX),
- MathHelper.floor_double(ent.posY),
- MathHelper.floor_double(ent.posZ));
- }
- break;
- }
+ case EQUIPPED:
case EQUIPPED_FIRST_PERSON: {
EntityLivingBase ent = (EntityLivingBase) (data[1]);
if (ent != null) {