DisguiseClientHandler.java 文件源码

java
阅读 30 收藏 0 点赞 0 评论 0

项目:CrystalMod 作者:
@SideOnly(Side.CLIENT)
public static void renderArmFirstPerson(float progress, float swing, EnumHandSide handSide, boolean mini)
{
    boolean flag = handSide != EnumHandSide.LEFT;
    float f = flag ? 1.0F : -1.0F;
    float f1 = MathHelper.sqrt(swing);
    float f2 = -0.3F * MathHelper.sin(f1 * (float)Math.PI);
    float f3 = 0.4F * MathHelper.sin(f1 * ((float)Math.PI * 2F));
    float f4 = -0.4F * MathHelper.sin(swing * (float)Math.PI);
    GlStateManager.translate(f * (f2 + 0.64000005F), f3 + -0.6F + progress * -0.6F, f4 + -0.71999997F);
    GlStateManager.rotate(f * 45.0F, 0.0F, 1.0F, 0.0F);

    if(mini)GlStateManager.scale(0.8, 0.8, 0.8);

    float f5 = MathHelper.sin(swing * swing * (float)Math.PI);
    float f6 = MathHelper.sin(f1 * (float)Math.PI);
    GlStateManager.rotate(f * f6 * 70.0F, 0.0F, 1.0F, 0.0F);
    GlStateManager.rotate(f * f5 * -20.0F, 0.0F, 0.0F, 1.0F);
    AbstractClientPlayer abstractclientplayer = (AbstractClientPlayer) CrystalMod.proxy.getClientPlayer();
    Minecraft.getMinecraft().getTextureManager().bindTexture(abstractclientplayer.getLocationSkin());
    GlStateManager.translate(f * -1.0F, 3.6F, 3.5F);
    GlStateManager.rotate(f * 120.0F, 0.0F, 0.0F, 1.0F);
    GlStateManager.rotate(200.0F, 1.0F, 0.0F, 0.0F);
    GlStateManager.rotate(f * -135.0F, 0.0F, 1.0F, 0.0F);
    GlStateManager.translate(f * 5.6F, 0.0F, 0.0F);

    RenderPlayer renderplayer = renderHandOverride;
    GlStateManager.disableCull();

    if (flag)
    {
        renderplayer.renderRightArm(abstractclientplayer);
    }
    else
    {
        renderplayer.renderLeftArm(abstractclientplayer);
    }

    GlStateManager.enableCull();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号