Metalwork
Metalwork adds metal ingredients like metal plates. These ingredients serve no purpose on their own, this mod is designed to be used by other modders to standardise the ingredients between mods, instead of every mod implementing non-cross-compatible ingredients.
Why bother?
Extensibility
Metalwork uses Patchly to enable support for any mod. As an example, I've included patch files which change the default recipes for the metal plates to use Orbitech's mechanical press, but only when Orbitech is installed. Similar mechanics allow me to add metal plates for Orbitech's custom metals (Zinc & Refined Iron), but again, these are only added if Orbitech itself is installed. (.put powah!).
All of this is to say that if you're worried about the recipes not fitting with your mod, or needing something slightly different, it's really easy to override and update with the help of Patchly!
Compatibility
If multiple mods implement Metalwork to supply materials for their mod, they'll be cross compatible by default. This saves us from having the far too frequent issue Minecraft modding faces where every tech mod implements its own variant of "Iron Plates" or whatever other standard material they choose to use.
Invisibility
Worried about the effect of adding a dependency to your mod? You can add Metalwork as an embedded JAR using CurseMaven. This is entirely optional, and the mod will work exactly the same if you just list it as a dependency. That being said, you can set up shadowing using the following Gradle configuration
plugins {
id 'java'
// Recommended to use azuredoom.hytale-tools as the dev wrapper. Otherwise, include https://maven.hytalemodding.dev/releases
id 'com.azuredoom.hytale-tools' version '1.0.48'
id 'com.gradleup.shadow' version '8.3.5'
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of((project.java_version as String).toInteger())
}
}
// a dedicated configuration so ONLY the dependencies you choose are shaded, not your compile deps
configurations {
shaded
}
dependencies {
shaded "curse.maven:metalwork-1560961:{curseforge-file-id}"
implementation "curse.maven:metalwork-1560961:{curseforge-file-id}"
}
repositories {
mavenCentral()
maven { url "https://www.cursemaven.com" }
}
tasks.named('shadowJar') {
archiveClassifier = '' // shadow jar IS the published artifact
mergeServiceFiles()
configurations = [project.configurations.shaded] // shade only what's in `shaded`
}
tasks.named('jar') { enabled = false } // disable the thin jar
tasks.named('build') { dependsOn tasks.named('shadowJar') }
(Sourced from Patchly documentation)
