Иконка ресурса

Инструмент для крафта 1.0.0

Нет прав для скачивания
Версия(и) Minecraft
1.12.2
О задумке
Изначально инструмент данного типа задумывался как подобие молота из IC2, но поскольку разработчики данного мода не любят делится кодом с кем попало, то пришлось комбинировать открытые исходники IE, противозаконного декомпилирования IC2 и помощи Timaxa007.
Предмет
Сначала стоит отметить, что понадобится внести правки как в код главного класса мода, так и класса предмета. Для начала в главном классе мода нужно вызвать утилиту Random. В теле главного класса мода добавьте в начале:
Java:
public static Random random = new Random(); //вызываем в главном классе, чтобы потом не вызывать по десять раз откуда попало
Теперь создадим класс предмета:
Java:
public class MyItem extends Item {
  
    public MyItem() {
      
        this.setCreativeTab(CreativeTabs.TOOLS); //Вкладка в креативе
        this.setMaxDamage(59); //Запас прочности, не забываем, что есть 0, и при значении 59 мы сможем скрафтить 60 раз а не 59!
        this.setMaxStackSize(1); //Размер в стаке
        this.setNoRepair(); //Дабы избежать дюпа нужно убрать починку
        this.setRegistryName("wood_saw"); //Регистрируемое имя
        this.setUnlocalizedName("tool.wood.saw"); //Ключ локализации
      
    }
  
    public boolean hasContainerItem(ItemStack stack) { //Может ли предметь иметь метаданные
      
        return true; //Да, может
      
    }

    @Override
    public ItemStack getContainerItem(ItemStack stack) { //Получаем контейнер метаданных
      
        ItemStack ret = stack.copy(); //Чтобы при крафте не исчезал копируем, его с прибавкой к мета, что уменьшает прочность
      
        if(ret.attemptDamageItem(1, Galaxy.random, null)) //Если прочность ноль то...
          
            return ItemStack.EMPTY; //предмет исчезнет
      
        else
          
            return ret; //Если прочность не исчерпана то прибавим дальше
      
    }
  
}
Всё, в классах нам больше делать нечего.
Рецепт
Теперь создадим рецепт. и тут его тоже нужно подредактировать:
JSON:
{
    "type": "minecraft:crafting_shaped",
    "pattern": [
        "A",
        "B"
    ],
    "key": {
        "A": {
            "item": "galaxy:wood_saw",
            "data": 32767
            "__comment": "Число максимального значения Short используется как любая метадата, то-есть любая прочность.",
        },
        "B": {
            "item": "minecraft:planks",
            "data": 32767
            "__comment": "Число максимального значения Short используется как любая метадата, то-есть любая прочность.",
        }
    },
    "result": {
        "item": "minecraft:stick",
        "count": 8
    }
}
Если же вам надо рецепт java кодом, то в класс рецептов добавьте сий код:
Java:
GameRegistry.addShapedRecipe(new ResourceLocation("galaxy:wooden_planks"), new ResourceLocation("galaxy:planks"), new ItemStack(Blocks.PLANKS, 8, 1), new Object[]{ //Указываем локация якобы ресурса (можно использовать в получении крафтов в книге знаний)
                " A",
                " B", //Сам паттерн, ну или сетка крафта
                'A', new ItemStack(ItemsInit.WOOD_SAW, 1, 32767), //Указываем предмет, количество и мету(мета как в json варианте, 32767 для любой меты)
                'B', new ItemStack(Blocks.LOG, 1, 1)
                });
Данным образом можна сделать хоть молот из IC2, хоть пилу из TFC.
  • Like
Реакции: Antony_wes, Dretha и Garik
Автор
LeyxorCheysen
Скачивания
4
Просмотры
1,204
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя LeyxorCheysen

Последние обновления

  1. Орфография и коментарии.

    Были исправлены некоторые орфографические ошибки, изменены некоторые коментарии и объяснения для...
  2. Код

    Добавил пример реализации рецепта через java код.
Сверху