Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

I want to know how would I smelt an item when broken by a specific modded pickaxe so like if I wanted to mine iron with the pickaxe it would drop an iron ingot instead of iron or and so one and so forth. 

Are you looking for a mod that has an auto-smelting feature or are you trying to make an auto-smelting feature? If it's the former, lots of mods have auto-smelting features: Tinkers' Construct, Cyclic, and plenty of other mods. If it's the latter however, I can't help you.

  • Author

It is the latter I am looking for like how to make the twilight forest fiery pickaxe with the Auto-Smelt enchantment which whenever you mine any ore it gives the smelted item. If if the ore is moded.

6 hours ago, YamiAtem said:

It is the latter I am looking for like how to make the twilight forest fiery pickaxe with the Auto-Smelt enchantment which whenever you mine any ore it gives the smelted item. If if the ore is moded.

I'm thinking you could modify the vanilla loot tables to match for a tool that has your custom enchantment, and if they do, return the smelted item (maybe you can do so that for every block (or ore to optimize), you check if it is an ingredient to a smelting recipe, and modify that block's loot table to match?)

  • Author
17 minutes ago, kiou.23 said:

I'm thinking you could modify the vanilla loot tables to match for a tool that has your custom enchantment, and if they do, return the smelted item (maybe you can do so that for every block (or ore to optimize), you check if it is an ingredient to a smelting recipe, and modify that block's loot table to match?)

Can I please have an example of this.

 

And also your method works for only vanilla items I want to make it so that any item that is a ore that can be smelted can work with this pickaxe.

4 hours ago, YamiAtem said:

And also your method works for only vanilla items I want to make it so that any item that is a ore that can be smelted can work with this pickaxe.

it should work with any smeltable ore, since you'd be checking for smelting recipes, and any modded smelting recipe is registered in the same place you'd be checking for.

it would actually work for any block that can be smelted, so breaking sand with the pick would return glass. if that's not the desired behaviour, you can check if the block has the ore tag

Edited by kiou.23

  • Author
On 2/14/2021 at 10:40 PM, kiou.23 said:

it should work with any smeltable ore, since you'd be checking for smelting recipes, and any modded smelting recipe is registered in the same place you'd be checking for.

it would actually work for any block that can be smelted, so breaking sand with the pick would return glass. if that's not the desired behaviour, you can check if the block has the ore tag

Ok I see what going for, but as I already told I am new at modding and there aren't many tutorials for 1.16 modding. So could I please have an example of what you are describing?

9 hours ago, YamiAtem said:

Ok I see what going for, but as I already told I am new at modding and there aren't many tutorials for 1.16 modding. So could I please have an example of what you are describing?

check diesieben answer, he points to the GlobalLootModifier documentation, and tells you how to get the smelting recipe output for that item. additionally you may want to check if the block is an ore, for that you could use Tags.Blocks.ORES.contains()

 

Yeah I literally wrote the code for autosmelt already.

Things've changed a bit, but it was one of the "someone is going to want this, so my system better support it" test mod examples.

https://github.com/MinecraftForge/MinecraftForge/blob/1.16.x/src/test/java/net/minecraftforge/debug/gameplay/loot/GlobalLootModifiersTest.java#L146-L178

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • 10 months later...
On 2/14/2021 at 4:11 PM, diesieben07 said:

Use a GlobalLootModifier. In there check if any of the dropped stacks is smeltable. To do this, you need an inventory (you can just use new Inventory(1)) and put the stack into it. Then call RecipeManager#getRecipe(IRecipeType.SMELTING, <inventory>, <world>). If that returns something, use IRecipe#getRecipeOutput to get the output (remember to copy it) and replace the dropped stack with it.

how to replace the dropped stack ?

It's almost like I wrote all the code you need for you.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.