Не могу добавить рецепт

Версия Minecraft
1.12.2
5
0
Здравствуйте, совершенно недавно я столкнулся с одной очень большой проблемой, а именно той что не могу добавить свой крафт каким-бы он ни был...
Не получается добавить shaped крафт, shapeless и.т.д.
Искал на форуме ответ на мой вопрос, казалось-бы столько тем но к сожалению мне они не помогли.
Код:
package com.example.metalreloadmod.init;

package com.example.metalreloadmod.init;

import com.example.metalreloadmod.objects.items.ItemBase;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import java.util.ArrayList;
import java.util.List;

public class ItemInit
{
    public static final List<Item> ITEMS = new ArrayList<Item>();

    public static final Item METAL_INGOT = new ItemBase("metal_ingot");



    //@SideOnly(Side.CLIENT)
    //public static void registerRender()
    //{
        //setRender(TEST);
    //}


    @SideOnly(Side.CLIENT)
    private static void setRender(Item item) {

        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));

    }

}

}

Код:
package com.example.metalreloadmod.init;

import java.util.ArrayList;
import java.util.List;

import com.example.metalreloadmod.objects.blocks.MetalOre;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;


public class BlockInit {
    public static final List<Block> BLOCKS = new ArrayList<Block>();

    public static final Block METAL_ORE = new MetalOre("metal_ore", Material.ROCK);
}

Код:
package com.example.metalreloadmod.util;

public class Reference
{
    public static final String MOD_ID = "metalreloadmod";
    public static final String NAME = "Metal Reload";
    public static final String VERSION = "1.0";
    public static final String ACCEPTED_VERSION = "[1.12.2]";
    public static final String CLIENT_PROXY_CLASS = "com.example.metalreloadmod.proxy.ClientProxy";
    public static final String COMMON_PROXY_CLASS = "com.example.metalreloadmod.proxy.CommonProxy";
}

Код:
{
    "type": "minecraft:crafting_shaped",

    "pattern": [
        "   ",
        " I ",
        "   "
    ],
    "key":
    {
        "I": {
            "item": "metalreloadmod:metal_ore"
        }
    },
    "result": {
        "item": "metalreloadmod:metal_ingot",
        "count": 1
    }
}

Ссылка на проект - forge.rar
 

timaxa007

Модератор
5,831
409
672
Main - у тебя имеет каркас, но во-основном он у тебя пустой, даже не знаю как у тебя предмет с блоком зарегистрированы, и как при этом проверял рецепт.
Ты рецепт не зарегистрировал - Крафт - Minecraft Modding
 
1,031
19
87
Ты рецепт не зарегистрировал
Интересно, а зачем регистрировать? В 1.12.2 рецепт должен быть только написан да положен в нужную папку и он автоматически будет зарегистрирован в игре.
Не получается добавить shaped крафт, shapeless и.т.д.
Учитывая твой рецепт проверь правильно ли расположение файла рецепта.
Примерный вид твоего правильного рецета:
Код:
{
    "type": "minecraft:crafting_shaped",
    "pattern": [
        "A"
    ],
    "key": {
        "A": {
            "item": "metalreloadmod:metal_ore"
        }
    },
    "result": {
        "item": "metalreloadmod:metal_ingot"
    }
}
А учитывая содержание лучше бы плавку сделал, так было бы логичнее.
PS: регистрацию проверь, там при таком методе в классах предметов и блоков должно быть добавление в тот самый список что у тебя в классах регистрации.
Update​
Посмотрел проект, имена пакетов так себе подобраны, а регистрацию лучше сделай либо ручную, либо клиентскую.
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
Интересно, а зачем регистрировать? В 1.12.2 рецепт должен быть только написан да положен в нужную папку и он автоматически будет зарегистрирован в игре.
Думал, что так работает. Не знал, что автоматом. Я регистрировал в ручную, хотя и с одной ошибкой. Просто на новых версиях я не работаю и не знаю всего.
 
101
3
А как использовать в рецептах json блоки с метадатой. Например, с блоком песка рецепт у меня не работает, как только его заменяю на железо, все робит.

UP: Все, нашел. Если кому интересно, то так:
Java:
"B": {
      "item": "minecraft:sand",
      "data": 0
    },
 
