Skip to content

Instantly share code, notes, and snippets.

@marchermans
Created June 24, 2014 16:42
Show Gist options
  • Save marchermans/c29a5a1dea7bb26ccf0c to your computer and use it in GitHub Desktop.
Save marchermans/c29a5a1dea7bb26ccf0c to your computer and use it in GitHub Desktop.
Item Renderer
package com.Orion.OrionsBelt.Client.Render;
/*
* RendererItemMultiLayeredArmor
* Created by: Orion
* Created on: 21-6-2014
*/
import com.Orion.OrionsBelt.Client.CustomResource;
import com.Orion.OrionsBelt.Common.Util.Armor.MultiLayeredArmor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
public class RendererItemMultiLayeredArmor implements IItemRenderer {
@Override
public boolean handleRenderType(ItemStack pItemStack, ItemRenderType pRenderType) {
return (pRenderType == ItemRenderType.INVENTORY);
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType pRenderType, ItemStack pItemStack, ItemRendererHelper pRenderHelper) {
return false;
}
@Override
public void renderItem(ItemRenderType pRenderType, ItemStack pItemStack, Object... pRenderData) {
Tessellator tTess = Tessellator.instance;
MultiLayeredArmor tArmor = (MultiLayeredArmor) pItemStack.getItem();
int tTotalRenderPasses = tArmor.getRenderPasses(pItemStack);
GL11.glScalef(16F, 16F, 16F);
for (int lRenderPass = 0; lRenderPass <= tTotalRenderPasses; lRenderPass++) {
tTess.startDrawingQuads();
CustomResource tResource = tArmor.getResource(pItemStack, lRenderPass);
//Split the string so that the Icon Location can be modified for the RenderEngine.
String tIconLocation = tResource.getIconLocation();
String[] tIconLocations = tIconLocation.split(":");
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(tIconLocations[0] + ":" + "textures/items/" + tIconLocations[1] + ".png"));
float tRed = tResource.getColor(0) / 255.0F;
float tGreen = tResource.getColor(1) / 255.0F;
float tBlue = tResource.getColor(2) / 255.0F;
tTess.setColorRGBA_F(tRed, tGreen, tBlue, 1.0F);
tTess.addVertexWithUV(0, 0, 0, 0, 0);//bottom left texture
tTess.addVertexWithUV(0, 1, 0, 0, 1);//top left
tTess.addVertexWithUV(1, 1, 0, 1, 1);//top right
tTess.addVertexWithUV(1, 0, 0, 1, 0);//bottom right
tTess.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
tTess.draw();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment