Posted July 10, 201510 yr I'm trying get minecraft to register a Recipe with a var and it just keeps Crashing. I've been looking for a way to do this. Also this is my first time posting like this. Let me know If there is a better place for me to post questions like this. This is my code. package com.violet.violetmod; import [ ... ] @Mod(modid = VioletMod.MODID, version = VioletMod.VERSION) public class VioletMod{ public static final String MODID = "violetMod"; public static final String VERSION = "0.1 Alpha"; public static Item violetShard; public String coalNum = "Items.coal"; @EventHandler public void init(FMLInitializationEvent event) { violetShard = new VioletShard().setUnlocalizedName("violetShard"); GameRegistry.registerItem(violetShard, violetShard.getUnlocalizedName().substring(5)); for(int i=1; i<9; i++){ coalNum = "Items.coal"; for(int r=1; r<i; r++){ coalNum = coalNum + ", Items.coal"; } System.out.println(coalNum); } GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1), VioletMod.violetShard, coalNum); } } I did cut out a large amount of code just to make it easier to troubleshoot.
July 10, 201510 yr Not completely sure, but I don't think you can use a string as an argument for a crafting recipe. I think that if you made coalNum an Item and set it to Items.coal, it'd work. public Item coalNum = Items.coal; should work. EDIT: And that for loop thing won't work either as far as I know. I'll put something here when I have something of value I need to put at the end of every post. For now it's this mostly pointless text.
July 10, 201510 yr Author That was the problem. I'm going to try the loop thing for another 15 min then I'm going to give up. Thank you for your help. That was a dumb mistake. Thank you
July 10, 201510 yr Not that difficult: GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard), VioletMod.violetShard, Items.coal, Items.coal, Items.coal, Items.coal, Items.coal, Items.coal, Items.coal, Items.coal); http://i.imgur.com/NdrFdld.png[/img]
July 10, 201510 yr Author realy what I'm trying to do is not this 256 times. GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 1), VioletMod.violetShard, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 2), VioletMod.violetShard, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 3), VioletMod.violetShard, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 4), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 5), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 6), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 7), VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, , VioletMod.violetShard, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 2), VioletMod.violetShard,1, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 3), VioletMod.violetShard,1, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 4), VioletMod.violetShard,1, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 5), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 6), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 7), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, , VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum); GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard,1, 9), VioletMod.violetShard,1, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum, coalNum);
July 10, 201510 yr The last parameter of ItemStack is the damage value, not the stack size - do you have different item subtypes? If not, and you just want one item per coal, i.e. 1 coal = 1 shard, 2 coals = 2 shards, etc., then all you need is to register the first recipe: GameRegistry.addShapelessRecipe(new ItemStack(VioletMod.violetShard), VioletMod.violetShard, Items.coal); Then the player just clicks away and voilá, they have tons of shards. http://i.imgur.com/NdrFdld.png[/img]
July 10, 201510 yr I do have subtypes Well you can't very well have every single subtype crafted in exactly the same way - if I put in one shard and one coal, what type of shard do I get back? Does the recipe require the same type of shard as input? Then you can just loop through the subtypes and add the one recipe for each: for (int i = 0; i < numSubtypes; ++i) { ItemStack stack = new ItemStack(shard, 1, i); // shard of appropriate subtype GameRegistry.addShapelessRecipe(stack, stack, Items.coal); // combining the shard with coal gives you... itself? } You're going to have to explain exactly what you are trying to do - what items combined give what item? http://i.imgur.com/NdrFdld.png[/img]
July 10, 201510 yr Author actually You just fixed my problem. Thank you. It just needed to restraint it by the number of subtypes.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.