package micdoodle8.mods.galacticraft.core.client.render.entities.layer; import micdoodle8.mods.galacticraft.api.entity.ICameraZoomEntity; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.client.renderer.entity.layers.LayerRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class LayerHeldItemGC implements LayerRenderer<AbstractClientPlayer> { private final RendererLivingEntity<?> livingEntityRenderer; public LayerHeldItemGC(RendererLivingEntity<?> livingEntityRendererIn) { this.livingEntityRenderer = livingEntityRendererIn; } @Override public void doRenderLayer(AbstractClientPlayer player, float p_177141_2_, float p_177141_3_, float partialTicks, float p_177141_5_, float p_177141_6_, float p_177141_7_, float scale) { if (player.ridingEntity instanceof ICameraZoomEntity) { return; } ItemStack itemstack = player.getHeldItem(); if (itemstack != null) { GlStateManager.pushMatrix(); if (this.livingEntityRenderer.getMainModel().isChild) { float f = 0.5F; GlStateManager.translate(0.0F, 0.625F, 0.0F); GlStateManager.rotate(-20.0F, -1.0F, 0.0F, 0.0F); GlStateManager.scale(f, f, f); } ((ModelBiped)this.livingEntityRenderer.getMainModel()).postRenderArm(0.0625F); GlStateManager.translate(-0.0625F, 0.4375F, 0.0625F); if (player instanceof EntityPlayer && ((EntityPlayer)player).fishEntity != null) { itemstack = new ItemStack(Items.fishing_rod, 0); } Item item = itemstack.getItem(); Minecraft minecraft = Minecraft.getMinecraft(); if (item instanceof ItemBlock && Block.getBlockFromItem(item).getRenderType() == 2) { GlStateManager.translate(0.0F, 0.1875F, -0.3125F); GlStateManager.rotate(20.0F, 1.0F, 0.0F, 0.0F); GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F); float f1 = 0.375F; GlStateManager.scale(-f1, -f1, f1); } if (player.isSneaking()) { GlStateManager.translate(0.0F, 0.203125F, 0.0F); } minecraft.getItemRenderer().renderItem(player, itemstack, ItemCameraTransforms.TransformType.THIRD_PERSON); GlStateManager.popMatrix(); } } @Override public boolean shouldCombineTextures() { return false; } }