Рендер предмета в руке

Версия Minecraft
1.6.4
31
1
1
Хотел я сделать так, что если игрок держит меч в руках, то рука тоже рендерилась. Решил делать хук в renderItemInFirstPerson, но получилось лишь то, что видно на скрине. Рука двигается, все хорошо, на надо бы сдвинуть предмет вперед и рука почему то темная. может кто подсказать, как лучше сделать?
код:
код:
    @Hook(injectOnExit = true)
    public static void renderItemInFirstPerson(ItemRenderer renderer, float par1)
    {
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
          RenderHelper.enableStandardItemLighting();

            Minecraft mc = Minecraft.getMinecraft();
            if(mc.thePlayer.inventory.getCurrentItem() != null && mc.thePlayer.inventory.getCurrentItem().getItem().isFull3D())
            {
                EntityClientPlayerMP entityclientplayermp = mc.thePlayer;
                ItemStack itemstack = mc.thePlayer.inventory.getCurrentItem();

                int i = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, 0);

                int j = i % 65536;
                int k = i / 65536;
                OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F);

                GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

                float f5 = mc.theWorld.getLightBrightness(MathHelper.floor_double(entityclientplayermp.posX), MathHelper.floor_double(entityclientplayermp.posY), MathHelper.floor_double(entityclientplayermp.posZ));

                float f7 = (float)(i >> 16 & 255) / 255.0F;
                float f8 = (float)(i >> 8 & 255) / 255.0F;
                float f6 = (float)(i & 255) / 255.0F;

                GL11.glColor4f(f5 * f7, f5 * f8, f5 * f6, 1.0F);

                //GL11.glColor3f(1.0f, 1.0f, 1.0f);
                //GL11.glDisable(GL11.GL_LIGHTING);
                if(f1 <1)
                f1 += 0.075f;
                Render render;
                RenderPlayer renderplayer;
                mc.getTextureManager().bindTexture(mc.thePlayer.getLocationSkin());
                GL11.glPushMatrix();
                float f12 = 0.8F;
                 f7 = entityclientplayermp.getSwingProgress(par1);
                 f8 = MathHelper.sin(f7 * (float)Math.PI);
                 f6 = MathHelper.sin(MathHelper.sqrt_float(f7) * (float)Math.PI);
                GL11.glTranslatef(-f6 * 0.3F, MathHelper.sin(MathHelper.sqrt_float(f7) * (float)Math.PI * 2.0F) * 0.4F, -f8 * 0.4F);
                GL11.glTranslatef(0.8F * f12, -0.75F * f12 - (1.0F - f1) * 0.6F, -0.9F * f12);
                GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F);
                GL11.glEnable(GL12.GL_RESCALE_NORMAL);
                f7 = entityclientplayermp.getSwingProgress(par1);
                f8 = MathHelper.sin(f7 * f7 * (float)Math.PI);
                f6 = MathHelper.sin(MathHelper.sqrt_float(f7) * (float)Math.PI);
                GL11.glRotatef(f6 * 70.0F, 0.0F, 1.0F, 0.0F);
                GL11.glRotatef(-f8 * 20.0F, 0.0F, 0.0F, 1.0F);
                mc.getTextureManager().bindTexture(entityclientplayermp.getLocationSkin());
                GL11.glTranslatef(-1.0F, 3.6F, 3.5F);
                GL11.glRotatef(120.0F, 0.0F, 0.0F, 1.0F);
                GL11.glRotatef(200.0F, 1.0F, 0.0F, 0.0F);
                GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F);
                GL11.glScalef(1.0F, 1.0F, 1.0F);
                GL11.glTranslatef(5.6F, 0.0F, 0.0F);
                render = RenderManager.instance.getEntityRenderObject(mc.thePlayer);
                renderplayer = (RenderPlayer)render;
                float f11 = 1.0F;
                GL11.glScalef(f11, f11, f11);
                renderplayer.renderFirstPersonArm(mc.thePlayer);
                GL11.glPopMatrix();
                GL11.glColor3f(1.0f, 1.0f, 1.0f);

            }else f1 = 0;
           GL11.glDisable(GL12.GL_RESCALE_NORMAL);
           RenderHelper.disableStandardItemLighting();
           GL11.glDisable(GL11.GL_LIGHTING);
    }
 

Вложения

  • 1590623962319.png
    1590623962319.png
    136 KB · Просмотры: 31
Сверху