[1.7.10/1.6.4] Пример Брони с Obj моделью (слив кода)

@timaxa007 А если я хочу например сделать один нагрудник и мне не нужна остальная броня, то как делать?
 

timaxa007

Модератор
5,831
409
672
А текстура тоже там рисуется или отдельно надо рисовать ?
Нет, я делаю текстуру в программе paint.net, а 3D's Max я добавляю.
---
А если я хочу например сделать один нагрудник
Там есть не только целым сетом рендер, но и по отдельности,
Backpack.
 
Перенёс мод на 1.8 с помощью либы от Alex-the-666(т.к obj больше не поддерживается на 1.8+), но возникли проблемы с анимациями)
 

Вложения

  • 2019-06-19_16.45.22.png
    2019-06-19_16.45.22.png
    847.2 KB · Просмотры: 31
  • 2019-06-19_16.45.28.png
    2019-06-19_16.45.28.png
    866.6 KB · Просмотры: 31
  • 2019-06-19_17.00.18.png
    2019-06-19_17.00.18.png
    431.8 KB · Просмотры: 29

timaxa007

Модератор
5,831
409
672
т.к obj больше не поддерживается на 1.8+
Вроде есть от Forge загрузчик, только отличия от 1.7.х он другой.
но возникли проблемы с анимациями)
Бывает. Возможно некоторые движения не корректно передаются.
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
Не подскажешь как исправить?)
Если без использования эвента, то не знаю.
С использованием эвента, я сейчас портирую, нужно найти нужный слой или модель игрока из него брать нужные переменные. (Надеюсь обойдёться без рефлексии)
---
И да портирую для 1.12.2, так как у меня не оказалось рабочей версии 1.8.х.
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
@SonicTheHeghog, эх к сожалению мне пока-что не удалось. полностью портировать, всё время какие-то "ёжики" получаются:


Не подскажешь как исправить?)
Вот так вот пока-что:
Java:
    @SubscribeEvent
    public void onRenderArmomForPlayer(RenderPlayerEvent.Post event) {
        for (int i = 0; i < event.getEntityPlayer().inventory.armorInventory.size(); ++i) {
            ItemStack is = event.getEntityPlayer().inventory.armorInventory.get(i);
            if (is == null) return;
            ArmorCustomModel acm = getModel(event.getEntityPlayer(), is, i);
            if (acm == null) return;
            acm.partHead.set(event.getRenderer().getMainModel().bipedHead);
            acm.partBody.set(event.getRenderer().getMainModel().bipedBody);
            acm.partRightArm.set(event.getRenderer().getMainModel().bipedRightArm);
            acm.partLeftArm.set(event.getRenderer().getMainModel().bipedLeftArm);
            acm.partRightLeg.set(event.getRenderer().getMainModel().bipedRightLeg);
            acm.partLeftLeg.set(event.getRenderer().getMainModel().bipedLeftLeg);
            acm.render(event.getEntityPlayer());
        }
    }
 
3,005
192
592

timaxa007

Модератор
5,831
409
672
@Doc, да я знаю, но я просто забыл исправить это. Всё равно рендер криво работал и из-за этого я много что не исправил.
 

timaxa007

Модератор
5,831
409
672
@Зарак, всё нормально, без рефлексии обошлось. Я просто подумал о другом.
 
Вот так вот пока-что:
Исправил, значит, баг с приседанием вот таким образом
Java:
        isSneak = entity.isSneaking();
        ItemStack itemstack = ((EntityLivingBase)entity).getEquipmentInSlot(0);
        heldItemRight = itemstack != null ? 1 : 0;

        aimedBow = false;
        if (itemstack != null && entity instanceof EntityPlayer && ((EntityPlayer)entity).getItemInUseCount() > 0)
        {
            EnumAction enumaction = itemstack.getItemUseAction();
            if (enumaction == EnumAction.BLOCK)
            {
                heldItemRight = 3;
            }
            else if (enumaction == EnumAction.BOW)
            {
                aimedBow = true;
            }
        }
        setRotationAngles(f, f1, f2, f3, f4, f5, entity);
        if (isSneak)
        {
            GlStateManager.translate(0.0F, 0.2F, 0.0F);
        }
Осталась только проблема когда с обычным предметом в руке бьёшь что-то рука вылезает из брони.
 

timaxa007

Модератор
5,831
409
672
[1.12.2] (без использования эвента)
(github) Armor_OBJ_1_12_2
Всё ещё считаю, что можно было по другому. Ну хоть это работает и без "ёжиков".

 
Последнее редактирование:
Сверху