Последнее редактирование:
101
3
Разъясните, пожалуйста, почему не работает рецепт?
Есть вот такой рецепт - и он работает:
Код:
{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "B",
    "A"   
  ],
  "key": {
    "A": {
      "type": "forge:ore_dict",
      "ore": "dyeWhite"     
    },
    "B": {
      "item": "citymod:asphaltBase"
    } 
  },
  "result": {
    "item": "citymod:box001"
  }
}
Как только я добавляю в рецепт еще одну белую пыль, то он не работает:
Код:
{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "B",
    "AA"   
  ],
  "key": {
    "A": {
      "type": "forge:ore_dict",
      "ore": "dyeWhite"     
    },
    "B": {
      "item": "citymod:asphaltBase"
    } 
  },
  "result": {
    "item": "citymod:box001"
  }
}

Что не так?
 
101
3
Блин, опять проблема. Добавил рецепт, он работает, но также этот рецепт работает и в виде зеркальной копии. Как это исправить?
Пример, есть такой рецепт:
"A "
"AA "
" A"
и он также автоматом работает при такой раскладке:
" A"
" AA"
"A "
Как пофиксить?
 
5,018
47
783
101
3
у тебя в верхнем и нижнем по одному пробелу не хватает
Да не, хватает всего, это тут форум удаляет. Суть следующая, есть два блока асфальта на которых нарисована разметка со стрелкой направо и налево. Делаю два рецепта, которые должны выглядеть так для левой стрелки
Код:
{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "A A",
    " AA",
    "  A"
  ],
  "key": {
    "A": {
      "item": "citymod:asphaltswl"
    }
  },
  "result": {
    "item": "citymod:asphaltswlyleftcross",
    "count": 5
  }
}
и вот так для правой стрелки:
Код:
{
  "type": "minecraft:crafting_shaped",
  "pattern": [
    "A A",
    "AA ",
    "A  "
  ],
  "key": {
    "A": {
      "item": "citymod:asphaltswl"
    }
  },
  "result": {
    "item": "citymod:asphaltswlyrightcross",
    "count": 5
  }
}
Из-за того, что эти два рецепта являются зеркальными, работает лишь один рецепт с левой стрелкой. Проблема в том, что при добавлении рецепта shaped он автоматически позволяет крафтить предмет с зеркальным рецептом и происходит конфликт.
Вопрос: как запретить зеркальный рецепт в json файле предмета?
Должно быть вот так:
1547905122443.png
но получается вот так:
1547905215134.png
 
5,018
47
783
101
3
Все что можно сделать кодом, лучше делать кодом. Не знаю, не разбирался в этих json
Сделал кодом, тоже самое. Конфликт двух зеркальных рецептов.
Как в коде пофиксить по дефолту зеркальные рецепты?
Java:
GameRegistry.addShapedRecipe(new ResourceLocation("asphaltswlyleftcross"), new ResourceLocation("asphaltswlyleftcross"),
                new ItemStack(initBlocks.asphaltswlyleftcross),new Object[]{
                "A A",
                " AA",
                "  A",
                'A', initBlocks.asphaltswl
                });
      
        GameRegistry.addShapedRecipe(new ResourceLocation("asphaltswlyrightcross"), new ResourceLocation("asphaltswlyrightcross"),
                new ItemStack(initBlocks.asphaltswlyrightcross),new Object[]{
                "A A",
                "AA ",
                "A  ",
                'A', initBlocks.asphaltswl
                });
 
5,018
47
783
Не может такого быть просто. Ищи в других местах. Там ид слотов разное просто напросто, 7 и 9. И почему у тебя класс с маленькой буквы?
либо поставь как обязательную либу мод который разрешает все конфликты рецептов и не парься.
 
101
3
Не может такого быть просто.
Дык проверь. По дефолту все рецепты работают и в зеркальном виде! Это факт!
И почему у тебя класс с маленькой буквы?
Потому-что сделал с маленькой, не заметил сразу, потом менять не стал. Какая разница?
либо поставь как обязательную либу мод который разрешает все конфликты рецептов и не парься.
Есть такой мод на примете?
 
Последнее редактирование:
7,099
324
1,509
Свой IRecipe в новых версиях нельзя сделать?
 
3,005
192
592
Сверху