package aroma1997.betterchests.client.model; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import aroma1997.betterchests.chest.TileEntityBBarrel; @SideOnly(Side.CLIENT) public class TESRBBarrel extends TileEntitySpecialRenderer<TileEntityBBarrel> { public static final TESRBBarrel INSTANCE = new TESRBBarrel(); private TESRBBarrel(){} @Override public void render(TileEntityBBarrel te, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { if (te.getChestPart().isItemSet()) { GlStateManager.pushMatrix(); GlStateManager.translate((float) x, (float) y, (float) z); GlStateManager.translate(0.5F, 0.5F, 0.5F); ItemStack stack = te.getChestPart().getDummy(); EnumFacing side = EnumFacing.HORIZONTALS[te.getBlockMetadata()]; float angle = side.getHorizontalAngle(); switch (side) { case SOUTH: //south angle = 180; break; case WEST: //west angle = 90; break; case NORTH: //north angle = 0; break; case EAST: //east angle = -90; break; } GlStateManager.rotate(angle, 0, 1, 0); { GlStateManager.pushMatrix(); GlStateManager.translate(0, 0.1, -0.5); GlStateManager.scale(0.8, 0.8, 0.8); int skyBrightness = te.getWorld().getCombinedLight(te.getPosition().offset(side), 0); int skyBrightness1 = skyBrightness % 65536; int skyBrightness2 = skyBrightness / 65536; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, skyBrightness1, skyBrightness2); Minecraft.getMinecraft().getRenderItem().renderItem(stack, TransformType.FIXED); GlStateManager.popMatrix(); } { GlStateManager.pushMatrix(); GlStateManager.translate(0, -0.25, -0.51); GlStateManager.scale(0.015, 0.015, 0.015); GlStateManager.rotate(180, 0, 0, 1); String text = te.getChestPart().getAmountDescr(); int textlen = Minecraft.getMinecraft().fontRenderer.getStringWidth(text); Minecraft.getMinecraft().fontRenderer.drawString(text, -textlen / 2, 0, 0xFFFFFFFF); GlStateManager.popMatrix(); } GlStateManager.popMatrix(); } } }