Non résolu Recettes 1.12.2
-
Bonjour, j’ai créé un minerai grâce à un tutoriel : (partie 1 ) https://www.youtube.com/watch?v=DcUSKLmtU58&list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR&index=7 (partie 2) https://www.youtube.com/watch?v=tjlhLQ78lOk&list=PLiDUvCGH5WEUEV9nc0Ll2pzUFmSFc21uR&index=8.
Je veux, avec ce bloc, faire une recette (four ou table).
Mon code :
Classe du Block
public class BlockOreMod extends Block implements IHasModel, IMetaName { public static final PropertyEnum<EnumHandler.EnumType> VARIANT = PropertyEnum.<EnumHandler.EnumType>create("variant", EnumHandler.EnumType.class); private String name, dimension; public BlockOreMod(String name, String dimension) { super(Material.ROCK); setUnlocalizedName(name); setRegistryName(name); setCreativeTab(Main.GbTab); setHardness(4.0F); setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.TNT)); this.name = name; this.dimension = dimension; BlockInit.BLOCKS.add(this); ItemInit.ITEMS.add(new ItemBlockVariants(this).setRegistryName(this.getRegistryName())); } @Override public int damageDropped(IBlockState state) { return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta(); } @Override public int getMetaFromState(IBlockState state) { return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta(); } @Override public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.byMetadata(meta)); } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { return new ItemStack(Item.getItemFromBlock(this), 1, getMetaFromState(world.getBlockState(pos))); } @Override public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items) { for(EnumHandler.EnumType variant : EnumHandler.EnumType.values()) { items.add(new ItemStack(this, 1, variant.getMeta())); } } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {VARIANT}); } @Override public String getSpeciaName(ItemStack stack) { return EnumHandler.EnumType.values() [stack.getItemDamage()].getName(); } @Override public void registerModels() { for(int i = 0; i < EnumHandler.EnumType.values().length; i++) { Main.proxy.registerVariantRenderer(Item.getItemFromBlock(this), i, "ore_" + this.dimension + "_" + EnumHandler.EnumType.values()[i].getName(), "inventory"); } } }
Classe ItemBlock
public class ItemBlockVariants extends ItemBlock { public ItemBlockVariants(Block block) { super(block); setHasSubtypes(true); setMaxDamage(0); } @Override public int getMetadata(int damage) { return damage; } @Override public String getUnlocalizedName(ItemStack stack) { return super.getUnlocalizedName() + "_" + ((IMetaName)this.block).getSpeciaName(stack); } }
IMetaName
public interface IMetaName { public String getSpeciaName(ItemStack stack); }
EnumHandler
public class EnumHandler { public static enum EnumType implements IStringSerializable { TNT(0, "tnt_ore"); private static final EnumType[] META_LOOKUP = new EnumType[values().length]; private final int meta; private final String name, unlocializedName; private EnumType(int meta,String name) { this(meta, name, name); } private EnumType(int meta,String name, String unlocializedName) { this.meta = meta; this.name = name; this.unlocializedName = unlocializedName; } @Override public String getName() { return this.name; } public int getMeta() { return this.meta; } public String getUnlocializedName() { return this.unlocializedName; } @Override public String toString() { return this.name; } public static EnumType byMetadata(int meta) { return META_LOOKUP[meta]; } static { for(EnumType enumtype : values()) { META_LOOKUP[enumtype.getMeta()] = enumtype; } } } }
-
Salut! La personne qui fait les tutoriels dont tu t’es inspiré pour ton minerai à également fait un tutoriel pour faire des recettes tu peux aller y jeter un coup d’oeil^^ (je n’ai pas encore fais de crafts perso donc j’ai pas d’exemple concret mais c’est avec du .json de mémoire)
-
@BlueZikSè oui mais il n’a pas précisé comment faire avec le minerai (je l’ai créé de facon spéciale)
-
Voici le ficher de mon craft.
{ "type": "minecraft:crafting_shaped", "pattern": [ "#" ], "key": { "#": { "variant=tnt_ore": {"item": "gbmod:ore_overworld"} } }, "result": { "item": "gbmod:tnt_shard", "count": 9 } }
-
Finalement, j’avais mal compris le tuto et il fallait juste utiliser la métadata.
{ "type": "minecraft:crafting_shaped", "pattern": [ "#" ], "key": { "#": { "item": "gbmod:ore_overworld", "data": 0 } }, "result": { "item": "gbmod:tnt_shard", "count": 9