Рендер предмета относительно руки

Версия Minecraft
1.7.10
173
1
3
вертел я этот рендер, как говорится
Собственно, надо сделать рендер как игрок держит щит если у него в руках меч.
Более менее понял как это работает, сделал вот так:
Код:
@SubscribeEvent
    public void grembipi1(RenderPlayerEvent.Specials.Post event) {

        ItemStack is = event.entityPlayer.getCurrentEquippedItem();
        ItemStack x = event.entityPlayer.inventory.getStackInSlot(0);

        if (is != null && is.getItem() instanceof ItemSword) {
            
            GL11.glPushMatrix();
            {
                IIcon icon = x.getItem().getIcon(x, 0);
                Tessellator tessellator = Tessellator.instance;
                ItemRenderer.renderItemIn2D(tessellator, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
            }
            GL11.glPopMatrix();

Получилось довольно криво.  Как крутить и перемещать я знаю, но вот как сделать так, чтобы щит двигался относительно левой руки игрока? Как высчитать ее координаты?
 

Вложения

  • 2016-08-01_10.42.59.png
    2016-08-01_10.42.59.png
    221.3 KB · Просмотры: 144
173
1
3
Модель руки или щита?
 
173
1
3
Всё, проблема решена. Я просто не так понял, что значит "достать модель", вместо нее новую создавал.
Решил вот так:
Код:
 @SubscribeEvent
    public void grembipi1(RenderPlayerEvent.Specials.Post event) {
        ItemStack is = event.entityPlayer.getCurrentEquippedItem();
        ItemStack stack = event.entityPlayer.inventory.getStackInSlot(0);

        if (is != null && is.getItem() instanceof ItemSword) {
            event.renderer.modelBipedMain.bipedLeftArm.postRender(0.0625f);
            IIcon icon = stack.getItem().getIcon(stack, 0);
            Tessellator tessellator = Tessellator.instance;
            ItemRenderer.renderItemIn2D(tessellator, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
         }
 
Сверху