package com.cricketcraft.chisel.client.render; import com.cricketcraft.chisel.entity.EntityChiselSnowman; import net.minecraft.block.Block; import net.minecraft.client.model.ModelSnowMan; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; import net.minecraftforge.client.MinecraftForgeClient; import static net.minecraftforge.client.IItemRenderer.ItemRenderType.*; import static net.minecraftforge.client.IItemRenderer.ItemRendererHelper.*; import org.lwjgl.opengl.GL11; public class RenderChiselSnowman extends RenderLiving{ private static final ResourceLocation snowManTextures = new ResourceLocation("textures/entity/snowman.png"); private ModelSnowMan snowMan; public RenderChiselSnowman() { super(new ModelSnowMan(), 0.5F); snowMan = (ModelSnowMan)super.mainModel; setRenderPassModel(this.snowMan); } @Override protected void renderEquippedItems(EntityLivingBase entityLivingBase, float size){ this.renderEquippedItems((EntityChiselSnowman) entityLivingBase, size); } @Override protected ResourceLocation getEntityTexture(Entity entity) { return this.getEntityTexture((EntityChiselSnowman) entity); } protected ResourceLocation getEntityTexture(EntityChiselSnowman snowman){ return snowManTextures; } protected void renderEquippedItems(EntityChiselSnowman snowman, float size){ super.renderEquippedItems(snowman, size); ItemStack itemStack = snowman.getEquipmentInSlot(2); if(itemStack.getItem() instanceof ItemBlock){ GL11.glPushMatrix(); this.snowMan.head.postRender(0.0625F); IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(itemStack, EQUIPPED); boolean is3D = (customRenderer != null && customRenderer.shouldUseRenderHelper(EQUIPPED, itemStack, BLOCK_3D)); if(is3D || RenderBlocks.renderItemIn3d(Block.getBlockFromItem(itemStack.getItem()).getRenderType())){ float f1 = 0.625F; GL11.glTranslatef(0.0F, -0.34375F, 0.0F); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glScalef(f1, -f1, f1); } this.renderManager.itemRenderer.renderItem(snowman, itemStack, 0); GL11.glPopMatrix(); } } }