Замена RenderPlayerEvent.Specials

Версия Minecraft
1.12.2
Добрый вечер, после перехода с 1.7 на 1.12 я был удивлён ситуации с рендером моделей в новых версиях. Решил взять рендер моделей с 1.7 и не париться со всем этим, но столкнулся с тем, что RenderPlayerEvent.Specials теперь является устаревшим.

Java:
float rotation = e.getEntityPlayer().prevRenderYawOffset + (e.getEntityPlayer().renderYawOffset - e.getEntityPlayer().prevRenderYawOffset) * e.getPartialRenderTick();
GL11.glRotated(rotation, 0, -1, 0);
e.getRenderer().getMainModel().bipedRightArm.postRender(0.0625f);
Решил пофиксить вот таким вот образом(Если рендерить руку перед поворотом, то почему-то ничего не срабатывает).
Модель стала брать повороты правой руки, но не её транслейты в момент покоя. Собственно вопрос состоит в том, можно ли как-то получать транслейты из этой анимации или в крайнем случае вообще выпилить её?
 

Вложения

  • 1591137339890.png
    1591137339890.png
    221.1 KB · Просмотры: 35
Решение
но ведь можно не использовать такие приколы?

есть RenderPlayerAPI почти для всех версии наверное, нужно если чет с моделькой игрока делать - можешь его качать и играться с ModelPlayer апи, там всё намного легче

necauqua

когда-то был anti344
Администратор
1,216
27
172
Не могу пойти чекнуть, но вероятно этот ответ это то что ты ищешь:
 
Java:
@SubscribeEvent
    public void testRenderModel(RenderLivingEvent.Specials.Pre<EntityPlayer> e)
    {
        if(!(e.getEntity() instanceof EntityPlayer))
        {
            return;
        }
        EntityPlayer player = (EntityPlayer) e.getEntity();
        GL11.glPushMatrix();
        float rotation = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * e.getPartialRenderTick();
        GL11.glScaled(0.3, 0.3, 0.3);
        GL11.glRotated(90, 1, 0, 0);
        GL11.glRotated(rotation, 0, 0, 1);
        ((ModelBiped)e.getRenderer().getMainModel()).bipedRightArm.postRender(0.0625f);
        mc.renderEngine.bindTexture(new ResourceLocation("test", "models/test.png"));
        playerModel.renderAll();
        GL11.glPopMatrix();
    }
Все та же проблема, модель живёт своей жизнью относительно руки персонажа, возможно дело в центре вращения, но как я не пытался, не смог сдвинуть его в нужное место
 
Последнее редактирование:
7,099
324
1,510
А в чем, собственно, состоит задача? Сделать так, чтобы руки игрока не меняли положения, когда он берет в руку предмет?
 

jopi

Попрошайка
1,421
30
260
но ведь можно не использовать такие приколы?

есть RenderPlayerAPI почти для всех версии наверное, нужно если чет с моделькой игрока делать - можешь его качать и играться с ModelPlayer апи, там всё намного легче
 
Сверху