package net.smart.render;
import net.smart.utilities.*;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.model.*;
import net.minecraft.client.renderer.entity.*;
import net.minecraft.entity.*;
import net.minecraft.entity.player.*;
public class RenderPlayer extends net.minecraft.client.renderer.entity.RenderPlayer implements IRenderPlayer
{
private ModelBiped modelArmorChestplate;
private ModelBiped modelArmor;
public RenderPlayer()
{
render = new SmartRenderRender(this);
}
public IModelPlayer createModel(ModelBiped existing, float f)
{
return new ModelPlayer(f);
}
public void initialize(ModelBiped modelBipedMain, ModelBiped modelArmorChestplate, ModelBiped modelArmor, float shadowSize)
{
this.mainModel = modelBipedMain;
this.shadowSize = shadowSize;
Reflect.SetField(net.minecraft.client.renderer.entity.RenderPlayer.class, this, SmartRenderInstall.RenderPlayer_modelBipedMain, modelBipedMain);
Reflect.SetField(net.minecraft.client.renderer.entity.RenderPlayer.class, this, SmartRenderInstall.RenderPlayer_modelArmorChestplate, this.modelArmorChestplate = modelArmorChestplate);
Reflect.SetField(net.minecraft.client.renderer.entity.RenderPlayer.class, this, SmartRenderInstall.RenderPlayer_modelArmor, this.modelArmor = modelArmor);
}
@Override
public void doRender(AbstractClientPlayer entityplayer, double d, double d1, double d2, float f, float renderPartialTicks)
{
render.renderPlayer(entityplayer, d, d1, d2, f, renderPartialTicks);
}
public void superRenderPlayer(AbstractClientPlayer entityplayer, double d, double d1, double d2, float f, float renderPartialTicks)
{
super.doRender(entityplayer, d, d1, d2, f, renderPartialTicks);
}
@Override
public void renderFirstPersonArm(EntityPlayer entityPlayer)
{
render.drawFirstPersonHand(entityPlayer);
}
public void superDrawFirstPersonHand(EntityPlayer entityPlayer)
{
super.renderFirstPersonArm(entityPlayer);
}
@Override
protected void rotateCorpse(AbstractClientPlayer entityplayer, float totalTime, float actualRotation, float f2)
{
render.rotatePlayer(entityplayer, totalTime, actualRotation, f2);
}
public void superRotatePlayer(AbstractClientPlayer entityplayer, float totalTime, float actualRotation, float f2)
{
super.rotateCorpse(entityplayer, totalTime, actualRotation, f2);
}
@Override
protected void preRenderCallback(AbstractClientPlayer entityplayer, float f)
{
render.renderSpecials(entityplayer, f);
}
public void superRenderSpecials(AbstractClientPlayer entityplayer, float f)
{
super.preRenderCallback(entityplayer, f);
}
@Override
protected float handleRotationFloat(EntityLivingBase entityliving, float f)
{
render.beforeHandleRotationFloat(entityliving, f);
float result = super.handleRotationFloat(entityliving, f);
render.afterHandleRotationFloat(entityliving, f);
return result;
}
public RenderManager getRenderManager()
{
return renderManager;
}
public ModelBiped getModelBipedMain()
{
return (ModelBiped)mainModel;
}
public ModelBiped getModelArmorChestplate()
{
return modelArmorChestplate;
}
public ModelBiped getModelArmor()
{
return modelArmor;
}
public IModelPlayer getRenderModelBipedMain()
{
return (ModelPlayer)getModelBipedMain();
}
public IModelPlayer getRenderModelArmorChestplate()
{
return (ModelPlayer)getModelArmorChestplate();
}
public IModelPlayer getRenderModelArmor()
{
return (ModelPlayer)getModelArmor();
}
public IModelPlayer[] getRenderModels()
{
if(allIModelPlayers == null)
allIModelPlayers = new IModelPlayer[] { getRenderModelBipedMain(), getRenderModelArmorChestplate(), getRenderModelArmor() };
return allIModelPlayers;
}
private IModelPlayer[] allIModelPlayers;
private final SmartRenderRender render;
}