[Решённый вопрос] Модель игрока

Статус
В этой теме нельзя размещать новые ответы.
Хочу изменить положение шейпов модели игрока, если он держит предмет N. Но не могу понять, где лежит модель игрока. В ModelBiped, как я понял, смена положений шейпов - смена положений частей брони привязанных к тому или иному шейпу самой модели? Тогда как мне достучаться до шейпов именно модели игрока?
P.S. Догадываюсь, что модель всё таки там, но я просто не могу сделать то, что хочу.
 
Up
Попробую переформулировать вопрос:
Мне нужно изменить положение шейпов модели игрока в ивенте, но я не могу сделать этого, так как до сих пор не могу понять, где расположена модель игрока. Собственно в этом и состоит вопрос, где она находится?
 
То что я знаю ...
4el0vek написал(а):
где расположена модель игрока. Собственно в этом и состоит вопрос, где она находится?
Код:
@SubscribeEvent
public void grembipi1(RenderPlayerEvent event) {
event.renderer.modelBipedMain;
}
4el0vek написал(а):
Мне нужно изменить положение шейпов модели игрока в ивенте, но я не могу сделать этого, так как до сих пор не могу понять
Через эвент не получиться нормально двигать шейпами, так как мешает ванильная анимация.
Тебе нужно что-то типа этого:
Код:
@SubscribeEvent
public void grembipi1(RenderPlayerEvent.Specials.Post event) {

    ItemStack is = event.entityPlayer.getCurrentEquippedItem();

    if (is != null && is.getItem() == Items.poisonous_potato) {

        event.renderer.modelBipedMain.bipedLeftArm.showModel = false;
        event.renderer.modelBipedMain.bipedRightArm.showModel = false;

        ModelBiped mb = new ModelBiped();

        GL11.glPushMatrix(); {
            if (event.entityPlayer instanceof EntityClientPlayerMP)
Minecraft.getMinecraft().renderEngine.bindTexture(((EntityClientPlayerMP)event.entityPlayer).getLocationSkin());
                else
Minecraft.getMinecraft().renderEngine.bindTexture(AbstractClientPlayer.locationStevePng);

            GL11.glPushMatrix();
            GL11.glRotatef(180F, 1F, 0F, 0F);
            mb.bipedLeftArm.render(0.0625F);
            GL11.glPopMatrix();

            GL11.glPushMatrix();
            GL11.glRotatef(180F, 1F, 0F, 0F);
            mb.bipedRightArm.render(0.0625F);
            GL11.glPopMatrix();

        } GL11.glPopMatrix();

    } else {
        event.renderer.modelBipedMain.bipedLeftArm.showModel = true;
        event.renderer.modelBipedMain.bipedRightArm.showModel = true;
    }
}
 
Всем огромное спасибо, тему можно закрывать.
Способом Agravaine'a у меня получилось достать шейпы модели игрока (метод назывался getEntityRenderObject(player)), но их можно было только скрыть или сдвинуть по осям, а вот наклонить или изменить точку наклона нельзя было из-за того, что всё сбивала ванильная анимация, вследствие анимация наклонов мелькала раз в несколько секунд.
У Тимахи способ позволяет скрыть ванильную анимацию и применить свои значения для наклонов шейпов.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху