Рендер брони на руке от первого лица 1.7.10

Версия Minecraft
1.7.10
37
1
Помогите зарендеритть броню на руке от первого лица буду благодарер
 
1,159
38
544
Тебе нужно написать свой ItemRenderer и зарегистрировать его для своего предмета. Вот пример. Это хоть и итем блока, но думаю суть ясна.

Java:
// https://www.youtube.com/watch?v=OkoQ78ktAb8
    // Это не совсем тот тутор, по которому я это делал, но он натолкнул меня на многие важные мысли
    /**
     * Рендерер блока {@link UpgradeStationBlock} в инвентаре и в руке
     */
    public static class Renderer implements IItemRenderer {
        TileEntitySpecialRenderer render;
        private TileEntity te; // Хз зачем, но в туторе нужно

        public Renderer(TileEntitySpecialRenderer render, TileEntity te) {
            this.render = render;
            this.te = te;
        }

        @Override
        public boolean handleRenderType(ItemStack item, ItemRenderType type) {
            return true;
        }

        @Override
        public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
            return true;
        }

        @Override
        public void renderItem(ItemRenderType type, ItemStack item, Object... data) {

            if (type == ItemRenderType.EQUIPPED) {
                GL11.glTranslatef(0.5F, 0.0F, 0.5F); // Делаем так, чтобы рука игрока держалась за центр блока
                GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); // Поворачиваем тисками в другую сторону, чтобы сами тиски были видны. А то некрасиво
            }

            if (type == ItemRenderType.INVENTORY) {
                GL11.glTranslatef(0.0F, -0.5F, 0.0F); // Чутка опустим предмет вниз, чтобы он нормально отображался в слоте инвентаря
                //GL11.glScalef(1.3F, 1.3F, 1.3F);
            } else {
                // Делаем его чуть-больше, чтобы лучше смотрелся
                //GL11.glScalef(1.5F, 1.5F, 1.5F);
            }

            if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) {
                GL11.glTranslatef(0.0F, 0.35F, 0.5F); // Смещаем центр предмета в руке, чтобы он рисовался там же, где и все остальные блоки, когда их держит юзер
                //GL11.glScalef(1.3F, 1.3F, 1.3F);
            }

            // биндим текстуру
            //Minecraft.getMinecraft().renderEngine.bindTexture(texture);

            // Рендерим obj-модель
            //model.renderAll();
        }
}

В ClientProxy потом регай рендерер

Java:
// Как-то так. Адаптируешь потом сам.
MinecraftForgeClient.registerItemRenderer(c1, new UpgradeStationTESR.Renderer(new UpgradeStationTESR(), new UpgradeStationEntity()));
 
7,099
324
1,510
IItemRenderer ведь для предмета в руке, а не для вида руки при надетой броне, а?
 
7,099
324
1,510
Ну так получается, что IItemRenderer это еще пол дела, осталось только где-то заменить рендер рук
 
1,193
31
182
заменить рендер рук
если рендеришь свою модель руки стива, взять тот же рендер оружия от 1 лица с руками, то там просто так же достаешь 3д модель брони (я это делаю через ItemArmor свой, намного проще) и рендеришь парт "rightarm" или "leftarm" при этом 1 раз подогнать к руке, и готово.
 
Сверху