[1.7.10] Изменение ванильной брони

Led

291
3
0
Задача такова:
Сделать материал "Золото" для брони менее прочным ( не (7, new int[]{2, 5, 3, 1}, 25), а (1, new int[] {1, 1, 1, 1}, 10)).
Резонный вопрос: как это сделать?
Вижу запасной вариант - удалить золотую броню, и создать заново со своим материалом, но не горю желанием так делать.

Пытался по аналогии с изменением вкладки в креатие для ванильного предмета.
Вот так
Код:
ItemArmor.ArmorMaterial.GOLD(7, new int[]{2, 5, 3, 1}, 25);

свойства ванильного материала изменяться не захотели.
P.S Надо будет еще это же провернуть с материалом для инструментов. 

С Уважением, Вячеслав.

__________
Сам переискал ничего подобного не нашел, видимо, не в ту сторону копаю
Менять нелокализованное имя, вкладку - да
Основные свойства материала - не
 
Код:
public class ModAlso {
        static ArmorMaterial SOFT = EnumHelper.addArmorMaterial("SoftArmorMaterial", 1, new int[] {1, 1, 1, 1}, 10);
    public static void init(){
    
        Items.golden_helmet.material(ModAlso.SOFT, 0, 1);
        }    
}
 Решил пробовать по частям, но тоже не канает
Видимо, я совсем туплю
 
Не надо. Вытаскиваем экземпляр Item'а (Items.plateGold или как там в 1.7) и вызываем отдельно setMaxDamage с нужным аргументом. Не могу уверенно утверждать, что в 1.7 все получится, но еще в 1.6 это спокойно делалось.
 
Просто вытащить экземляр не получается. Вообще не получается вытаскивать ничего из под ключевого слова super().

Перечитал все по этой ссылке.
Пример, приведенный в статье, изменяющий harvestLevel золотой кирки до значения '2', работает.
Код:
ReflectionHelper.setPrivateValue(ToolMaterial.class, ToolMaterial.GOLD, 2, 5);
Но как он работает, ума не приложу.
Понятно, что 2 - это новое значение harvestLevel для материала GOLD, но что такое 5 для меня загадка, автор объясняет как 
harvestLevel is found at index 5

но почему именно пятерка? есть какая то таблица соответствия индексов названиям параметров?
Помощи прошу я.
Заранее спасибо, Led
 
С MaxDamage никаких проблем. Цель изменить другие параметры, а именно durability, damageReduction и enchantability, которые наследуются у материала. Их нужно изменить либо сразу у всей золотой брони, либо по отдельности у каждого из частей обмундирования. Вопрос - как это сделать. 
Бьюсь уже с утра, почти десять часов над этим подряд)
 
Ясно. Да, другие параметры действительно сложно изменить. Я бы в принципе не трогал ванильную броню, но завел свой аналог и удалил ванильные рецепты. Это быстрее. Если правда нужно изменить ванильную, то страдай, это или очень хитрая рефлексия, или ASM.
 
GloomyFolken написал(а):
Ясно. Да, другие параметры действительно сложно изменить. Я бы в принципе не трогал ванильную броню, но завел свой аналог и удалил ванильные рецепты. Это быстрее. Если правда нужно изменить ванильную, то страдай, это или очень хитрая рефлексия, или ASM.
Под удалением имеется в виду удаление крафтов?
Наверное так и сделаю..
К тому же давно хотелось броню сотворить самому)
 
Проблема в том, что моды грузятся уже после загрузки ванильной брони, а броня вытаскивает из этих енамов значения при инициализации предмета.
 
Назад
Сверху