aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/gregtech/common/render/GT_FlaskRenderer.java60
-rw-r--r--src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java242
-rw-r--r--src/main/java/gregtech/common/render/GT_RenderUtil.java79
-rw-r--r--src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java12
-rw-r--r--src/main/java/gregtech/common/render/items/GT_GeneratedItem_Renderer.java45
-rw-r--r--src/main/java/gregtech/common/render/items/GT_GeneratedMaterial_Renderer.java48
-rw-r--r--src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java14
-rw-r--r--src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java16
-rw-r--r--src/main/java/gregtech/common/render/items/InfinityRenderer.java2
-rw-r--r--src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java24
-rw-r--r--src/main/java/gregtech/common/render/items/UniversiumRenderer.java174
11 files changed, 274 insertions, 442 deletions
diff --git a/src/main/java/gregtech/common/render/GT_FlaskRenderer.java b/src/main/java/gregtech/common/render/GT_FlaskRenderer.java
index 52d5d91ee0..addcb1cf70 100644
--- a/src/main/java/gregtech/common/render/GT_FlaskRenderer.java
+++ b/src/main/java/gregtech/common/render/GT_FlaskRenderer.java
@@ -1,13 +1,12 @@
package gregtech.common.render;
import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.ItemRenderer;
-import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.MinecraftForgeClient;
+import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
@@ -16,7 +15,6 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.ItemList;
import gregtech.common.items.GT_VolumetricFlask;
-import ic2.core.util.DrawUtil;
@SideOnly(Side.CLIENT)
public final class GT_FlaskRenderer implements IItemRenderer {
@@ -31,8 +29,9 @@ public final class GT_FlaskRenderer implements IItemRenderer {
}
@Override
- public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, IItemRenderer.ItemRendererHelper helper) {
- return type == ItemRenderType.ENTITY;
+ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
+ return type == ItemRenderType.ENTITY && helper == ItemRendererHelper.ENTITY_BOBBING
+ || (helper == ItemRendererHelper.ENTITY_ROTATION && Minecraft.getMinecraft().gameSettings.fancyGraphics);
}
@Override
@@ -41,64 +40,31 @@ public final class GT_FlaskRenderer implements IItemRenderer {
IIcon icon = item.getIconIndex();
GL11.glEnable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_ALPHA_TEST);
- if (type.equals(ItemRenderType.ENTITY)) {
- GL11.glRotated(180.0D, 0.0D, 0.0D, 1.0D);
- GL11.glRotated(90.0D, 0.0D, 1.0D, 0.0D);
- GL11.glTranslated(-0.5D, -0.6D, 0.0D);
- } else if (type.equals(ItemRenderType.EQUIPPED_FIRST_PERSON)) {
- GL11.glTranslated(1.0D, 1.0D, 0.0D);
- GL11.glRotated(180.0D, 0.0D, 0.0D, 1.0D);
- } else if (type.equals(ItemRenderType.EQUIPPED)) {
- GL11.glRotated(180.0D, 0.0D, 0.0D, 1.0D);
- GL11.glTranslated(-1.0D, -1.0D, 0.0D);
- }
+ GT_RenderUtil.applyStandardItemTransform(type);
- FluidStack fs = cell.getFluid(item);
+ FluidStack fs = cell != null ? cell.getFluid(item) : null;
if (fs != null) {
IIcon iconWindow = cell.iconWindow;
- IIcon fluidicon = fs.getFluid()
- .getIcon(fs);
- int fluidColor = fs.getFluid()
- .getColor(fs);
+ Fluid fluid = fs.getFluid();
+ IIcon fluidIcon = fluid.getIcon(fs);
+ int fluidColor = fluid.getColor(fs);
+
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
GL11.glBlendFunc(GL11.GL_ZERO, GL11.GL_ONE);
- if (type.equals(ItemRenderType.INVENTORY)) {
- DrawUtil.renderIcon(iconWindow, 16.0D, 0.0D, 0.0F, 0.0F, -1.0F);
- } else {
- DrawUtil.renderIcon(iconWindow, 1.0D, -0.001D, 0.0F, 0.0F, 1.0F);
- DrawUtil.renderIcon(iconWindow, 1.0D, -0.0615D, 0.0F, 0.0F, -1.0F);
- }
+ GT_RenderUtil.renderItem(type, iconWindow);
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
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);
- if (type.equals(ItemRenderType.INVENTORY)) {
- DrawUtil.renderIcon(fluidicon, 16.0D, 0.0D, 0.0F, 0.0F, -1.0F);
- } else {
- DrawUtil.renderIcon(fluidicon, 1.0D, -0.001D, 0.0F, 0.0F, 1.0F);
- DrawUtil.renderIcon(fluidicon, 1.0D, -0.0615D, 0.0F, 0.0F, -1.0F);
- }
-
+ GT_RenderUtil.renderItem(type, fluidIcon);
GL11.glColor3ub((byte) -1, (byte) -1, (byte) -1);
GL11.glDepthFunc(GL11.GL_LEQUAL);
}
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- if (type.equals(ItemRenderType.INVENTORY)) {
- DrawUtil.renderIcon(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);
- }
+ GT_RenderUtil.renderItem(type, icon);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDisable(GL11.GL_BLEND);
}
diff --git a/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java b/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java
index 2c0eb91068..96285a3fc1 100644
--- a/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java
+++ b/src/main/java/gregtech/common/render/GT_MetaGenerated_Tool_Renderer.java
@@ -1,9 +1,6 @@
package gregtech.common.render;
import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.ItemRenderer;
-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;
@@ -13,10 +10,10 @@ import org.lwjgl.opengl.GL11;
import gregtech.GT_Mod;
import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.IToolStats;
import gregtech.api.items.GT_MetaGenerated_Tool;
-import gregtech.api.util.GT_Utility;
public class GT_MetaGenerated_Tool_Renderer implements IItemRenderer {
@@ -29,190 +26,105 @@ public class GT_MetaGenerated_Tool_Renderer implements IItemRenderer {
}
@Override
- public boolean handleRenderType(ItemStack aStack, IItemRenderer.ItemRenderType aType) {
- if ((GT_Utility.isStackInvalid(aStack)) || (aStack.getItemDamage() < 0)) {
- return false;
- }
- return (aType == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON)
- || (aType == IItemRenderer.ItemRenderType.INVENTORY)
- || (aType == IItemRenderer.ItemRenderType.EQUIPPED)
- || (aType == IItemRenderer.ItemRenderType.ENTITY);
+ public boolean handleRenderType(ItemStack stack, ItemRenderType type) {
+ return (type == ItemRenderType.EQUIPPED_FIRST_PERSON) || (type == ItemRenderType.INVENTORY)
+ || (type == ItemRenderType.EQUIPPED)
+ || (type == ItemRenderType.ENTITY);
}
@Override
- public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType aType, ItemStack aStack,
- IItemRenderer.ItemRendererHelper aHelper) {
- if (GT_Utility.isStackInvalid(aStack)) {
- return false;
- }
- return aType == IItemRenderer.ItemRenderType.ENTITY;
+ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack stack, ItemRendererHelper helper) {
+ return type == ItemRenderType.ENTITY && helper == ItemRendererHelper.ENTITY_BOBBING
+ || (helper == ItemRendererHelper.ENTITY_ROTATION && Minecraft.getMinecraft().gameSettings.fancyGraphics);
}
@Override
- public void renderItem(IItemRenderer.ItemRenderType aType, ItemStack aStack, Object... data) {
- if (GT_Utility.isStackInvalid(aStack)) {
- return;
- }
- GT_MetaGenerated_Tool aItem = (GT_MetaGenerated_Tool) aStack.getItem();
+ public void renderItem(ItemRenderType type, ItemStack stack, Object... data) {
+ GT_MetaGenerated_Tool item = (GT_MetaGenerated_Tool) stack.getItem();
GL11.glEnable(GL11.GL_BLEND);
- if (aType == IItemRenderer.ItemRenderType.ENTITY) {
- if (RenderItem.renderInFrame) {
- GL11.glScalef(0.85F, 0.85F, 0.85F);
- GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
- GL11.glTranslated(-0.5D, -0.42D, 0.0D);
- } else {
- GL11.glTranslated(-0.5D, -0.42D, 0.0D);
- }
- }
+ GT_RenderUtil.applyStandardItemTransform(type);
GL11.glColor3f(1.0F, 1.0F, 1.0F);
- IToolStats tToolStats = aItem.getToolStats(aStack);
- if (tToolStats != null) {
- IIconContainer aIcon = tToolStats.getIcon(false, aStack);
- if (aIcon != null) {
- IIcon tIcon = aIcon.getIcon();
- IIcon tOverlay = aIcon.getOverlayIcon();
- if (tIcon != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- short[] tModulation = tToolStats.getRGBa(false, aStack);
- GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F);
- if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- } else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- tIcon.getMaxU(),
- tIcon.getMinV(),
- tIcon.getMinU(),
- tIcon.getMaxV(),
- tIcon.getIconWidth(),
- tIcon.getIconHeight(),
- 0.0625F);
- }
- GL11.glColor3f(1.0F, 1.0F, 1.0F);
- }
- if (tOverlay != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- if (aType.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);
- }
- }
- }
- aIcon = tToolStats.getIcon(true, aStack);
- if (aIcon != null) {
- IIcon tIcon = aIcon.getIcon();
- IIcon tOverlay = aIcon.getOverlayIcon();
- if (tIcon != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- short[] tModulation = tToolStats.getRGBa(true, aStack);
- GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F);
- if (aType.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- } else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- tIcon.getMaxU(),
- tIcon.getMinV(),
- tIcon.getMinU(),
- tIcon.getMaxV(),
- tIcon.getIconWidth(),
- tIcon.getIconHeight(),
- 0.0625F);
- }
- GL11.glColor3f(1.0F, 1.0F, 1.0F);
- }
- if (tOverlay != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- if (aType.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);
- }
- }
- }
- if ((aType == IItemRenderer.ItemRenderType.INVENTORY)
- && (GT_MetaGenerated_Tool.getPrimaryMaterial(aStack) != Materials._NULL)) {
+ IToolStats toolStats = item != null ? item.getToolStats(stack) : null;
+ if (toolStats != null) {
+ renderToolPart(type, stack, toolStats, false);
+ renderToolPart(type, stack, toolStats, true);
+
+ if ((type == ItemRenderType.INVENTORY)
+ && (GT_MetaGenerated_Tool.getPrimaryMaterial(stack) != Materials._NULL)) {
if (GT_Mod.gregtechproxy.mRenderItemDurabilityBar) {
- long tDamage = GT_MetaGenerated_Tool.getToolDamage(aStack);
- long tMaxDamage = GT_MetaGenerated_Tool.getToolMaxDamage(aStack);
- if (tDamage <= 0L) {
- aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[8];
- } else if (tDamage >= tMaxDamage) {
- aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[0];
+ IIconContainer iconContainer;
+ long damage = GT_MetaGenerated_Tool.getToolDamage(stack);
+ long maxDamage = GT_MetaGenerated_Tool.getToolMaxDamage(stack);
+ if (damage <= 0L) {
+ iconContainer = Textures.ItemIcons.DURABILITY_BAR[8];
+ } else if (damage >= maxDamage) {
+ iconContainer = Textures.ItemIcons.DURABILITY_BAR[0];
} else {
- aIcon = gregtech.api.enums.Textures.ItemIcons.DURABILITY_BAR[((int) java.lang.Math
- .max(0L, java.lang.Math.min(7L, (tMaxDamage - tDamage) * 8L / tMaxDamage)))];
- }
- if (aIcon != null) {
- IIcon tIcon = aIcon.getIcon();
- IIcon tOverlay = aIcon.getOverlayIcon();
- if (tIcon != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- }
- if (tOverlay != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- }
+ iconContainer = Textures.ItemIcons.DURABILITY_BAR[((int) Math
+ .max(0L, Math.min(7L, (maxDamage - damage) * 8L / maxDamage)))];
}
+ renderIcon(iconContainer);
}
if (GT_Mod.gregtechproxy.mRenderItemChargeBar) {
- Long[] tStats = aItem.getElectricStats(aStack);
- if ((tStats != null) && (tStats[3] < 0L)) {
- long tCharge = aItem.getRealCharge(aStack);
+ IIconContainer iconContainer;
+ Long[] stats = item.getElectricStats(stack);
+ if ((stats != null) && (stats[3] < 0L)) {
+ long tCharge = item.getRealCharge(stack);
if (tCharge <= 0L) {
- aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[0];
- } else if (tCharge >= tStats[0]) {
- aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[8];
+ iconContainer = Textures.ItemIcons.ENERGY_BAR[0];
+ } else if (tCharge >= stats[0]) {
+ iconContainer = Textures.ItemIcons.ENERGY_BAR[8];
} else {
- aIcon = gregtech.api.enums.Textures.ItemIcons.ENERGY_BAR[(7 - (int) java.lang.Math
- .max(0L, java.lang.Math.min(6L, (tStats[0] - tCharge) * 7L / tStats[0])))];
+ iconContainer = Textures.ItemIcons.ENERGY_BAR[(7
+ - (int) Math.max(0L, Math.min(6L, (stats[0] - tCharge) * 7L / stats[0])))];
}
} else {
- aIcon = null;
- }
- if (aIcon != null) {
- IIcon tIcon = aIcon.getIcon();
- IIcon tOverlay = aIcon.getOverlayIcon();
- if (tIcon != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- }
- if (tOverlay != null) {
- Minecraft.getMinecraft().renderEngine.bindTexture(aIcon.getTextureFile());
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- }
+ iconContainer = null;
}
+ renderIcon(iconContainer);
}
}
}
GL11.glDisable(GL11.GL_BLEND);
}
+
+ private void renderIcon(IIconContainer iconContainer) {
+ if (iconContainer != null) {
+ IIcon icon = iconContainer.getIcon();
+ IIcon overlay = iconContainer.getOverlayIcon();
+ if (icon != null) {
+ Minecraft.getMinecraft().renderEngine.bindTexture(iconContainer.getTextureFile());
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GT_RenderUtil.renderItemIcon(icon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ }
+ if (overlay != null) {
+ Minecraft.getMinecraft().renderEngine.bindTexture(iconContainer.getTextureFile());
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GT_RenderUtil.renderItemIcon(overlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ }
+ }
+ }
+
+ private static void renderToolPart(ItemRenderType type, ItemStack stack, IToolStats toolStats, boolean isToolHead) {
+ IIconContainer iconContainer = toolStats.getIcon(isToolHead, stack);
+ if (iconContainer != null) {
+ IIcon icon = iconContainer.getIcon();
+ IIcon overlay = iconContainer.getOverlayIcon();
+ if (icon != null) {
+ Minecraft.getMinecraft().renderEngine.bindTexture(iconContainer.getTextureFile());
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ short[] modulation = toolStats.getRGBa(isToolHead, stack);
+ GL11.glColor3f(modulation[0] / 255.0F, modulation[1] / 255.0F, modulation[2] / 255.0F);
+ GT_RenderUtil.renderItem(type, icon);
+ GL11.glColor3f(1.0F, 1.0F, 1.0F);
+ }
+ if (overlay != null) {
+ Minecraft.getMinecraft().renderEngine.bindTexture(iconContainer.getTextureFile());
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GT_RenderUtil.renderItem(type, overlay);
+ }
+ }
+ }
}
diff --git a/src/main/java/gregtech/common/render/GT_RenderUtil.java b/src/main/java/gregtech/common/render/GT_RenderUtil.java
index 533380fe53..68195513fe 100644
--- a/src/main/java/gregtech/common/render/GT_RenderUtil.java
+++ b/src/main/java/gregtech/common/render/GT_RenderUtil.java
@@ -1,10 +1,15 @@
package gregtech.common.render;
import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
+import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.common.util.ForgeDirection;
import org.lwjgl.opengl.GL11;
@@ -59,4 +64,78 @@ public class GT_RenderUtil {
}
Tessellator.instance.draw();
}
+
+ @SuppressWarnings("RedundantLabeledSwitchRuleCodeBlock")
+ public static void renderItem(IItemRenderer.ItemRenderType type, IIcon icon) {
+ Tessellator tessellator = Tessellator.instance;
+ float maxU = icon.getMaxU();
+ float minV = icon.getMinV();
+ float minU = icon.getMinU();
+ float maxV = icon.getMaxV();
+
+ switch (type) {
+ case ENTITY -> {
+ if (Minecraft.getMinecraft().gameSettings.fancyGraphics) {
+ ItemRenderer.renderItemIn2D(
+ tessellator,
+ maxU,
+ minV,
+ minU,
+ maxV,
+ icon.getIconWidth(),
+ icon.getIconHeight(),
+ 0.0625F);
+ } else {
+ GL11.glPushMatrix();
+
+ if (!RenderItem.renderInFrame) {
+ GL11.glRotatef(180.0F - RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F);
+ }
+
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(0.0F, 1.0F, 0.0F);
+ tessellator.addVertexWithUV(0.0F - 0.5F, 0.0F - 0.25F, 0.0D, minU, maxV);
+ tessellator.addVertexWithUV(1.0F - 0.5F, 0.0F - 0.25F, 0.0D, maxU, maxV);
+ tessellator.addVertexWithUV(1.0F - 0.5F, 1.0F - 0.25F, 0.0D, maxU, minV);
+ tessellator.addVertexWithUV(0.0F - 0.5F, 1.0F - 0.25F, 0.0D, minU, minV);
+ tessellator.draw();
+
+ GL11.glPopMatrix();
+ }
+ }
+ case EQUIPPED, EQUIPPED_FIRST_PERSON -> {
+ ItemRenderer.renderItemIn2D(
+ tessellator,
+ maxU,
+ minV,
+ minU,
+ maxV,
+ icon.getIconWidth(),
+ icon.getIconHeight(),
+ 0.0625F);
+ }
+ case INVENTORY -> {
+ renderItemIcon(icon, 16.0D, 0.001, 0.0F, 0.0F, -1.0F);
+ }
+ default -> {}
+ }
+ }
+
+ public static void applyStandardItemTransform(IItemRenderer.ItemRenderType type) {
+ if (type == IItemRenderer.ItemRenderType.ENTITY) {
+ if (RenderItem.renderInFrame) {
+ // Magic numbers calculated from vanilla code
+ GL11.glScalef(1.025641F, 1.025641F, 1.025641F);
+ GL11.glTranslatef(0.0F, -0.05F, 0.0F);
+ }
+
+ if (Minecraft.getMinecraft().gameSettings.fancyGraphics) {
+ if (RenderItem.renderInFrame) {
+ GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
+ }
+ // Magic numbers calculated from vanilla code
+ GL11.glTranslatef(-0.5F, -0.25F, 0.0421875F);
+ }
+ }
+ }
}
diff --git a/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java b/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
index 717a36b78f..acb830de58 100644
--- a/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
+++ b/src/main/java/gregtech/common/render/items/CosmicNeutroniumRenderer.java
@@ -2,7 +2,6 @@ package gregtech.common.render.items;
import static gregtech.common.render.GT_RenderUtil.colorGTItem;
-import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.item.ItemStack;
@@ -26,6 +25,7 @@ public class CosmicNeutroniumRenderer extends GT_GeneratedMaterial_Renderer {
private static final Pos2d point3 = new Pos2d(0 - 10, 17 + 10);
// spotless:on
+ // TODO: Render halo outside of inventory.
private void drawHalo(ItemRenderType type) {
// Because when this class is instantiated, making this a static field will cause it to set to null.
final IIcon haloFuzzy = Textures.ItemIcons.HALO_FUZZY.getIcon();
@@ -93,15 +93,7 @@ public class CosmicNeutroniumRenderer extends GT_GeneratedMaterial_Renderer {
GT_RenderUtil.renderItemIcon(icon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
} else {
GL11.glEnable(GL11.GL_DEPTH_TEST);
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- icon.getMaxU(),
- icon.getMinV(),
- icon.getMinU(),
- icon.getMaxV(),
- icon.getIconWidth(),
- icon.getIconHeight(),
- 0.0625F);
+ GT_RenderUtil.renderItem(type, icon);
}
GL11.glPopMatrix();
}
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 2788fd15c2..2dab0b48a3 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
@@ -14,8 +14,6 @@ import static gregtech.api.enums.Mods.HodgePodge;
import javax.annotation.Nullable;
import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.ItemRenderer;
-import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
@@ -44,7 +42,8 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
- return type == ItemRenderType.ENTITY;
+ return type == ItemRenderType.ENTITY && helper == ItemRendererHelper.ENTITY_BOBBING
+ || (helper == ItemRendererHelper.ENTITY_ROTATION && Minecraft.getMinecraft().gameSettings.fancyGraphics);
}
@Override
@@ -90,19 +89,7 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
- } else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- tIcon.getMaxU(),
- tIcon.getMinV(),
- tIcon.getMinU(),
- tIcon.getMaxV(),
- tIcon.getIconWidth(),
- tIcon.getIconHeight(),
- 0.0625F);
- }
+ GT_RenderUtil.renderItem(type, tIcon);
GL11.glDisable(GL11.GL_BLEND);
}
@@ -137,18 +124,10 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
// Empty inner side
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
markNeedsAnimationUpdate(inner);
- if (type.equals(ItemRenderType.INVENTORY)) {
+ if (type == ItemRenderType.INVENTORY) {
GT_RenderUtil.renderItemIcon(inner, 16.0D, -0.001D, 0.0F, 0.0F, -1.0F);
} else {
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- inner.getMaxU(),
- inner.getMinV(),
- inner.getMinU(),
- inner.getMaxV(),
- inner.getIconWidth(),
- inner.getIconHeight(),
- 0.0625F);
+ GT_RenderUtil.renderItem(type, inner);
}
FluidStack fluidStack = GT_Utility.getFluidForFilledItem(stack, true);
@@ -167,18 +146,10 @@ public class GT_GeneratedItem_Renderer implements IItemRenderer {
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);
- if (type.equals(ItemRenderType.INVENTORY)) {
- GT_RenderUtil.renderItemIcon(fluidIcon, 16.0D, -0.001D, 0.0F, 0.0F, -1.0F);
+ if (type == ItemRenderType.INVENTORY) {
+ GT_RenderUtil.renderItemIcon(inner, 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);
+ GT_RenderUtil.renderItem(type, inner);
}
GL11.glColor3ub((byte) -1, (byte) -1, (byte) -1);
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 ef06731fbe..a67d5512ed 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
@@ -2,8 +2,7 @@ package gregtech.common.render.items;
import static gregtech.api.enums.Mods.HodgePodge;
-import net.minecraft.client.renderer.ItemRenderer;
-import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraftforge.client.IItemRenderer;
@@ -30,7 +29,8 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
- return type == ItemRenderType.ENTITY;
+ return type == ItemRenderType.ENTITY && helper == ItemRendererHelper.ENTITY_BOBBING
+ || (helper == ItemRendererHelper.ENTITY_ROTATION && Minecraft.getMinecraft().gameSettings.fancyGraphics);
}
/**
@@ -104,19 +104,7 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F);
}
- 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);
- }
+ GT_RenderUtil.renderItem(type, icon);
}
protected void renderContainedFluid(ItemRenderType type, FluidStack aFluidStack, IIcon fluidIcon) {
@@ -126,36 +114,12 @@ public class GT_GeneratedMaterial_Renderer implements IItemRenderer {
TextureUtils.bindAtlas(aFluid.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);
- }
+ GT_RenderUtil.renderItem(type, fluidIcon);
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);
- }
+ GT_RenderUtil.renderItem(type, overlay);
}
protected void markNeedsAnimationUpdate(IIcon icon) {
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 48a598a32b..d7425c2fcb 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
@@ -1,19 +1,17 @@
package gregtech.common.render.items;
-import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.MinecraftForgeClient;
-import org.lwjgl.opengl.GL11;
-
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
+import gregtech.common.render.GT_RenderUtil;
public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
@@ -48,15 +46,7 @@ public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
@Override
public void renderItem(ItemRenderType type, ItemStack aStack, Object... data) {
- if (type == IItemRenderer.ItemRenderType.ENTITY) {
- if (RenderItem.renderInFrame) {
- GL11.glScalef(0.85F, 0.85F, 0.85F);
- GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
- GL11.glTranslated(-0.5D, -0.42D, 0.0D);
- } else {
- GL11.glTranslated(-0.5D, -0.42D, 0.0D);
- }
- }
+ GT_RenderUtil.applyStandardItemTransform(type);
IItemRenderer itemRenderer = getRendererForItemStack(aStack);
itemRenderer.renderItem(type, aStack, data);
diff --git a/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java b/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java
index 58a238ac07..08663adf4d 100644
--- a/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java
+++ b/src/main/java/gregtech/common/render/items/GaiaSpiritRenderer.java
@@ -2,8 +2,6 @@ package gregtech.common.render.items;
import java.awt.Color;
-import net.minecraft.client.renderer.ItemRenderer;
-import net.minecraft.client.renderer.Tessellator;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
@@ -24,18 +22,6 @@ public class GaiaSpiritRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glColor3f(color.getRed() / 255.0F, color.getGreen() / 255.0F, color.getBlue() / 255.0F);
}
- if (type.equals(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);
- }
+ GT_RenderUtil.renderItem(type, icon);
}
}
diff --git a/src/main/java/gregtech/common/render/items/InfinityRenderer.java b/src/main/java/gregtech/common/render/items/InfinityRenderer.java
index 9e8b60ad5a..3a98898b8a 100644
--- a/src/main/java/gregtech/common/render/items/InfinityRenderer.java
+++ b/src/main/java/gregtech/common/render/items/InfinityRenderer.java
@@ -14,6 +14,8 @@ import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
import gregtech.api.util.GT_Utility;
+// TODO: Render effects outside inventory.
+
public class InfinityRenderer extends GT_GeneratedMaterial_Renderer {
public Random rand = new Random();
diff --git a/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java b/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java
index 0fa4d733f0..8583033e0f 100644
--- a/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java
+++ b/src/main/java/gregtech/common/render/items/TranscendentMetalRenderer.java
@@ -1,7 +1,9 @@
package gregtech.common.render.items;
+import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
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;
@@ -18,6 +20,21 @@ import gregtech.api.util.GT_Util;
public class TranscendentMetalRenderer extends GT_GeneratedMaterial_Renderer {
@Override
+ public void renderItem(ItemRenderType type, ItemStack aStack, Object... data) {
+ if (type == ItemRenderType.ENTITY) {
+ // Pretend fancy graphics is enabled
+ if (!Minecraft.getMinecraft().gameSettings.fancyGraphics) {
+ if (RenderItem.renderInFrame) {
+ GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F);
+ }
+ // Magic numbers calculated from vanilla code
+ GL11.glTranslatef(-0.5F, -0.25F, 0.0421875F);
+ }
+ }
+ super.renderItem(type, aStack, data);
+ }
+
+ @Override
protected void renderRegularItem(ItemRenderType type, ItemStack itemStack, IIcon icon,
boolean shouldModulateColor) {
@@ -96,6 +113,10 @@ public class TranscendentMetalRenderer extends GT_GeneratedMaterial_Renderer {
}
private void applyEffect(ItemRenderType type, short[] modulation, boolean shouldModulateColor) {
+ if (RenderItem.renderInFrame) {
+ // Float in front of item frame
+ GL11.glTranslatef(0.0f, 0.0f, -0.5f);
+ }
if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
GL11.glTranslatef(8f, 8f, 0f);
@@ -112,6 +133,9 @@ public class TranscendentMetalRenderer extends GT_GeneratedMaterial_Renderer {
GL11.glTranslatef(-0.5f, -0.5f, 0.0f);
}
+ // Center on point of rotation
+ GL11.glTranslatef(0.0f, 0.0f, 0.03125F);
+
if (shouldModulateColor) {
GL11.glColor4f(modulation[0] / 255.0F, modulation[1] / 255.0F, modulation[2] / 255.0F, 255);
} else {
diff --git a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
index b0e2c39cb7..92b86071cf 100644
--- a/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
+++ b/src/main/java/gregtech/common/render/items/UniversiumRenderer.java
@@ -3,12 +3,12 @@ package gregtech.common.render.items;
import static gregtech.api.enums.Mods.Avaritia;
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.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
@@ -16,11 +16,13 @@ import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
+import org.lwjgl.opengl.GL20;
import codechicken.lib.render.TextureUtils;
import fox.spiteful.avaritia.render.CosmicRenderShenanigans;
import gregtech.api.enums.ItemList;
import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
+import gregtech.common.render.GT_RenderUtil;
@SuppressWarnings("RedundantLabeledSwitchRuleCodeBlock")
public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
@@ -28,17 +30,14 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
private static final float cosmicOpacity = 2.5f;
@Override
- public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
- return helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING;
- }
-
- @Override
public boolean renderFluidDisplayItem(ItemRenderType type, ItemStack aStack, Object... data) {
+ Item item = aStack.getItem();
+ if (item == null) return false;
+
magicRenderMethod(
type,
ItemList.Emitter_UEV.get(1), // hack to make it render correctly
- aStack.getItem()
- .getIconFromDamage(aStack.getItemDamage()),
+ item.getIconFromDamage(aStack.getItemDamage()),
true,
data);
return true;
@@ -89,133 +88,80 @@ public class UniversiumRenderer extends GT_GeneratedMaterial_Renderer {
RenderItem r = RenderItem.getInstance();
Minecraft mc = Minecraft.getMinecraft();
Tessellator t = Tessellator.instance;
+ float minU = tIcon.getMinU();
+ float maxU = tIcon.getMaxU();
+ float minV = tIcon.getMinV();
+ float maxV = tIcon.getMaxV();
processLightLevel(type, data);
- switch (type) {
- case ENTITY -> {
- GL11.glPushMatrix();
- if (aStack.isOnItemFrame()) GL11.glTranslatef(0F, -0.3F, 0.01F);
- render(tIcon);
- GL11.glPopMatrix();
+ GL11.glPushMatrix();
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ if (type == ItemRenderType.INVENTORY) {
+ RenderHelper.enableGUIStandardItemLighting();
+
+ GL11.glDisable(GL11.GL_ALPHA_TEST);
+ GL11.glDisable(GL11.GL_DEPTH_TEST);
+
+ if (fluidDisplay) {
+ // this somehow makes shader render correctly
+ ResourceLocation resourcelocation = mc.getTextureManager()
+ .getResourceLocation(aStack.getItemSpriteNumber());
+ mc.getTextureManager()
+ .bindTexture(resourcelocation);
+ } else {
+ GT_RenderUtil.renderItem(type, tIcon);
}
- case EQUIPPED, EQUIPPED_FIRST_PERSON -> {
- render(tIcon);
- }
- case INVENTORY -> {
- 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);
-
- 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.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- RenderHelper.enableGUIStandardItemLighting();
+ 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.glDisable(GL11.GL_ALPHA_TEST);
+ GL11.glDisable(GL11.GL_DEPTH_TEST);
- if (fluidDisplay) {
- GL11.glDisable(GL11.GL_BLEND);
- }
+ if (fluidDisplay) {
+ GL11.glDisable(GL11.GL_BLEND);
+ }
- CosmicRenderShenanigans.cosmicOpacity = cosmicOpacity;
- CosmicRenderShenanigans.inventoryRender = true;
- CosmicRenderShenanigans.useShader();
+ CosmicRenderShenanigans.cosmicOpacity = cosmicOpacity;
+ CosmicRenderShenanigans.inventoryRender = true;
+ CosmicRenderShenanigans.useShader();
- GL11.glColor4d(1, 1, 1, 1);
+ GL11.glColor4d(1, 1, 1, 1);
- float minu = tIcon.getMinU();
- float maxu = tIcon.getMaxU();
- float minv = tIcon.getMinV();
- float maxv = tIcon.getMaxV();
+ // Draw cosmic overlay
+ GT_RenderUtil.renderItem(type, tIcon);
- // Draw cosmic overlay
- t.startDrawingQuads();
- t.addVertexWithUV(0, 0, 0, minu, minv);
- t.addVertexWithUV(0, 16, 0, minu, maxv);
- t.addVertexWithUV(16, 16, 0, maxu, maxv);
- t.addVertexWithUV(16, 0, 0, maxu, minv);
- t.draw();
+ CosmicRenderShenanigans.releaseShader();
+ CosmicRenderShenanigans.inventoryRender = false;
- CosmicRenderShenanigans.releaseShader();
- CosmicRenderShenanigans.inventoryRender = false;
+ GL11.glEnable(GL12.GL_RESCALE_NORMAL);
+ } else {
+ // RENDER ITEM
+ GT_RenderUtil.renderItem(type, tIcon);
- GL11.glEnable(GL11.GL_ALPHA_TEST);
- GL11.glEnable(GL12.GL_RESCALE_NORMAL);
- GL11.glEnable(GL11.GL_DEPTH_TEST);
+ int program = GL11.glGetInteger(GL20.GL_CURRENT_PROGRAM);
- r.renderWithColor = true;
+ GL11.glDisable(GL11.GL_ALPHA_TEST);
+ GL11.glDepthFunc(GL11.GL_EQUAL);
+ CosmicRenderShenanigans.cosmicOpacity = cosmicOpacity;
+ CosmicRenderShenanigans.useShader();
- GL11.glDisable(GL11.GL_BLEND);
- GL11.glPopMatrix();
- }
- default -> {}
+ // RENDER COSMIC OVERLAY
+ GT_RenderUtil.renderItem(type, tIcon);
+ CosmicRenderShenanigans.releaseShader();
+ GL11.glDepthFunc(GL11.GL_LEQUAL);
+
+ GL20.glUseProgram(program);
}
- }
- 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);
-
- float f, f1, f2, f3;
- float scale = 1F / 16F;
-
- 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);
- CosmicRenderShenanigans.cosmicOpacity = cosmicOpacity;
- CosmicRenderShenanigans.useShader();
-
- float minu = icon.getMinU();
- float maxu = icon.getMaxU();
- float minv = icon.getMinV();
- float maxv = icon.getMaxV();
-
- // RENDER COSMIC OVERLAY IN HAND
- ItemRenderer.renderItemIn2D(
- Tessellator.instance,
- maxu,
- minv,
- minu,
- maxv,
- icon.getIconWidth(),
- icon.getIconHeight(),
- scale);
- CosmicRenderShenanigans.releaseShader();
- GL11.glDepthFunc(GL11.GL_LEQUAL);
+ GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glEnable(GL11.GL_ALPHA_TEST);
-
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
-
- GL11.glColor4f(1F, 1F, 1F, 1F);
}
private void processLightLevel(ItemRenderType type, Object... data) {