-
Posts
21 -
Joined
-
Last visited
Everything posted by Doctor Moonbad
-
Good News: I finally fixed it. I was making typos the entire time, so it was basically a streak of bad luck, which got extended because of my lack of experience with the JSON files. The final, correct code is this one: { "type": "minecraft:crafting_shaped", "pattern": [ "DCC", "A B", "CCD" ], "key": { "A": { "item": "grazodiamod:magisoli_crystal", "data": 32767 }, "B": { "item": "grazodiamod:magisorbeo_crystal", "data": 32767 }, "C": { "item": "grazodiamod:terrametal_wire", "data": 0 }, "D": { "item": "minecraft:redstone", "data": 0 } }, "result": { "item": "grazodiamod:magimagnet", "data": 0 } } Thanks Draco and Diesieben, you helped me understand what the actual heck was going on. I also need to apologize for taking your time, I'm truly sorry, it was a very simple problem.
-
So, the code you gave me works perfectly as expected. But this one I made for testing didn't: { "type": "minecraft:crafting_shaped", "pattern": [ "#WW", " W ", "WW#" ], "key": { "#": { "item": "minecraft:iron_pickaxe", "data": 32767 } }, "key": { "W": { "item": "minecraft:diamond_pickaxe", "data": 32767 } }, "result": { "item": "minecraft:stonebrick", "data": 0, "count": 4 } } Can you guys please test? Also, I'm sorry for taking your time with this.
-
I'm going to explain everything again, with topics: I have a recipe that has 2 items with variable durability as ingredients. I can't craft with them unless they have their durability values set to max. Changing the data value on the recipe to 32767 does NOT solve the problem. The Minecraft version I'm working with is 1.12.2.
-
Can I ask a question? I understood the "data" key as an NBT data as described here: https://minecraft.gamepedia.com/NBT_format What it does to the ingredient, exactly? Also, I've already tried changing it's value to 32767, 2767 and 12. None of them seems to work. Let me give you a screenshot of the recipe and the code I made on the JSON file, so you can tell me what I must do in these situations. Code: { "type": "minecraft:crafting_shaped", "pattern": [ "RWW", "O U", "WWR" ], "key": { "W": [ { "item": "grazodiamod:terrametal_wire", "data": 0 } ], "R": [ { "item": "minecraft:redstone", "data": 0 } ], "U": [ { "item": "grazodiamod:magisolium_crystal", "data": 0 } ], "O": [ { "item": "grazodiamod:magisorbio_crystal", "data": 0 } ] }, "result": { "item": "grazodiamod:magimagnet", "data": 0 } }
-
Where do I change the metadata value? I tried using: @Override public int getMetadata(ItemStack stack) { return 32767; } on the item's custom class, but it did not work. There's also no method available in 1.12.2 to set it after initializing the item. Edit: I know it might be a stupid question, but please understand that I a Noob at programming using the Forge API, although I know how to code in Java, Lua, C# and Python.
-
Custom Variables on Diferent Item Stacks [SOLVED]
Doctor Moonbad replied to Doctor Moonbad's topic in Modder Support
I see. Thank you Reality Controller! -
Hi there, I'm Moonbad. How does one implement a custom variable that can have different values throughout different instances of the same item? I created a Class called ItemAbsorber that increases it's "Charge" variable over time, but all instances of this item have the same "Charge", as if they where one. How do I make Minecraft understand that each item has it's own "Charge"? EDIT (1): Messing with the item's durability does not seem to solve the issue.
-
Diferentiating items on the Player's Inventory [SOLVED]
Doctor Moonbad replied to Doctor Moonbad's topic in Modder Support
It worked! Thank you DaemonUmbra! -
Diferentiating items on the Player's Inventory [SOLVED]
Doctor Moonbad replied to Doctor Moonbad's topic in Modder Support
Alright, I'll try itemstack.getItem() == Item.getItemFromBlock(Blocks.DIRT) -
Diferentiating items on the Player's Inventory [SOLVED]
Doctor Moonbad replied to Doctor Moonbad's topic in Modder Support
Yeah, I thought about that, but there is no Items.Dirt or something like that. -
Diferentiating items on the Player's Inventory [SOLVED]
Doctor Moonbad replied to Doctor Moonbad's topic in Modder Support
I did not know that it was possible. Thank you for your lightning-speed answer. How can I do that? EDIT: I'm trying right now with new ItemStack(Blocks.Dirt); -
Hi there, I'm Moonbad. I've recently started developing a mod, called "Grazodia" for Minecraft 1.12.2, and I found something to be really strange. I want an item to detect a another certain item inside the player's inventory by comparing names with the methods getUnlocalizedName or getDisplayName, but none of them seem to work. Here's a code I made for detecting Dirt Blocks: @Override public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) { this.clock++; if(this.clock >= 40) { this.clock = 0; EntityPlayer player = (EntityPlayer)entityIn; InventoryPlayer inventory = player.inventory; for (int i = 0; i < 27; i++) { ItemStack item = inventory.mainInventory.get(i); String itemName = item.getUnlocalizedName(); if (itemName == "tile.dirt.default") { System.out.println("I:[ " + i + " ] [ " + itemName + " ]"); } } } Can someone help me, please? I'm really confused because when I remove the if statement, all Dirt Blocks' names in my inventory are displayed correctly, exactly as "tile.dirt.default".