- 3
- 0
Всем привет, начал я значит делать крафты на 3 крафте началась у рецепта началась развиваться дурка. Я так понимаю что это из-за того что в крафте у меня используются несколько экземпляров одного класса и нужно приписать метадату(если да то подскажите как)
Рецепт:
{
"type": "minecraft:crafting_shaped",
"pattern": [
"BAF",
"FEJ",
"DCF"
],
"key": {
"A": {
"item": "re:zinc_ingot"
},
"B": {
"item": "re:polietilen_orange"
},
"C": {
"item": "re:copper_ingot"
},
"D": {
"item": "re:polietilen_black"
},
"E": {
"item":"re:paper_electrolite"
},
"F": {
"item":"minecraft:iron_ingot"
},
"J": {
"item":"minecraft:dye",
"data": 15
},
"result": {
"item": "re:bat15",
"count": 1
}
}}
Слитки:
package radio.items;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
/**
* Created by User on 09.05.2020.
*/
public class ingots extends Item {
public ingots(String name){
this.setCreativeTab(CreativeTabs.MATERIALS);
this.setRegistryName(name);
this.setUnlocalizedName(name);
}
}
Ткани:
package radio.items;
import net.minecraft.item.Item;
import radio.core.radio;
/**
* Created by User on 09.05.2020.
*/
public class tissue extends Item {
public tissue(String name){
this.setUnlocalizedName(name);
this.setRegistryName(name);
this.setCreativeTab(radio.elements);
}
}
Регистрация предметов:
package radio.registry;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import radio.items.*;
/**
* Created by User on 18.04.2020.
*/
@GameRegistry.ObjectHolder("re")
@Mod.EventBusSubscriber// Автоматическая регистрация статичных обработчиков событий
public class ItemRegistry {
public static Item saltdust = new dusts("saltdust");
public static Item r0 = new resitors("r0");
public static Item bat15v=new battery("bat15v",3000);
public static Item paper_electrolite=new tissue("paper_electrolite");
public static Item polietilen = new tissue("polietilen");
public static Item polietilen_orange = new tissue("polietilen_orange");
public static Item polietilen_black = new tissue("polietilen_black");
public static Item tin_ingot = new ingots("tin_ingot");
public static Item copper_ingot = new ingots("copper_ingot");
public static Item zink_ingot = new ingots("zinc_ingot");
@SubscribeEvent
public static void onRegistryItem(RegistryEvent.Register<Item> e) {
e.getRegistry().register(r0);
e.getRegistry().register(saltdust);
e.getRegistry().register(bat15v);
e.getRegistry().register(paper_electrolite);
e.getRegistry().register(polietilen);
e.getRegistry().register(polietilen_orange);
e.getRegistry().register(polietilen_black);
e.getRegistry().register(tin_ingot);
e.getRegistry().register(copper_ingot);
e.getRegistry().register(zink_ingot);
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void onRegistryModel(ModelRegistryEvent e) {
registryModel(saltdust);
registryModel(r0);
registryModel(bat15v);
registryModel(polietilen);
registryModel(polietilen_black);
registryModel(paper_electrolite);
registryModel(polietilen_orange);
registryModel(copper_ingot);
registryModel(tin_ingot);
registryModel(zink_ingot);
}@SideOnly(Side.CLIENT)
private static void registryModel(Item item) {
final ResourceLocation regName = item.getRegistryName();
final ModelResourceLocation mrl = new ModelResourceLocation(regName, "inventory");
ModelBakery.registerItemVariants(item, mrl);
ModelLoader.setCustomModelResourceLocation(item, 0, mrl);
}
}
Регистрация крафтов:
package radio.registry;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.crafting.CraftingHelper;
import net.minecraftforge.common.crafting.IRecipeFactory;
/**
* Created by User on 08.05.2020.
*/
public class CraftRegistry {
public static void register()
{
registerRecipes("bucket_electrolite");
registerRecipes("paperelectrolite");
registerRecipes("bat15v");
}
private static void registerRecipes(String name)
{
CraftingHelper.register(new ResourceLocation("re", name), (IRecipeFactory) (context, json) -> CraftingHelper.getRecipe(json, context));
}
}