Jump to content

How would I auto smelt items when broken by a specific pickaxe?


Recommended Posts

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. 

Posted

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.

Posted

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.

Posted
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?)

Posted
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.

Posted (edited)
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
Posted
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?

Posted
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()

 

Posted

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...
Posted
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 ?

Posted

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • that happens every time I enter a new dimension.
    • This is the last line before the crash: [ebwizardry]: Synchronising spell emitters for PixelTraveler But I have no idea what this means
    • What in particular? I barely used that mod this time around, and it's never been a problem in the past.
    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } } my entire project:https://github.com/kevin051606/DERP-Mod/tree/Derp-1.0-1.20
  • Topics

×
×
  • Create New...

Important Information

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