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/items/CosmicNeutroniumRenderer.java2
-rw-r--r--src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java40
-rw-r--r--src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java2
-rw-r--r--src/main/java/gregtech/common/render/items/InfinityRenderer.java124
-rw-r--r--src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java72
-rw-r--r--src/main/java/gregtech/common/render/items/UniversiumRenderer.java145
6 files changed, 175 insertions, 210 deletions
diff --git a/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java b/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
index c4d82efda3..5577e41d30 100644
--- a/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
+++ b/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
@@ -66,7 +66,7 @@ public class CosmicNeutroniumRenderer extends GT_GeneratedMaterial_Renderer {
}
@Override
- public void renderRegularItem(ItemRenderType type, ItemStack item, IIcon icon, boolean shouldModulateColor, int pass) {
+ protected void renderRegularItem(ItemRenderType type, ItemStack item, IIcon icon, boolean shouldModulateColor, int pass, Object... data) {
RenderItem r = RenderItem.getInstance();
GL11.glPushMatrix();
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 e01df95f05..faa0d70c7c 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
@@ -68,7 +68,7 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
if (tIcon != null) {
markNeedsAnimationUpdate(tIcon);
- renderRegularItem(type, aStack, tIcon, aFluid == null, pass);
+ renderRegularItem(type, aStack, tIcon, aFluid == null, pass, data);
}
if (tOverlay != null && aFluid != null && aFluid.getFluid() != null) {
@@ -84,31 +84,19 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
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 {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- tOverlay.getMaxU(),
- tOverlay.getMinV(),
- tOverlay.getMinU(),
- tOverlay.getMaxV(),
- tOverlay.getIconWidth(),
- tOverlay.getIconHeight(),
- 0.0625F);
- }
+ renderItemOverlay(type, tOverlay);
}
GL11.glDisable(GL11.GL_BLEND);
}
}
- public void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor,
- int pass) {
+ protected void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor,
+ int pass, Object... data) {
renderRegularItem(type, aStack, icon, shouldModulateColor);
}
- public void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor) {
+ protected void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor) {
if (!(aStack.getItem() instanceof IGT_ItemWithMaterialRenderer)) return;
IGT_ItemWithMaterialRenderer aItem = (IGT_ItemWithMaterialRenderer) aStack.getItem();
@@ -132,7 +120,7 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
}
}
- public void renderContainedFluid(ItemRenderType type, FluidStack aFluidStack, IIcon fluidIcon) {
+ protected void renderContainedFluid(ItemRenderType type, FluidStack aFluidStack, IIcon fluidIcon) {
Fluid aFluid = aFluidStack.getFluid();
int tColor = aFluid.getColor(aFluidStack);
GL11.glColor3f((tColor >> 16 & 0xFF) / 255.0F, (tColor >> 8 & 0xFF) / 255.0F, (tColor & 0xFF) / 255.0F);
@@ -155,6 +143,22 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
GL11.glDepthFunc(GL11.GL_LEQUAL);
}
+ protected void renderItemOverlay(ItemRenderType type, IIcon overlay) {
+ if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(overlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(
+ Tessellator.instance,
+ overlay.getMaxU(),
+ overlay.getMinV(),
+ overlay.getMinU(),
+ overlay.getMaxV(),
+ overlay.getIconWidth(),
+ overlay.getIconHeight(),
+ 0.0625F);
+ }
+ }
+
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/GaiaSpiritRenderer.java b/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java
index 25ab13bd25..5f226f6c98 100644
--- a/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java
+++ b/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java
@@ -15,7 +15,7 @@ import gregtech.common.render.GT_RenderUtil;
public class GaiaSpiritRenderer extends GT_GeneratedMaterial_Renderer {
@Override
- public void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor) {
+ protected void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor) {
long animationTicks = GT_Mod.gregtechproxy.getAnimationTicks();
float partialTicks = GT_Mod.gregtechproxy.getPartialRenderTicks();
diff --git a/src/main/java/gregtech/common/render/items/InfinityRenderer.java b/src/main/java/gregtech/common/render/items/InfinityRenderer.java
index 6a5bea393d..7450ff8fdb 100644
--- a/src/main/java/gregtech/common/render/items/InfinityRenderer.java
+++ b/src/main/java/gregtech/common/render/items/InfinityRenderer.java
@@ -2,35 +2,23 @@ package gregtech.common.render.items;
import java.util.Random;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.ItemRenderer;
-import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
-import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
-import org.lwjgl.opengl.GL12;
import codechicken.lib.render.TextureUtils;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
import gregtech.api.util.GT_Utility;
-import gregtech.common.render.GT_RenderUtil;
public class InfinityRenderer extends GT_GeneratedMaterial_Renderer {
public Random rand = new Random();
@Override
- public boolean handleRenderType(ItemStack item, ItemRenderType type) {
- return type == ItemRenderType.INVENTORY;
- }
-
- @Override
public void renderItem(ItemRenderType type, ItemStack aStack, Object... data) {
short aMetaData = (short) aStack.getItemDamage();
if (!(aStack.getItem() instanceof IGT_ItemWithMaterialRenderer)) return;
@@ -46,34 +34,49 @@ public class InfinityRenderer extends GT_GeneratedMaterial_Renderer {
IIcon tOverlay = aItem.getOverlayIcon(aMetaData, pass);
FluidStack aFluid = GT_Utility.getFluidForFilledItem(aStack, true);
+ GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_ALPHA_TEST);
- if (pass == 0) {
- renderHalo();
+ if (type == ItemRenderType.INVENTORY) {
+ if (pass == 0) {
+ renderHalo();
+ }
+ renderPulse(tOverlay, tIcon);
}
- if (tOverlay != null) {
- GL11.glColor3f(1.0F, 1.0F, 1.0F);
- TextureUtils.bindAtlas(aItem.getSpriteNumber());
- if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- } else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- tOverlay.getMaxU(),
- tOverlay.getMinV(),
- tOverlay.getMinU(),
- tOverlay.getMaxV(),
- tOverlay.getIconWidth(),
- tOverlay.getIconHeight(),
- 0.0625F);
- }
+ // Workaround for cell and comb:
+ // 1. BW capsule needs `renderContainedFluid` call as it doesn't have
+ // `materialicons/CUSTOM/infinity/capsuleMolten`
+ // 2. Without these 2 GL calls fluid texture leaks out of the cell / capsule
+ // 3. Comb texture doesn't like depth enabled
+ if (passes == 1) {
+ GL11.glEnable(GL11.GL_DEPTH_TEST);
}
+ 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);
+ }
+ }
+
+ if (tOverlay != null) {
+ GL11.glColor3f(1.0F, 1.0F, 1.0F);
+ TextureUtils.bindAtlas(aItem.getSpriteNumber());
+ markNeedsAnimationUpdate(tOverlay);
+ renderItemOverlay(type, tOverlay);
+ }
+
+ GL11.glDisable(GL11.GL_BLEND);
}
}
@@ -107,49 +110,28 @@ public class InfinityRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glPopMatrix();
}
- @Override
- public void renderRegularItem(ItemRenderType type, ItemStack item, IIcon icon, boolean shouldModulateColor) {
-
- RenderItem r = RenderItem.getInstance();
- Minecraft mc = Minecraft.getMinecraft();
+ private void renderPulse(IIcon... icons) {
Tessellator t = Tessellator.instance;
-
- GL11.glPushMatrix();
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- RenderHelper.enableGUIStandardItemLighting();
-
- GL11.glDisable(GL11.GL_ALPHA_TEST);
- GL11.glDisable(GL11.GL_DEPTH_TEST);
-
- GL11.glPushMatrix();
- double scale = (rand.nextGaussian() * 0.15) + 0.95;
+ double random = rand.nextGaussian();
+ double scale = (random * 0.15) + 0.95;
double offset = (1.0 - scale) / 2.0;
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glTranslated(offset * 16.0, offset * 16.0, 1.0);
- GL11.glScaled(scale, scale, 1.0);
-
- t.startDrawingQuads();
- t.setColorRGBA_F(1.0f, 1.0f, 1.0f, 0.6f);
- t.addVertexWithUV(0 - offset, 0 - offset, 0, icon.getMinU(), icon.getMinV());
- t.addVertexWithUV(0 - offset, 16 + offset, 0, icon.getMinU(), icon.getMaxV());
- t.addVertexWithUV(16 + offset, 16 + offset, 0, icon.getMaxU(), icon.getMaxV());
- t.addVertexWithUV(16 + offset, 0 - offset, 0, icon.getMaxU(), icon.getMinV());
- t.draw();
-
- GL11.glPopMatrix();
-
- r.renderItemIntoGUI(mc.fontRenderer, mc.getTextureManager(), item, 0, 0, true);
- GL11.glEnable(GL11.GL_ALPHA_TEST);
- GL11.glEnable(GL12.GL_RESCALE_NORMAL);
- GL11.glEnable(GL11.GL_DEPTH_TEST);
-
- r.renderWithColor = true;
-
- GL11.glDisable(GL11.GL_BLEND);
- RenderHelper.enableGUIStandardItemLighting();
-
- GL11.glPopMatrix();
+ for (IIcon icon : icons) {
+ if (icon == null) continue;
+ GL11.glPushMatrix();
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glTranslated(offset * 16.0, offset * 16.0, 1.0);
+ GL11.glScaled(scale, scale, 1.0);
+
+ t.startDrawingQuads();
+ t.setColorRGBA_F(1.0f, 1.0f, 1.0f, 0.6f);
+ t.addVertexWithUV(0 - offset, 0 - offset, 0, icon.getMinU(), icon.getMinV());
+ t.addVertexWithUV(0 - offset, 16 + offset, 0, icon.getMinU(), icon.getMaxV());
+ t.addVertexWithUV(16 + offset, 16 + offset, 0, icon.getMaxU(), icon.getMaxV());
+ t.addVertexWithUV(16 + offset, 0 - offset, 0, icon.getMaxU(), icon.getMinV());
+ t.draw();
+
+ GL11.glPopMatrix();
+ }
}
}
diff --git a/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java b/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java
index a7ad2cd19c..866c426e59 100644
--- a/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java
+++ b/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java
@@ -5,11 +5,15 @@ import net.minecraft.client.renderer.Tessellator;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.IItemRenderer;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
+import codechicken.lib.render.TextureUtils;
import gregtech.GT_Mod;
-import gregtech.api.items.GT_MetaGenerated_Item;
+import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
+import gregtech.api.util.GT_Util;
import gregtech.common.render.GT_RenderUtil;
public class TranscendentMetalRenderer extends GT_GeneratedMaterial_Renderer {
@@ -37,8 +41,48 @@ public class TranscendentMetalRenderer extends GT_GeneratedMaterial_Renderer {
}
@Override
- public void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor) {
+ protected void renderRegularItem(ItemRenderType type, ItemStack aStack, IIcon icon, boolean shouldModulateColor) {
GL11.glPushMatrix();
+ applyEffect(type, ((IGT_ItemWithMaterialRenderer) aStack.getItem()).getRGBa(aStack), shouldModulateColor);
+ super.renderRegularItem(type, aStack, icon, false);
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ protected void renderContainedFluid(ItemRenderType type, FluidStack aFluidStack, IIcon fluidIcon) {
+ GL11.glPushMatrix();
+
+ Fluid fluid = aFluidStack.getFluid();
+ applyEffect(type, GT_Util.getRGBaArray(fluid.getColor()), true);
+
+ TextureUtils.bindAtlas(fluid.getSpriteNumber());
+ GL11.glDepthFunc(GL11.GL_EQUAL);
+ if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(fluidIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(
+ Tessellator.instance,
+ fluidIcon.getMaxU(),
+ fluidIcon.getMinV(),
+ fluidIcon.getMinU(),
+ fluidIcon.getMaxV(),
+ fluidIcon.getIconWidth(),
+ fluidIcon.getIconHeight(),
+ 0.0625F);
+ }
+ GL11.glDepthFunc(GL11.GL_LEQUAL);
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ protected void renderItemOverlay(ItemRenderType type, IIcon overlay) {
+ GL11.glPushMatrix();
+ applyEffect(type, null, false);
+ super.renderItemOverlay(type, overlay);
+ GL11.glPopMatrix();
+ }
+
+ private void applyEffect(ItemRenderType type, short[] modulation, boolean shouldModulateColor) {
long animationTicks = GT_Mod.gregtechproxy.getAnimationTicks();
int frameCurrent = frameIndex[(int) (animationTicks / 2 % frameIndex.length)];
int frameNext = frameIndex[(int) ((animationTicks + 2) / 2 % frameIndex.length)];
@@ -55,33 +99,15 @@ public class TranscendentMetalRenderer extends GT_GeneratedMaterial_Renderer {
} else {
GL11.glTranslatef(-0.5f, -0.5f, 0.0f);
}
- GT_MetaGenerated_Item aItem = (GT_MetaGenerated_Item) aStack.getItem();
if (shouldModulateColor) {
- short[] tModulation = aItem.getRGBa(aStack);
GL11.glColor4f(
- tModulation[0] / 255.0F,
- tModulation[1] / 255.0F,
- tModulation[2] / 255.0F,
+ modulation[0] / 255.0F,
+ modulation[1] / 255.0F,
+ modulation[2] / 255.0F,
linearInterpolation(frameAlpha, frameCurrent, frameNext, partialTicks));
} else {
GL11.glColor4f(1f, 1f, 1f, linearInterpolation(frameAlpha, frameCurrent, frameNext, partialTicks));
}
-
- if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(icon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- } else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- icon.getMaxU(),
- icon.getMinV(),
- icon.getMinU(),
- icon.getMaxV(),
- icon.getIconWidth(),
- icon.getIconHeight(),
- 0.0625F);
- }
-
- GL11.glPopMatrix();
}
}
diff --git a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
index 8a88e580eb..b5caa6f59e 100644
--- a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
+++ b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
@@ -7,11 +7,10 @@ import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
-import net.minecraftforge.client.IItemRenderer;
+import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
@@ -21,18 +20,12 @@ import codechicken.lib.render.TextureUtils;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
-import gregtech.common.render.GT_RenderUtil;
public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
private static final float cosmicOpacity = 2.5f;
@Override
- public boolean handleRenderType(ItemStack item, ItemRenderType type) {
- return true;
- }
-
- @Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING;
}
@@ -41,8 +34,9 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
public boolean renderFluidDisplayItem(ItemRenderType type, ItemStack aStack, Object... data) {
magicRenderMethod(
type,
- ItemList.Emitter_UEV.get(1),
+ ItemList.Emitter_UEV.get(1), // hack to make it render correctly
aStack.getItem().getIconFromDamage(aStack.getItemDamage()),
+ true,
data);
return true;
}
@@ -66,53 +60,46 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_ALPHA_TEST);
+ if (tIcon != null) {
+ markNeedsAnimationUpdate(tIcon);
+ magicRenderMethod(type, aStack, tIcon, false, data);
+ }
+
+ GL11.glDisable(GL11.GL_LIGHTING);
+
if (tOverlay != null) {
GL11.glColor3f(1.0F, 1.0F, 1.0F);
TextureUtils.bindAtlas(aItem.getSpriteNumber());
- if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- } else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- tOverlay.getMaxU(),
- tOverlay.getMinV(),
- tOverlay.getMinU(),
- tOverlay.getMaxV(),
- tOverlay.getIconWidth(),
- tOverlay.getIconHeight(),
- 0.0625F);
- }
+ markNeedsAnimationUpdate(tOverlay);
+ renderItemOverlay(type, tOverlay);
}
GL11.glDisable(GL11.GL_BLEND);
-
- if (tIcon != null) {
- magicRenderMethod(type, aStack, getTrueIcon(aStack), data);
- }
}
}
- private void magicRenderMethod(ItemRenderType type, ItemStack tmpItem, IIcon tIcon, Object... data) {
+ private void magicRenderMethod(ItemRenderType type, ItemStack aStack, IIcon tIcon, boolean fluidDisplay,
+ Object... data) {
if (!GregTech_API.mEternalSingularity) return;
RenderItem r = RenderItem.getInstance();
Minecraft mc = Minecraft.getMinecraft();
Tessellator t = Tessellator.instance;
- this.processLightLevel(type, tmpItem, data);
+ processLightLevel(type, data);
switch (type) {
case ENTITY: {
GL11.glPushMatrix();
- if (tmpItem.isOnItemFrame()) GL11.glTranslatef(0F, -0.3F, 0.01F);
- render(tmpItem, null);
+ if (aStack.isOnItemFrame()) GL11.glTranslatef(0F, -0.3F, 0.01F);
+ render(tIcon);
GL11.glPopMatrix();
break;
}
case EQUIPPED:
case EQUIPPED_FIRST_PERSON: {
- render(tmpItem, data[1] instanceof EntityPlayer ? (EntityPlayer) data[1] : null);
+ render(tIcon);
break;
}
case INVENTORY: {
@@ -124,18 +111,15 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_DEPTH_TEST);
- r.renderItemIntoGUI(mc.fontRenderer, mc.getTextureManager(), tmpItem, 0, 0, true);
-
- GL11.glEnable(GL11.GL_ALPHA_TEST);
- GL11.glEnable(GL12.GL_RESCALE_NORMAL);
- GL11.glEnable(GL11.GL_DEPTH_TEST);
-
- r.renderWithColor = true;
-
- GL11.glDisable(GL11.GL_BLEND);
- GL11.glPopMatrix();
+ if (fluidDisplay) {
+ // this somehow makes shader render correctly
+ ResourceLocation resourcelocation = mc.getTextureManager()
+ .getResourceLocation(aStack.getItemSpriteNumber());
+ mc.getTextureManager().bindTexture(resourcelocation);
+ } else {
+ r.renderItemIntoGUI(mc.fontRenderer, mc.getTextureManager(), aStack, 0, 0, true);
+ }
- GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
RenderHelper.enableGUIStandardItemLighting();
@@ -143,20 +127,15 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_DEPTH_TEST);
- r.renderItemIntoGUI(mc.fontRenderer, mc.getTextureManager(), tmpItem, 0, 0, true);
-
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- RenderHelper.enableGUIStandardItemLighting();
-
- GL11.glDisable(GL11.GL_ALPHA_TEST);
- GL11.glDisable(GL11.GL_DEPTH_TEST);
+ if (fluidDisplay) {
+ GL11.glDisable(GL11.GL_BLEND);
+ }
CosmicRenderStuffs.cosmicOpacity = cosmicOpacity;
CosmicRenderStuffs.inventoryRender = true;
CosmicRenderStuffs.useShader();
- GL11.glColor4d(0, 1, 1, 1);
+ GL11.glColor4d(1, 1, 1, 1);
float minu = tIcon.getMinU();
float maxu = tIcon.getMaxU();
@@ -180,6 +159,7 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
r.renderWithColor = true;
+ GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
break;
}
@@ -188,54 +168,35 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
}
}
- public void render(ItemStack item, EntityPlayer player) {
- int passes = 1;
- if (item.getItem().requiresMultipleRenderPasses()) {
- passes = item.getItem().getRenderPasses(item.getItemDamage());
- }
-
+ private void render(IIcon icon) {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
- IIcon icon;
float f, f1, f2, f3;
float scale = 1F / 16F;
- for (int i = 0; i < passes; i++) {
- icon = this.getTrueIcon(item, i);
-
- f = icon.getMinU();
- f1 = icon.getMaxU();
- f2 = icon.getMinV();
- f3 = icon.getMaxV();
-
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
-
- // RENDER ITEM IN HAND
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- f1,
- f2,
- f,
- f3,
- icon.getIconWidth(),
- icon.getIconHeight(),
- scale);
- }
+ f = icon.getMinU();
+ f1 = icon.getMaxU();
+ f2 = icon.getMinV();
+ f3 = icon.getMaxV();
+
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+
+ // RENDER ITEM IN HAND
+ ItemRenderer
+ .renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), scale);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDepthFunc(GL11.GL_EQUAL);
CosmicRenderStuffs.cosmicOpacity = cosmicOpacity;
CosmicRenderStuffs.useShader();
- IIcon cosmicIcon = getTrueIcon(item);
-
- float minu = cosmicIcon.getMinU();
- float maxu = cosmicIcon.getMaxU();
- float minv = cosmicIcon.getMinV();
- float maxv = cosmicIcon.getMaxV();
+ float minu = icon.getMinU();
+ float maxu = icon.getMaxU();
+ float minv = icon.getMinV();
+ float maxv = icon.getMaxV();
// RENDER COSMIC OVERLAY IN HAND
ItemRenderer.renderItemIn2D(
@@ -244,8 +205,8 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
minv,
minu,
maxv,
- cosmicIcon.getIconWidth(),
- cosmicIcon.getIconHeight(),
+ icon.getIconWidth(),
+ icon.getIconHeight(),
scale);
CosmicRenderStuffs.releaseShader();
GL11.glDepthFunc(GL11.GL_LEQUAL);
@@ -257,7 +218,7 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glColor4f(1F, 1F, 1F, 1F);
}
- public void processLightLevel(ItemRenderType type, ItemStack item, Object... data) {
+ private void processLightLevel(ItemRenderType type, Object... data) {
switch (type) {
case ENTITY: {
EntityItem ent = (EntityItem) (data[1]);
@@ -291,12 +252,4 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
}
}
}
-
- public IIcon getTrueIcon(ItemStack stack, int pass) {
- return ((IGT_ItemWithMaterialRenderer) stack.getItem()).getIcon(stack.getItemDamage(), pass);
- }
-
- public IIcon getTrueIcon(ItemStack stack) {
- return getTrueIcon(stack, 0);
- }
}