Как сделать замена рендеринга брони из ic2?

Версия Minecraft
1.7.10
API
Forge
Хотел бы заменить броню из IC2 на 3d броню с помощью своего мода. Как это можно реализовать?
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Если уж не смог понять алгоритм, напишу словами:
В RenderPlayerEvent.Pre сохраняем куда-то стаки из слотов брони игрока, устанавливаем игроку свою броню.
В RenderPlayerEvent.Post восстанавливаем игроку старую броню, которую сохранили в предыдущем шаге.
 
7,099
324
1,510
Тутор и слив по броне:
 
7,099
324
1,510
Надо не копипастить, а разобраться, как оно работает и написать аналогично у себя
 
Если уж не смог понять алгоритм, напишу словами:
В RenderPlayerEvent.Pre сохраняем куда-то стаки из слотов брони игрока, устанавливаем игроку свою броню.
В RenderPlayerEvent.Post восстанавливаем игроку старую броню, которую сохранили в предыдущем шаге.
Вопрос, зачем в Post восстанавливать старую броню?
 

will0376

Токсичная личность
2,077
55
585
Для начала: Хватит писать лесенкой, уважай людей. У тебя доступно редактирование предыдущего сообщения...
зачем в Post восстанавливать старую броню?
1617081982514.png
А если непонятно - попробуй не возвращать, поймешь почему.
 
код рендера:
@SubscribeEvent(priority = EventPriority.HIGH, receiveCanceled = true)
    public void handleEvent(RenderPlayerEvent.Pre event)
    {
        ItemStack[] cachedArmor = cache.getUnchecked(event.entityPlayer);
        ItemStack[] cosArmor = BestArmor; // <== тут ошибка
        ItemStack[] armor = event.entityPlayer.inventory.armorInventory;

        if (armor == null || armor.length != cachedArmor.length)
            return; // Incompatible

        for (int i = 0; i < cachedArmor.length; i++)
            cachedArmor[i] = armor[i];

            for (int i = 0; i < cachedArmor.length; i++)
            {
                /*if ()
                    armor[i] = null;
                else if (cosArmor[i] != null)
                    armor[i] = cosArmor[i];*/
        }
чему должно быть равно cosArmor? Если можете, то напишите строчку кода, если что я создал броню
 
7,099
324
1,510
В косметик-арморе это коллекция со стаками косметической брони, брать ее надо откуда-то из своего хранилища(IEEP или еще чего)
 
7,099
324
1,510
Учитывая, что ты хочешь заменить рендер брони не на рендер существующей брони, а на просто кастомный рендер, то эта коллекция(ну или массив как у тя) должна быть пуста.
Если она пуста, значит, вместо ее элементов можно юзать просто null (ну или ItemStack.EMPTY на новыхверсиях)
 
Сверху