package openblocks.client.renderer.item; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.item.ItemStack; import net.minecraftforge.client.IItemRenderer; import openblocks.common.entity.EntityLuggage; import openmods.utils.LazyValue; import openmods.utils.render.RenderUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; public class ItemRendererLuggage implements IItemRenderer { private final LazyValue<EntityLuggage> luggage = new LazyValue<EntityLuggage>() { @Override protected EntityLuggage initialize() { return new EntityLuggage(null); } }; @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return true; } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return true; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { if (Minecraft.getMinecraft().theWorld != null) { GL11.glPushMatrix(); EntityLuggage luggage = this.luggage.get(); luggage.worldObj = Minecraft.getMinecraft().theWorld; GL11.glTranslatef(0.5f, 0, 0.5f); luggage.getInventory().clearAndSetSlotCount(27); if (item.hasTagCompound()) { luggage.getInventory().readFromNBT(item.getTagCompound()); } Render renderer = RenderManager.instance.getEntityRenderObject(luggage); if (renderer.getFontRendererFromRenderManager() != null) { renderer.doRender(luggage, 0, 0, 0, 0, 0.5f); } GL11.glPopMatrix(); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL12.GL_RESCALE_NORMAL); RenderUtils.disableLightmap(); } } }