Ernio Posted October 16, 2013 Posted October 16, 2013 Hello, Does anybody know any opensource or where should I look for Methods that'll allow me to add different properties to item, while I am crafting it? What I mean is for example: We take out 4x5 Grid and craft an Axe (This grid/crafting works - that's not my problem) and we make basic Axe, BUT when we add something to specific SlotID it will change our CraftResult. Where Gold Slot is out custom item (which will add special effect). Our goal is to: *Make one recipe for multiple crafting. - PRIMAL *Save this data to NBT, not to Item ID (item Id stays the same for all) *Make sure that saved data (let's say we added fire gem to an axe recipe) will be called everytime we hit something and will set it on fire. Structure would look like: Axe.class: -Main stuff (constructor, blah blah) -Function 1, 2, 3, ..., n, that will be called if an item has ,,this" NBT. -Textures that are loaded depending on what this item is: So if we got Fire axe, we get FireAxeTexture, not AxeTexture. And yes, I know - NBT items can be only crafted, since they don't have specific ID. And if this stuff is just pointless to put into NBT's we can just use MetaData. Most important here is this crafting thing. EDIT This grid has custom CraftingManager, RecipeSorter and Shaped/ShapelessRecipe.class - based on vanillia ones, so you are free to edit them (they are nearly same as vanilia). Quote Quote 1.7.10 is no longer supported by forge, you are on your own.
mnn Posted October 16, 2013 Posted October 16, 2013 I'm totally ignoring your crafting system and writing it from a perspective of vanilla crafting (if you are doing it same/similar way all of this should apply). To make a recipe you implement IRecipe and register it - e.g. GameRegistry.addRecipe(new MyRecipe(params)) . In this custom recipe you can specify what is a result of crafting depending on a current crafting matrix (input items = ItemStacks). Then you simply copy generic crafting result and add/modify needed NBT tags. example I haven't tried it, but if you override public Icon getIconIndex(ItemStack par1ItemStack) you should be able to get icons depending on NBT. Quote -Function 1, 2, 3, ..., n, that will be called if an item has ,,this" NBT. I'm not sure what this mean. If you want initialize the item, you can do it from recipe. If you want custom damage or other attribute you can change/set it in recipe when creating item as well. Quote mnn.getNativeLang() != English If I helped you please click on the "thank you" button.
GotoLink Posted October 16, 2013 Posted October 16, 2013 On 10/16/2013 at 12:41 PM, Ernio said: And yes, I know - NBT items can be only crafted, since they don't have specific ID. You are wrong. Granted, they are specific areas where vanilla doesn't support NBT (i think of vanilla furnace entries) because they don't support ItemStack. But, as long as you have an ItemStack, you can put NBT in it. (drops, furnace results...) Which also means that all methods in Item that have a ItemStack as argument will work with NBT. Quote
Recommended Posts
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.