Проблема с отображением модели от первого лица

Версия Minecraft
1.7.10
API
Forge

dxAugust

Живёт в подвале
135
2
8
Всем привет недавно кодил отображение модели на Minecraft 1.7.10. Для отображения я использовал обычны ItemUse Bow, для того чтобы игрок держал в руках оружие с анимацией прицеливания из лука. Возникла проблема, что я не могу разобраться как настроить так, чтобы вид от первого лица выглядел хорошо. Я пошёл на ужасные костыли путём переворачивания модельки непосредственно в самом редакторе. (В самом низу поста есть скриншот как оно должно выглядеть). Можете пожалуйсто помочь или дать наводку в каком направлении я могу что-то сделать.


Рендер модельки оружия:
    public static final ResourceLocation texture = new ResourceLocation(Reference.MODID, "textures/items/farbric yellow.png");

    @Override
    public boolean handleRenderType(ItemStack is, ItemRenderType type) {
        if (type == ItemRenderType.INVENTORY) return false;
        return true;
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) {
        if (type == ItemRenderType.INVENTORY) return false;
        return true;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
        switch(type)
        {
            case EQUIPPED_FIRST_PERSON:
                GL11.glPushMatrix();
                GL11.glRotatef(-225.0F, -6F, 1.5F, -2F);
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            case EQUIPPED:
                GL11.glPushMatrix();
                GL11.glTranslatef(0.1F, 1F, 0.1F);
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            case INVENTORY:
                GL11.glPushMatrix();
                GL11.glTranslatef(0.1F, 0.0F, 0.1F);
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            case ENTITY:
                GL11.glPushMatrix();
                GL11.glTranslatef(0.1F, 0.0F, 0.1F);
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            default:
                break;
        }
    }


Класс предмета:
    public Yboinik()
    {
        this.setUnlocalizedName("testGUN");
        this.setFull3D();
        this.setTextureName(Reference.MODID + ":testgun");
    }

    @Override
    public int getMaxItemUseDuration(ItemStack stack)
    {
        return 2000000000;
    }

    @Override
    public EnumAction getItemUseAction(ItemStack stack)
    {
        return EnumAction.bow;
    }

    @Override
    public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
    {
        ((EntityPlayer)par3Entity).setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
    }
Безымянный.png
2021-12-18_16.13.24.pngСнимок.PNG
 
Последнее редактирование:
не получается от третьего лица её развернуть
Я вот не понимаю, в чём проблема поиграться со значениями в рендере самого предмета, понять принцип работы и добиться желаемого результата ?
Тебе не только я об этом сказал, но ты продолжаешь твердить, что у тебя что-то там не получается... Удаляй тогда проект и не трать на это время, либо откажись от 3д моделей.
 
Его можно настроить в любом редакторе моделей или же вызовом функции GL?
Чел... Загугли, что такое 3d модель.... И как с ней можно работать...

Я просто пытался её развернуть таким способом, но проблема в том что потом не получается от третьего лица её развернуть.
Зачем придумывать велосипед, если можно сделать как я... и потом через GL легко редачить пары...
 
потом не получается от третьего лица её развернуть.
ItemRenderType ловишь... и подстраиваешь для каждого типа

Java:
switch(type)
        {
            case EQUIPPED_FIRST_PERSON:
                GL11.glPushMatrix();
                GL11.glTranslatef(x, y, z); //here
                GL11.glRotatef(angle, x, y, z); //here
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            case EQUIPPED:
                GL11.glPushMatrix();
                GL11.glTranslatef(x, y, z); //here
                GL11.glRotatef(angle, x, y, z); //here
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            case INVENTORY:
                GL11.glPushMatrix();
                GL11.glTranslatef(x, y, z); //here
                GL11.glRotatef(angle, x, y, z); //here
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            case ENTITY:
                GL11.glPushMatrix();
                GL11.glTranslatef(x, y, z); //here
                GL11.glRotatef(angle, x, y, z); //here
                Minecraft.getMinecraft().renderEngine.bindTexture(texture);
                GL11.glCallList(ClientProxy.displayList[0]);
                GL11.glPopMatrix();
                break;

            default:
                break;
        }
 
Последнее редактирование:
Назад
Сверху