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;
}
}