package micdoodle8.mods.galacticraft.core.client.render.entities.layer;
import micdoodle8.mods.galacticraft.core.Constants;
import micdoodle8.mods.galacticraft.core.client.model.ModelPlayerGC;
import micdoodle8.mods.galacticraft.core.wrappers.PlayerGearData;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.model.ModelPlayer;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class LayerOxygenGear implements LayerRenderer<AbstractClientPlayer>
{
private final RenderPlayer playerRenderer;
public ModelRenderer[][] tubes = new ModelRenderer[2][7];
public LayerOxygenGear(RenderPlayer playerRendererIn)
{
this.playerRenderer = playerRendererIn;
float scaleFactor = 0.0F;
ModelPlayer modelPlayer = playerRendererIn.getMainModel();
this.tubes[0][0] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][0].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][0].setRotationPoint(2F, 3F, 5.8F);
this.tubes[0][0].setTextureSize(128, 64);
this.tubes[0][0].mirror = true;
this.tubes[0][1] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][1].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][1].setRotationPoint(2F, 2F, 6.8F);
this.tubes[0][1].setTextureSize(128, 64);
this.tubes[0][1].mirror = true;
this.tubes[0][2] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][2].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][2].setRotationPoint(2F, 1F, 6.8F);
this.tubes[0][2].setTextureSize(128, 64);
this.tubes[0][2].mirror = true;
this.tubes[0][3] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][3].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][3].setRotationPoint(2F, 0F, 6.8F);
this.tubes[0][3].setTextureSize(128, 64);
this.tubes[0][3].mirror = true;
this.tubes[0][4] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][4].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][4].setRotationPoint(2F, -1F, 6.8F);
this.tubes[0][4].setTextureSize(128, 64);
this.tubes[0][4].mirror = true;
this.tubes[0][5] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][5].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][5].setRotationPoint(2F, -2F, 5.8F);
this.tubes[0][5].setTextureSize(128, 64);
this.tubes[0][5].mirror = true;
this.tubes[0][6] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[0][6].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[0][6].setRotationPoint(2F, -3F, 4.8F);
this.tubes[0][6].setTextureSize(128, 64);
this.tubes[0][6].mirror = true;
this.tubes[1][0] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][0].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][0].setRotationPoint(-2F, 3F, 5.8F);
this.tubes[1][0].setTextureSize(128, 64);
this.tubes[1][0].mirror = true;
this.tubes[1][1] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][1].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][1].setRotationPoint(-2F, 2F, 6.8F);
this.tubes[1][1].setTextureSize(128, 64);
this.tubes[1][1].mirror = true;
this.tubes[1][2] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][2].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][2].setRotationPoint(-2F, 1F, 6.8F);
this.tubes[1][2].setTextureSize(128, 64);
this.tubes[1][2].mirror = true;
this.tubes[1][3] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][3].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][3].setRotationPoint(-2F, 0F, 6.8F);
this.tubes[1][3].setTextureSize(128, 64);
this.tubes[1][3].mirror = true;
this.tubes[1][4] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][4].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][4].setRotationPoint(-2F, -1F, 6.8F);
this.tubes[1][4].setTextureSize(128, 64);
this.tubes[1][4].mirror = true;
this.tubes[1][5] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][5].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][5].setRotationPoint(-2F, -2F, 5.8F);
this.tubes[1][5].setTextureSize(128, 64);
this.tubes[1][5].mirror = true;
this.tubes[1][6] = new ModelRenderer(modelPlayer, 0, 0).setTextureSize(128, 64);
this.tubes[1][6].addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, scaleFactor);
this.tubes[1][6].setRotationPoint(-2F, -3F, 4.8F);
this.tubes[1][6].setTextureSize(128, 64);
this.tubes[1][6].mirror = true;
}
@Override
public void doRenderLayer(AbstractClientPlayer player, float f5, float f6, float partialTicks, float f8, float f2, float f7, float scale)
{
if (!player.isInvisible())
{
PlayerGearData gearData = ModelPlayerGC.getGearData(player);
if (gearData != null)
{
boolean wearingGear = gearData.getGear() == Constants.GEAR_ID_OXYGEN_GEAR;
FMLClientHandler.instance().getClient().renderEngine.bindTexture(ModelPlayerGC.playerTexture);
if (wearingGear && !playerRenderer.getMainModel().isSneak)
{
for (int i = 0; i < 7; i++)
{
for (int k = 0; k < 2; k++)
{
ModelPlayer.copyModelAngles(this.playerRenderer.getMainModel().bipedBody, this.tubes[k][i]);
GlStateManager.pushMatrix();
GlStateManager.translate(0.175F * (float) (k * 2 - 1), 0.0F, 0.0F);
GlStateManager.translate(0.0F, -0.0325F * (float) (i * 2 - 1), 0.0F);
GlStateManager.translate(0.0F, 0.0F, -0.0325F * (float) (Math.pow(i * 2 - 1, 2) * 0.05));
GlStateManager.translate(0.0F, 0.2F, 0.0F);
GlStateManager.translate(0.0F, 0.0F, 0.2F);
this.tubes[k][i].render(scale);
GlStateManager.popMatrix();
}
}
}
}
}
GlStateManager.color(1.0F, 1.0F, 1.0F);
}
@Override
public boolean shouldCombineTextures()
{
return true;
}
}