diff options
| author | miozune <miozune@gmail.com> | 2023-02-18 03:09:38 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-17 19:09:38 +0100 |
| commit | e64166c670b7f4e2c37e3cfffb3b4d0a0e7b9f79 (patch) | |
| tree | e7a3a4b1884554973721c8417224928654ee78d1 /src/main/java/gregtech/common/render/items | |
| parent | 61f625feacb5282bb5dcb2c0998d2adfe8a86c93 (diff) | |
| download | GT5-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/items')
5 files changed, 31 insertions, 15 deletions
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) { |
