diff --git a/.gitattributes b/.gitattributes index dfe0770..20fc528 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,15 @@ -# Auto detect text files and perform LF normalization -* text=auto +* text eol=lf +*.bat text eol=crlf +*.patch text eol=lf +*.java text eol=lf +*.gradle text eol=crlf +*.png binary +*.gif binary +*.exe binary +*.dll binary +*.jar binary +*.lzma binary +*.zip binary +*.pyd binary +*.cfg text eol=lf +*.jks binary \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 5f67b25..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -ko_fi: amronos \ No newline at end of file diff --git a/.github/workflows/PUBLISH.yml b/.github/workflows/PUBLISH.yml index 97c27f1..6db1938 100644 --- a/.github/workflows/PUBLISH.yml +++ b/.github/workflows/PUBLISH.yml @@ -1,10 +1,10 @@ name: Publish on GitHub, Modrinth, CurseForge -on: [ workflow_dispatch ] +on: [workflow_dispatch] env: - MINECRAFT_VERSION: 1.20.1 - JAVA_VERSION: 17 + MINECRAFT_VERSION: 1.21.1 + JAVA_VERSION: 21 VERSION: 0.2.4 VERSION_TYPE: release PUBLISH_GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }} @@ -55,17 +55,15 @@ jobs: curseforge-id: 1000148 curseforge-token: "${{env.PUBLISH_CURSEFORGE_TOKEN}}" - name: "Create: Addon Compatibility - v${{env.VERSION}} - ${{env.MINECRAFT_VERSION}} - (neo)forge" + name: "Create: Addon Compatibility - v${{env.VERSION}} - Neoforge - ${{env.MINECRAFT_VERSION}}" version: "${{env.VERSION}}" version-type: "${{env.VERSION_TYPE}}" changelog-file: LATEST_CHANGELOG.md game-version-filter: releases - loaders: | - forge - neoforge + loaders: neoforge - files: "build/libs/createaddoncompatibility-${{env.VERSION}}.jar" + files: "neoforge/build/libs/createaddoncompatibility-neoforge-${{env.MINECRAFT_VERSION}}-${{env.VERSION}}.jar" dependencies: | create(required){modrinth:create}{curseforge:328085}#(ignore:github) diff --git a/.gitignore b/.gitignore index af7dd5e..e0ccc6d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,21 +11,15 @@ out *.ipr *.iws *.iml -.idea +.idea/* +!.idea/scopes # gradle build .gradle # other +.cache eclipse run -run-data -.cache -*.vscode -*.zip -*.mrpack -*.exe - -# Files from Forge MDK -forge*changelog.txt +runs diff --git a/MC_VERSION_DIFFERENCES.md b/MC_VERSION_DIFFERENCES.md new file mode 100644 index 0000000..ddf1986 --- /dev/null +++ b/MC_VERSION_DIFFERENCES.md @@ -0,0 +1,7 @@ +# Differences in the Mod Between Minecraft Versions + +## Compatibilities NOT Ported to 1.21.1 + +- Coal Coke Dust +- Six Way Gearbox - Create Utilities hasn't updated to Minecraft 1.21.1 +- Ad Astra and CSnR - These mods haven't updated to Minecraft 1.21.1 diff --git a/README.md b/README.md index 31ecf4a..b0e7c5a 100644 --- a/README.md +++ b/README.md @@ -4,83 +4,58 @@ ### Blocks/Items -
-Copycats - -Mods: [Create: Copycats+](https://modrinth.com/mod/copycats), [Create: Connected](https://modrinth.com/mod/create-connected), [CD&D](https://modrinth.com/mod/create-dreams-and-desires)
-Copycats+ takes priority, all copycats from the other mods are hid in JEI/REI/EMI.
-
- -
-Plastic Sheet - -Mods: [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg)
-Pneumaticcraft takes priority, recipes have been unified, TFMG's plastic sheet is hid in JEI/REI/EMI.
-
- -
-Six Way Gearbox - -Mods: [Create: Connected](https://modrinth.com/mod/create-connected), [Create Utilities](https://modrinth.com/mod/create-utilities)
-Create: Connected takes priority, recipes have been unified, Create Utilities's Gearcube is hid in JEI/REI/EMI.
-
- -
-Coal Coke Dust - -Mods: [Immersive Engineering](https://modrinth.com/mod/immersiveengineering), [TFMG](https://modrinth.com/mod/create-tfmg)
-Coal Coke Dust from both mods works in both mods' processes and recipes. -
-
+The following blocks/items have been unified to work in all the processes and recipes present in the relevant mods. + +Mods take priority as defined in the configuration section below, items from lower priority mods are hidden in JEI/REI/EMI. + +- **Coal Coke Dust** - [Immersive Engineering](https://modrinth.com/mod/immersiveengineering), [TFMG](https://modrinth.com/mod/create-tfmg) +- **All Copycat Blocks** - [Create: Copycats+](https://modrinth.com/mod/copycats), [Create: Connected](https://modrinth.com/mod/create-connected), [CD&D](https://modrinth.com/mod/create-dreams-and-desires) +- **Plastic Sheet** - [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg) +- **Six Way Gearbox** - [Create: Connected](https://modrinth.com/mod/create-connected), [Create Utilities](https://modrinth.com/mod/create-utilities) ### Fluids -
-Crude Oil - -Mods: [Ad Astra](https://modrinth.com/mod/ad-astra), [CDG](https://modrinth.com/mod/create-diesel-generators), [C:L&W](https://modrinth.com/mod/create-love-war), [Destroy](https://modrinth.com/mod/destroy), [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg)
-Crude Oil from all these mods works in all distillation processes requiring it present in these mods.
-
- -
-Fuels - -Mods: [Ad Astra](https://modrinth.com/mod/ad-astra), [CC&A](https://modrinth.com/mod/createaddition), [CDG](https://modrinth.com/mod/create-diesel-generators), [CSnR](https://modrinth.com/mod/create-steam-n-rails), [Destroy](https://modrinth.com/mod/destroy), [Create Garnished](https://modrinth.com/mod/create-garnished), [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg)
-Various fuels from these mods work in rockets of Ad Astra.(Can be disabled, see configuration section)
-Various fuels from these mods work in various processes and recipes of CC&A.
-Various fuels from these mods work in CDG's Diesel Generators.
-Various fuels from these mods work in various processes and recipes of Pneumaticcraft.
-Various fuels from these mods work in CSnR's trains.
-Currently only TFMG's fuels work in its generators as TFMG does not have support for custom fuel types.(_A work-around could be found._)
-
- -
-Kerosene, Molten/Liquid Plastic, Lubricant/Lubrication Oil - -Mods: [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg)
-Kerosene, Molten/Liquid Plastic, Lubricant/Lubrication Oil from both mods works in both mods' processes and recipes. -
- -

+The following fluids have been unified to work in all the processes and recipes present in the relevant mods. + +- **Crude Oil** - [Ad Astra](https://modrinth.com/mod/ad-astra), [CDG](https://modrinth.com/mod/create-diesel-generators), [C:L&W](https://modrinth.com/mod/create-love-war), [Destroy](https://modrinth.com/mod/destroy), [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg) +- **Fuels** - [Ad Astra](https://modrinth.com/mod/ad-astra), [CC&A](https://modrinth.com/mod/createaddition), [CDG](https://modrinth.com/mod/create-diesel-generators), [CSnR](https://modrinth.com/mod/create-steam-n-rails), [Destroy](https://modrinth.com/mod/destroy), [Create Garnished](https://modrinth.com/mod/create-garnished), [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg) + - Compatibility for fuels from other mods working in Ad Astra rockets can be disabled by enabling a datapack included in the mod. + - Currently only TFMG's fuels work in its generators as TFMG does not have support for custom fuel types.(_A work-around could be found._) +- **Kerosene, Molten/Liquid Plastic, Lubricant/Lubrication Oil** - [Pneumaticcraft](https://modrinth.com/mod/pneumaticcraft-repressurized), [TFMG](https://modrinth.com/mod/create-tfmg) ## Installation -The mod is currently only available for 1.20.1 (neo)forge. Fabric/Quilt versions and >=1.21.1 versions will come soon. A port to 1.19.2 is not planned.
-[Almost Unified](https://modrinth.com/mod/almost-unified) is required to be installed.
-

+ +The mod is currently only available for 1.20.1 and 1.21.1 (neo)forge. Fabric/Quilt versions will come soon. + +[Almost Unified](https://modrinth.com/mod/almost-unified) and [Create](https://modrinth.com/mod/create) are required to be installed. ## Compatibility Configuration + To change which mod has the priority in compatibility, modify the `modPriorities` in `config/almostunified/unify.json`, for more info look at [this](https://github.com/AlmostReliable/almostunified/wiki/Unification-Config). -

-There are datapacks present in the mod which allow you to change certain things about compatibility between different mods.
-They can be enabled during world creation or by using the ``/datapack enable`` command. -

+ +The default priority order from highest to lowest is + +``` +pneumaticcraft +copycats +create_connected +create_dd +tfmg +``` + +
+ +There are datapacks present in the mod which allow you to change certain things about compatibility between different mods. + +They can be enabled during world creation or by using the `/datapack enable` command. ## Suggestions / More Compatibility Features -I do have more compatibility features planned, but if you have any ideas feel free to create an issue on GitHub or tell me in the Discord server. -

+I do have more compatibility features planned, but if you have any ideas, feel free to create an issue on GitHub or tell me in the Discord server. ## Credits -Thanks to the creators of the various mods for which compatibility has been added in this mod.
-Thanks to the AlmostReliable team for making Almost Unified, without which this mod would have been very difficult to make.
-Finally, thanks to the people on the Minecraft Mod Development discord for helping me out with some features in the mod. + +Thanks to: + +1. The creators of the various mods for which compatibility has been added in this mod. +2. The AlmostReliable team for making Almost Unified, without which this mod would have been very difficult to make. diff --git a/build.gradle b/build.gradle index 499db5f..d3394d4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,212 +1,6 @@ plugins { - id 'eclipse' - id 'idea' - id 'maven-publish' - id 'net.minecraftforge.gradle' version '[6.0,6.2)' - id 'org.spongepowered.mixin' version '0.7.+' - id 'org.parchmentmc.librarian.forgegradle' version '1.+' -} - - -version = mod_version -group = mod_group_id - -base { - archivesName = mod_id -} - -java.toolchain.languageVersion = JavaLanguageVersion.of(17) - -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 - - // generateRunFolders = true - - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - - - runs { - configureEach { - workingDirectory project.file('run') - - property 'forge.logging.markers', 'REGISTRIES' - property 'forge.logging.console.level', 'debug' - - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } - - client { - property 'forge.enabledGameTestNamespaces', mod_id - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - } - - server { - property 'forge.enabledGameTestNamespaces', mod_id - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - property 'forge.enabledGameTestNamespaces', mod_id - } - - data { - // example of overriding the workingDirectory set in configureEach above - workingDirectory project.file('run-data') - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') - } - } -} - -sourceSets.main.resources { srcDir 'src/generated/resources' } - -repositories { - maven { - name = 'Create Mod Maven' - url = 'https://maven.createmod.net' - } - maven { - name = 'Fuzss Maven' - url = 'https://raw.githubusercontent.com/Fuzss/modresources/main/maven/' - } - maven { - name = 'tterrag maven' - url = 'https://maven.tterrag.com/' - } - maven { - // location of the maven that hosts JEI files since January 2023 - name = "Jared's maven" - url = "https://maven.blamejared.com/" - } - maven { - // location of a maven mirror for JEI files, as a fallback - name = "ModMaven" - url = "https://modmaven.dev" - } - maven { - name = "Modrinth Maven" - url = "https://api.modrinth.com/maven" - } - maven { - name = "Curseforge Maven" - url = "https://cursemaven.com" - } -} - -dependencies { - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - - annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' - - implementation(fg.deobf("com.simibubi.create:create-${minecraft_version}:${create_version}:slim") { transitive = false }) - implementation(fg.deobf("net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}")) - compileOnly(fg.deobf("dev.engine-room.flywheel:flywheel-forge-api-${minecraft_version}:${flywheel_version}")) - runtimeOnly(fg.deobf("dev.engine-room.flywheel:flywheel-forge-${minecraft_version}:${flywheel_version}")) - implementation(fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")) - - compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:0.4.1")) - implementation("io.github.llamalad7:mixinextras-forge:0.4.1") - - // compile against the JEI API but do not include it at runtime - compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")) - compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")) - // at runtime, use the full JEI jar for Forge - runtimeOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")) - - implementation fg.deobf("com.almostreliable.mods:almostunified-forge:${almostunified_version}") - - implementation fg.deobf("maven.modrinth:create-diesel-generators:${createdieselgenerators_version}") - implementation fg.deobf("curse.maven:create-industry-693815:6255138") -} - - - -// This block of code expands all declared replace properties in the specified resource targets. -// A missing property will result in an error. Properties are expanded using ${} Groovy notation. -// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. -// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html -tasks.named('processResources', ProcessResources).configure { - var replaceProperties = [ - minecraft_version: minecraft_version, - minecraft_version_range: minecraft_version_range, - forge_version: forge_version, - forge_version_range: forge_version_range, - loader_version_range: loader_version_range, - mod_id: mod_id, - mod_name: mod_name, - mod_license: mod_license, - mod_version: mod_version, - mod_authors: mod_authors, - mod_description: mod_description, - create_version: create_version, - create_version_range: create_version_range, - jei_version: jei_version, - almostunified_version: almostunified_version, - createdieselgenerators_version: createdieselgenerators_version, - tfmg_version: tfmg_version - ] - inputs.properties replaceProperties - - filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { - expand replaceProperties + [project: project] - } -} - - -jar { - manifest { - attributes([ - "Specification-Title" : mod_name, - "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"), - "MixinConfigs" : "mixins.${mod_id}.json" - ]) - } - -} - -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing: -// tasks.named('publish').configure { -// dependsOn 'reobfJar' -// } - -// Example configuration to allow publishing using the maven-publish plugin -publishing { - publications { - register('mavenJava', MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file://${project.projectDir}/mcmodsrepo" - } - } -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} - -mixin { - add sourceSets.main, 'createaddoncompatibility.refmap.json' - config 'mixins.createaddoncompatibility.json' + // see https://fabricmc.net/develop/ for new versions + // id 'fabric-loom' version '1.11-SNAPSHOT' apply false + // see https://projects.neoforged.net/neoforged/moddevgradle for new versions + id 'net.neoforged.moddev' version '2.0.140' apply false } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 0000000..6784052 --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'groovy-gradle-plugin' +} diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle new file mode 100644 index 0000000..950cdde --- /dev/null +++ b/buildSrc/src/main/groovy/multiloader-common.gradle @@ -0,0 +1,140 @@ +plugins { + id 'java-library' + id 'maven-publish' +} + +base { + archivesName = "${mod_id}-${project.name}-${minecraft_version}" +} + +java { + toolchain.languageVersion = JavaLanguageVersion.of(java_version) + withSourcesJar() + withJavadocJar() +} + +repositories { + mavenCentral() + // https://docs.gradle.org/current/userguide/declaring_repositories.html#declaring_content_exclusively_found_in_one_repository + exclusiveContent { + forRepository { + maven { + name = 'Sponge' + url = 'https://repo.spongepowered.org/repository/maven-public' + } + } + filter { includeGroupAndSubgroups('org.spongepowered') } + } + exclusiveContent { + forRepositories( + maven { + name = 'ParchmentMC' + url = 'https://maven.parchmentmc.org/' + }, + maven { + name = "NeoForge" + url = 'https://maven.neoforged.net/releases' + } + ) + filter { includeGroup('org.parchmentmc.data') } + } + maven { + name = 'BlameJared' + url = 'https://maven.blamejared.com' + } + maven { url = "https://maven.createmod.net" } // Create, Ponder, Flywheel + maven { url = "https://maven.ithundxr.dev/snapshots" } // Registrate + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = "https://api.modrinth.com/maven" + } + } + filter { + includeGroup "maven.modrinth" + } + } +} + +// Declare capabilities on the outgoing configurations. +// Read more about capabilities here: https://docs.gradle.org/current/userguide/component_capabilities.html#sec:declaring-additional-capabilities-for-a-local-component +['apiElements', 'runtimeElements', 'sourcesElements', 'javadocElements'].each { variant -> + configurations."$variant".outgoing { + capability("$group:${base.archivesName.get()}:$version") + capability("$group:$mod_id-${project.name}-${minecraft_version}:$version") + capability("$group:$mod_id:$version") + } + publishing.publications.configureEach { + suppressPomMetadataWarningsFor(variant) + } +} + +sourcesJar { + from(rootProject.file('LICENSE')) { + rename { "${it}_${mod_name}" } + } +} + +jar { + from(rootProject.file('LICENSE')) { + rename { "${it}_${mod_name}" } + } + + manifest { + attributes([ + 'Specification-Title' : mod_name, + 'Specification-Vendor' : mod_author, + 'Specification-Version' : project.jar.archiveVersion, + 'Implementation-Title' : project.name, + 'Implementation-Version': project.jar.archiveVersion, + 'Implementation-Vendor' : mod_author, + 'Built-On-Minecraft' : minecraft_version + ]) + } +} + +processResources { + var expandProps = [ + 'version' : version, + 'group' : project.group, //Else we target the task's group. + 'minecraft_version' : minecraft_version, + 'minecraft_version_range' : minecraft_version_range, + 'fabric_version' : fabric_version, + 'fabric_loader_version' : fabric_loader_version, + 'mod_name' : mod_name, + 'mod_author' : mod_author, + 'mod_id' : mod_id, + 'license' : license, + 'description' : project.description, + 'neoforge_version' : neoforge_version, + 'neoforge_loader_version_range': neoforge_loader_version_range, + 'credits' : credits, + 'java_version' : java_version, + 'create_version' : create_version, + 'ponder_version' : ponder_version, + 'flywheel_version' : flywheel_version, + 'registrate_version' : registrate_version, + 'almostunified_version' : almostunified_version, + 'tfmg_version' : tfmg_version, + ] + + filesMatching(['pack.mcmeta', 'fabric.mod.json', 'META-INF/mods.toml', 'META-INF/neoforge.mods.toml', '*.mixins.json']) { + expand expandProps + } + inputs.properties(expandProps) +} + +publishing { + publications { + register('mavenJava', MavenPublication) { + artifactId base.archivesName.get() + from components.java + } + } + repositories { + maven { + url System.getenv('local_maven_url') + } + } +} diff --git a/buildSrc/src/main/groovy/multiloader-loader.gradle b/buildSrc/src/main/groovy/multiloader-loader.gradle new file mode 100644 index 0000000..92e2325 --- /dev/null +++ b/buildSrc/src/main/groovy/multiloader-loader.gradle @@ -0,0 +1,44 @@ +plugins { + id 'multiloader-common' +} + +configurations { + commonJava{ + canBeResolved = true + } + commonResources{ + canBeResolved = true + } +} + +dependencies { + compileOnly(project(':common')) { + capabilities { + requireCapability "$group:$mod_id" + } + } + commonJava project(path: ':common', configuration: 'commonJava') + commonResources project(path: ':common', configuration: 'commonResources') +} + +tasks.named('compileJava', JavaCompile) { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +processResources { + dependsOn(configurations.commonResources) + from(configurations.commonResources) +} + +tasks.named('javadoc', Javadoc).configure { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +tasks.named('sourcesJar', Jar) { + dependsOn(configurations.commonJava) + from(configurations.commonJava) + dependsOn(configurations.commonResources) + from(configurations.commonResources) +} diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 0000000..d4ca1d4 --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,43 @@ +plugins { + id 'multiloader-common' + id 'net.neoforged.moddev' +} + +neoForge { + neoFormVersion = neo_form_version + // Automatically enable AccessTransformers if the file exists + def at = file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformers.from(at.absolutePath) + } + parchment { + minecraftVersion = parchment_minecraft + mappingsVersion = parchment_version + } +} + +dependencies { + compileOnly group: 'org.spongepowered', name: 'mixin', version: '0.8.5' + // fabric and neoforge both bundle mixinextras, so it is safe to use it in common + compileOnly group: 'io.github.llamalad7', name: 'mixinextras-common', version: '0.3.5' + annotationProcessor group: 'io.github.llamalad7', name: 'mixinextras-common', version: '0.3.5' + // Dependencies + compileOnly "com.almostreliable.mods:almostunified-common:${almostunified_version}" +} + +configurations { + commonJava { + canBeResolved = false + canBeConsumed = true + } + commonResources { + canBeResolved = false + canBeConsumed = true + } +} + +artifacts { + commonJava sourceSets.main.java.sourceDirectories.singleFile + commonResources sourceSets.main.resources.sourceDirectories.singleFile +} + diff --git a/common/src/main/java/dev/amronos/createaddoncompatibility/CommonClass.java b/common/src/main/java/dev/amronos/createaddoncompatibility/CommonClass.java new file mode 100644 index 0000000..0435ba4 --- /dev/null +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/CommonClass.java @@ -0,0 +1,7 @@ +package dev.amronos.createaddoncompatibility; + +public class CommonClass { + + public static void init() { + } +} diff --git a/common/src/main/java/dev/amronos/createaddoncompatibility/Constants.java b/common/src/main/java/dev/amronos/createaddoncompatibility/Constants.java new file mode 100644 index 0000000..03c7044 --- /dev/null +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/Constants.java @@ -0,0 +1,11 @@ +package dev.amronos.createaddoncompatibility; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Constants { + + public static final String MOD_ID = "createaddoncompatibility"; + public static final String MOD_NAME = "Create: Addon Compatiblity"; + public static final Logger LOG = LoggerFactory.getLogger(MOD_NAME); +} \ No newline at end of file diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/tags/ForgeTags.java b/common/src/main/java/dev/amronos/createaddoncompatibility/data/tags/CommonTags.java similarity index 50% rename from src/main/java/com/amronos/createaddoncompatibility/data/tags/ForgeTags.java rename to common/src/main/java/dev/amronos/createaddoncompatibility/data/tags/CommonTags.java index f873609..733968f 100644 --- a/src/main/java/com/amronos/createaddoncompatibility/data/tags/ForgeTags.java +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/data/tags/CommonTags.java @@ -1,30 +1,34 @@ -package com.amronos.createaddoncompatibility.data.tags; +package dev.amronos.createaddoncompatibility.data.tags; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.FluidTags; -import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.level.material.Fluid; -public class ForgeTags { - +public class CommonTags { public static class Fluids { public static final TagKey CRUDE_OIL = tag("crude_oil"); - public static final TagKey LIQUID_PLASTIC = tag("liquid_plastic"); + public static final TagKey PLASTIC = tag("plastic"); public static final TagKey LUBRICANT = tag("lubricant"); + public static final TagKey LUBRICATION_OIL = tag("lubrication_oil"); private static TagKey tag(String name) { - return FluidTags.create(new ResourceLocation("forge", name)); + return TagKey.create( + Registries.FLUID, + ResourceLocation.fromNamespaceAndPath("c", name) + ); } } public static class Items { public static final TagKey PLASTIC = tag("ingots/plastic"); - public static final TagKey COKE_DUST = tag("dusts/coal_coke"); private static TagKey tag(String name) { - return ItemTags.create(new ResourceLocation("forge", name)); + return TagKey.create( + Registries.ITEM, + ResourceLocation.fromNamespaceAndPath("c", name) + ); } } } diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/tags/CopycatsTags.java b/common/src/main/java/dev/amronos/createaddoncompatibility/data/tags/CopycatsTags.java similarity index 70% rename from src/main/java/com/amronos/createaddoncompatibility/data/tags/CopycatsTags.java rename to common/src/main/java/dev/amronos/createaddoncompatibility/data/tags/CopycatsTags.java index 78ddb5b..709c23a 100644 --- a/src/main/java/com/amronos/createaddoncompatibility/data/tags/CopycatsTags.java +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/data/tags/CopycatsTags.java @@ -1,7 +1,7 @@ -package com.amronos.createaddoncompatibility.data.tags; +package dev.amronos.createaddoncompatibility.data.tags; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; @@ -14,7 +14,10 @@ public static class Items { public static final TagKey COPYCAT_STAIRS = tag("copycat_stairs"); private static TagKey tag(String name) { - return ItemTags.create(new ResourceLocation("copycats", name)); + return TagKey.create( + Registries.ITEM, + ResourceLocation.fromNamespaceAndPath("copycats", name) + ); } } } diff --git a/common/src/main/java/dev/amronos/createaddoncompatibility/mixin/MixinUnifySerializer.java b/common/src/main/java/dev/amronos/createaddoncompatibility/mixin/MixinUnifySerializer.java new file mode 100644 index 0000000..137594b --- /dev/null +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/mixin/MixinUnifySerializer.java @@ -0,0 +1,57 @@ +package dev.amronos.createaddoncompatibility.mixin; + +import com.almostreliable.unified.config.UnificationConfig; +import dev.amronos.createaddoncompatibility.Constants; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +import java.util.ArrayList; +import java.util.List; + +@Mixin(UnificationConfig.UnifySerializer.class) +public class MixinUnifySerializer { + @ModifyVariable(method = "handleDeserialization*", at = @At(value = "STORE"), name = "modPriorities", remap = false) + private List modPrioritiesMixin(List modPriorities){ + Constants.LOG.info("Adding modPriorities for AlmostUnified, this will not reflect in unify.json"); + ArrayList newModPriorities = new ArrayList<>(modPriorities); + List cacModPriorities = new ArrayList<>(); + cacModPriorities.add("pneumaticcraft"); + cacModPriorities.add("copycats"); + cacModPriorities.add("create_connected"); + cacModPriorities.add("create_dd"); + cacModPriorities.add("tfmg"); + for (String i : cacModPriorities) { + if (!newModPriorities.contains(i)) { + newModPriorities.add(i); + } + } + return newModPriorities; + } + + @ModifyVariable(method = "handleDeserialization*", at = @At(value = "STORE"), name = "tags", remap = false) + private List tagsMixin(List tags){ + Constants.LOG.info("Adding tags for AlmostUnified, this will not reflect in unify.json"); + ArrayList newTags = new ArrayList<>(tags); + List cacTags = new ArrayList<>(); + cacTags.add("c:ingots/plastic"); + cacTags.add("createaddoncompatibility:six_way_gearbox"); + cacTags.add("copycats:copycat_beam"); + cacTags.add("copycats:copycat_block"); + cacTags.add("copycats:copycat_board"); + cacTags.add("copycats:copycat_box"); + cacTags.add("copycats:copycat_catwalk"); + cacTags.add("copycats:copycat_fence"); + cacTags.add("copycats:copycat_fence_gate"); + cacTags.add("copycats:copycat_slab"); + cacTags.add("copycats:copycat_stairs"); + cacTags.add("copycats:copycat_vertical_step"); + cacTags.add("copycats:copycat_wall"); + for (String i : cacTags) { + if (!newTags.contains(i)) { + newTags.add(i); + } + } + return newTags; + } +} diff --git a/common/src/main/java/dev/amronos/createaddoncompatibility/platform/Services.java b/common/src/main/java/dev/amronos/createaddoncompatibility/platform/Services.java new file mode 100644 index 0000000..90b4a22 --- /dev/null +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/platform/Services.java @@ -0,0 +1,30 @@ +package dev.amronos.createaddoncompatibility.platform; + +import dev.amronos.createaddoncompatibility.Constants; +import dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper; + +import java.util.ServiceLoader; + +// Service loaders are a built-in Java feature that allow us to locate implementations of an interface that vary from one +// environment to another. In the context of MultiLoader we use this feature to access a mock API in the common code that +// is swapped out for the platform specific implementation at runtime. +public class Services { + + // In this example we provide a platform helper which provides information about what platform the mod is running on. + // For example this can be used to check if the code is running on Forge vs Fabric, or to ask the modloader if another + // mod is loaded. + public static final IPlatformHelper PLATFORM = load(IPlatformHelper.class); + + // This code is used to load a service for the current environment. Your implementation of the service must be defined + // manually by including a text file in META-INF/services named with the fully qualified class name of the service. + // Inside the file you should write the fully qualified class name of the implementation to load for the platform. For + // example our file on Forge points to ForgePlatformHelper while Fabric points to FabricPlatformHelper. + public static T load(Class clazz) { + + final T loadedService = ServiceLoader.load(clazz) + .findFirst() + .orElseThrow(() -> new NullPointerException("Failed to load service for " + clazz.getName())); + Constants.LOG.debug("Loaded {} for service {}", loadedService, clazz); + return loadedService; + } +} \ No newline at end of file diff --git a/common/src/main/java/dev/amronos/createaddoncompatibility/platform/services/IPlatformHelper.java b/common/src/main/java/dev/amronos/createaddoncompatibility/platform/services/IPlatformHelper.java new file mode 100644 index 0000000..c6e8334 --- /dev/null +++ b/common/src/main/java/dev/amronos/createaddoncompatibility/platform/services/IPlatformHelper.java @@ -0,0 +1,36 @@ +package dev.amronos.createaddoncompatibility.platform.services; + +public interface IPlatformHelper { + + /** + * Gets the name of the current platform + * + * @return The name of the current platform. + */ + String getPlatformName(); + + /** + * Checks if a mod with the given id is loaded. + * + * @param modId The mod to check if it is loaded. + * @return True if the mod is loaded, false otherwise. + */ + boolean isModLoaded(String modId); + + /** + * Check if the game is currently in a development environment. + * + * @return True if in a development environment, false otherwise. + */ + boolean isDevelopmentEnvironment(); + + /** + * Gets the name of the environment type as a string. + * + * @return The name of the environment type. + */ + default String getEnvironmentName() { + + return isDevelopmentEnvironment() ? "development" : "production"; + } +} \ No newline at end of file diff --git a/common/src/main/resources/createaddoncompatibility.mixins.json b/common/src/main/resources/createaddoncompatibility.mixins.json new file mode 100644 index 0000000..1c8facd --- /dev/null +++ b/common/src/main/resources/createaddoncompatibility.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "dev.amronos.createaddoncompatibility.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_18", + "mixins": [], + "client": [], + "server": [ + "MixinUnifySerializer" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/common/src/main/resources/data/createaddoncompatibility/createdieselgenerators/fuel_type/biofuel.json b/common/src/main/resources/data/createaddoncompatibility/createdieselgenerators/fuel_type/biofuel.json new file mode 100644 index 0000000..7b0eb7e --- /dev/null +++ b/common/src/main/resources/data/createaddoncompatibility/createdieselgenerators/fuel_type/biofuel.json @@ -0,0 +1,20 @@ +{ + "fluid": "#c:biofuel", + "sound_pitch": 0.7, + "normal": { + "speed": 96.0, + "strength": 2048.0, + "burn_rate": 0.05 + }, + "modular": { + "speed": 96.0, + "strength": 3072.0, + "burn_rate": 0.05 + }, + "huge": { + "speed": 192.0, + "strength": 6144.0, + "burn_rate": 0.05 + }, + "burner_multiplier": 0.9 +} diff --git a/common/src/main/resources/data/createaddoncompatibility/createdieselgenerators/fuel_type/peanut_oil.json b/common/src/main/resources/data/createaddoncompatibility/createdieselgenerators/fuel_type/peanut_oil.json new file mode 100644 index 0000000..feed3e5 --- /dev/null +++ b/common/src/main/resources/data/createaddoncompatibility/createdieselgenerators/fuel_type/peanut_oil.json @@ -0,0 +1,20 @@ +{ + "fluid": "#c:peanut_oil", + "sound_pitch": 0.7, + "normal": { + "speed": 96.0, + "strength": 2048.0, + "burn_rate": 0.05 + }, + "modular": { + "speed": 96.0, + "strength": 3072.0, + "burn_rate": 0.05 + }, + "huge": { + "speed": 192.0, + "strength": 6144.0, + "burn_rate": 0.05 + }, + "burner_multiplier": 0.9 +} diff --git a/src/main/resources/logo.png b/common/src/main/resources/logo.png similarity index 100% rename from src/main/resources/logo.png rename to common/src/main/resources/logo.png diff --git a/common/src/main/resources/pack.mcmeta b/common/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..52854ec --- /dev/null +++ b/common/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "${mod_name}", + "pack_format": 8 + } +} \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle new file mode 100644 index 0000000..f82b365 --- /dev/null +++ b/fabric/build.gradle @@ -0,0 +1,37 @@ +plugins { + id 'multiloader-loader' + id 'fabric-loom' +} +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + mappings loom.layered { + officialMojangMappings() + parchment("org.parchmentmc.data:parchment-${parchment_minecraft}:${parchment_version}@zip") + } + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" +} + +loom { + def aw = project(':common').file("src/main/resources/${mod_id}.accesswidener") + if (aw.exists()) { + accessWidenerPath.set(aw) + } + mixin { + defaultRefmapName.set("${mod_id}.refmap.json") + } + runs { + client { + client() + setConfigName('Fabric Client') + ideConfigGenerated(true) + runDir('runs/client') + } + server { + server() + setConfigName('Fabric Server') + ideConfigGenerated(true) + runDir('runs/server') + } + } +} \ No newline at end of file diff --git a/fabric/src/main/java/dev/amronos/createaddoncompatibility/CreateAddonCompatibility.java b/fabric/src/main/java/dev/amronos/createaddoncompatibility/CreateAddonCompatibility.java new file mode 100644 index 0000000..d1c3fb9 --- /dev/null +++ b/fabric/src/main/java/dev/amronos/createaddoncompatibility/CreateAddonCompatibility.java @@ -0,0 +1,18 @@ +package dev.amronos.createaddoncompatibility; + +import net.fabricmc.api.ModInitializer; + +public class CreateAddonCompatibility implements ModInitializer { + + @Override + public void onInitialize() { + + // This method is invoked by the Fabric mod loader when it is ready + // to load your mod. You can access Fabric and Common code in this + // project. + + // Use Fabric to bootstrap the Common mod. + Constants.LOG.info("Hello Fabric world!"); + CommonClass.init(); + } +} diff --git a/fabric/src/main/java/dev/amronos/createaddoncompatibility/mixin/MixinTitleScreen.java b/fabric/src/main/java/dev/amronos/createaddoncompatibility/mixin/MixinTitleScreen.java new file mode 100644 index 0000000..ca83143 --- /dev/null +++ b/fabric/src/main/java/dev/amronos/createaddoncompatibility/mixin/MixinTitleScreen.java @@ -0,0 +1,20 @@ +package dev.amronos.createaddoncompatibility.mixin; + +import dev.amronos.createaddoncompatibility.Constants; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.TitleScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TitleScreen.class) +public class MixinTitleScreen { + + @Inject(at = @At("HEAD"), method = "init()V") + private void init(CallbackInfo info) { + + Constants.LOG.info("This line is printed by an example mod mixin from Fabric!"); + Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); + } +} \ No newline at end of file diff --git a/fabric/src/main/java/dev/amronos/createaddoncompatibility/platform/FabricPlatformHelper.java b/fabric/src/main/java/dev/amronos/createaddoncompatibility/platform/FabricPlatformHelper.java new file mode 100644 index 0000000..1a3371f --- /dev/null +++ b/fabric/src/main/java/dev/amronos/createaddoncompatibility/platform/FabricPlatformHelper.java @@ -0,0 +1,24 @@ +package com.example.examplemod.platform; + +import com.example.examplemod.platform.services.IPlatformHelper; +import net.fabricmc.loader.api.FabricLoader; + +public class FabricPlatformHelper implements IPlatformHelper { + + @Override + public String getPlatformName() { + return "Fabric"; + } + + @Override + public boolean isModLoaded(String modId) { + + return FabricLoader.getInstance().isModLoaded(modId); + } + + @Override + public boolean isDevelopmentEnvironment() { + + return FabricLoader.getInstance().isDevelopmentEnvironment(); + } +} diff --git a/fabric/src/main/resources/META-INF/services/dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper b/fabric/src/main/resources/META-INF/services/dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper new file mode 100644 index 0000000..29d9205 --- /dev/null +++ b/fabric/src/main/resources/META-INF/services/dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper @@ -0,0 +1 @@ +dev.amronos.createaddoncompatibility.platform.FabricPlatformHelper diff --git a/fabric/src/main/resources/createaddoncompatibility.fabric.mixins.json b/fabric/src/main/resources/createaddoncompatibility.fabric.mixins.json new file mode 100644 index 0000000..8c19947 --- /dev/null +++ b/fabric/src/main/resources/createaddoncompatibility.fabric.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "dev.amronos.createaddoncompatibility.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_21", + "mixins": [], + "client": [ + "MixinTitleScreen" + ], + "server": [], + "injectors": { + "defaultRequire": 1 + } +} + diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..f80ea75 --- /dev/null +++ b/fabric/src/main/resources/fabric.mod.json @@ -0,0 +1,36 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${version}", + "name": "${mod_name}", + "description": "${description}", + "authors": [ + "${mod_author}" + ], + "contact": { + "homepage": "https://fabricmc.net/", + "sources": "https://github.com/FabricMC/fabric-example-mod" + }, + "license": "${license}", + "icon": "${mod_id}.png", + "environment": "*", + "entrypoints": { + "main": [ + "dev.amronos.createaddoncompatibility.CreateAddonCompatibility" + ] + }, + "mixins": [ + "${mod_id}.mixins.json", + "${mod_id}.fabric.mixins.json" + ], + "depends": { + "fabricloader": ">=${fabric_loader_version}", + "fabric-api": "*", + "minecraft": "${minecraft_version}", + "java": ">=${java_version}" + }, + "suggests": { + "another-mod": "*" + } +} + diff --git a/gradle.properties b/gradle.properties index 1b60634..eda03e9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,37 +1,43 @@ -# Sets default memory used for gradle commands. Can be overridden by user or command line properties. -# This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false - - -minecraft_version=1.20.1 -minecraft_version_range=[1.20.1] -forge_version=47.1.47 -forge_version_range=[47,) -loader_version_range=[47,) - - -mapping_channel=parchment -mapping_version=2023.09.03-1.20.1 - +# Important Notes: +# Every field you add must be added to the root build.gradle expandProps map. -mod_id=createaddoncompatibility -mod_group_id=com.amronos.createaddoncompatibility - -mod_version=0.2.4 +# Project +version=0.2.4 +group=dev.amronos.createaddoncompatibility +java_version=21 -mod_license=GNU Lesser General Public License v3.0 +# Common +minecraft_version=1.21.1 mod_name=Create: Addon Compatibility -mod_authors=Amronos -mod_description=Adds compatibility for and between different create addons. - - -create_version = 6.0.3-71 -create_version_range = [6.0.3,) -ponder_version = 1.0.51 -flywheel_version = 1.0.1 -registrate_version = MC1.20-1.3.3 -jei_version=15.20.0.106 -almostunified_version=1.20.1-0.9.3 -createdieselgenerators_version = 1.20.1-1.3.1 -tfmg_version = 0.9.3-1.20.1 +mod_author=Amronos +mod_id=createaddoncompatibility +license=GNU Lesser General Public License v3.0 +credits= +description=Adds compatibility for and between different create addons. +minecraft_version_range=[1.21.1] +## This is the version of minecraft that the 'common' project uses, you can find a list of all versions here +## https://projects.neoforged.net/neoforged/neoform +neo_form_version=1.21.1-20240808.144430 +# The version of ParchmentMC that is used, see https://parchmentmc.org/docs/getting-started#choose-a-version for new versions +parchment_minecraft=1.21.1 +parchment_version=2024.11.17 + +# Fabric +fabric_version=0.116.5+1.21.1 +fabric_loader_version=0.17.2 + +# NeoForge +neoforge_version=21.1.219 +neoforge_loader_version_range=[4,) + +# Dependencies +create_version=6.0.9-215 +ponder_version=1.0.81 +flywheel_version=1.0.6 +registrate_version=MC1.21-1.3.0+67 +almostunified_version=1.21.1-1.3.0 +tfmg_version=1.2.0 + +# Gradle +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index c1962a7..0000000 Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 20db9ad..ff23a68 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 index aeb74cb..f5feea6 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -83,7 +85,9 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -130,10 +134,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -141,7 +148,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -149,7 +156,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -198,11 +205,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 93e3f59..9d21a21 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -43,11 +45,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/neoforge/build.gradle b/neoforge/build.gradle new file mode 100644 index 0000000..0a377ac --- /dev/null +++ b/neoforge/build.gradle @@ -0,0 +1,50 @@ +plugins { + id 'multiloader-loader' + id 'net.neoforged.moddev' +} + +neoForge { + version = neoforge_version + // Automatically enable neoforge AccessTransformers if the file exists + def at = project(':common').file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformers.from(at.absolutePath) + } + parchment { + minecraftVersion = parchment_minecraft + mappingsVersion = parchment_version + } + runs { + configureEach { + systemProperty('neoforge.enabledGameTestNamespaces', mod_id) + ideName = "NeoForge ${it.name.capitalize()} (${project.path})" // Unify the run config names with fabric + } + client { + client() + } + data { + data() + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + } + server { + server() + } + } + mods { + "${mod_id}" { + sourceSet sourceSets.main + } + } +} + +dependencies { + implementation("com.simibubi.create:create-${minecraft_version}:${create_version}:slim") { transitive = false } + implementation("net.createmod.ponder:ponder-neoforge:${ponder_version}+mc${minecraft_version}") + compileOnly("dev.engine-room.flywheel:flywheel-neoforge-api-${minecraft_version}:${flywheel_version}") + runtimeOnly("dev.engine-room.flywheel:flywheel-neoforge-${minecraft_version}:${flywheel_version}") + implementation("com.tterrag.registrate:Registrate:${registrate_version}") + implementation("com.almostreliable.mods:almostunified-neoforge:${almostunified_version}") + implementation("maven.modrinth:create-tfmg:${tfmg_version}") +} + +sourceSets.main.resources { srcDir 'src/generated/resources' } diff --git a/neoforge/src/generated/resources/data/c/tags/fluid/crude_oil.json b/neoforge/src/generated/resources/data/c/tags/fluid/crude_oil.json new file mode 100644 index 0000000..118d63c --- /dev/null +++ b/neoforge/src/generated/resources/data/c/tags/fluid/crude_oil.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "pneumaticcraft:flowing_oil", + "required": false + } + ] +} \ No newline at end of file diff --git a/neoforge/src/generated/resources/data/c/tags/fluid/lubricant.json b/neoforge/src/generated/resources/data/c/tags/fluid/lubricant.json new file mode 100644 index 0000000..bba6835 --- /dev/null +++ b/neoforge/src/generated/resources/data/c/tags/fluid/lubricant.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "#c:lubrication_oil", + "required": false + } + ] +} \ No newline at end of file diff --git a/neoforge/src/generated/resources/data/c/tags/fluid/lubrication_oil.json b/neoforge/src/generated/resources/data/c/tags/fluid/lubrication_oil.json new file mode 100644 index 0000000..a1a79be --- /dev/null +++ b/neoforge/src/generated/resources/data/c/tags/fluid/lubrication_oil.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "#c:lubricant", + "required": false + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/liquid_plastic.json b/neoforge/src/generated/resources/data/c/tags/fluid/plastic.json similarity index 100% rename from src/generated/resources/data/forge/tags/fluids/liquid_plastic.json rename to neoforge/src/generated/resources/data/c/tags/fluid/plastic.json diff --git a/src/generated/resources/data/forge/tags/items/ingots/plastic.json b/neoforge/src/generated/resources/data/c/tags/item/ingots/plastic.json similarity index 100% rename from src/generated/resources/data/forge/tags/items/ingots/plastic.json rename to neoforge/src/generated/resources/data/c/tags/item/ingots/plastic.json diff --git a/src/generated/resources/data/copycats/tags/items/copycat_block.json b/neoforge/src/generated/resources/data/copycats/tags/item/copycat_block.json similarity index 100% rename from src/generated/resources/data/copycats/tags/items/copycat_block.json rename to neoforge/src/generated/resources/data/copycats/tags/item/copycat_block.json diff --git a/src/generated/resources/data/copycats/tags/items/copycat_box.json b/neoforge/src/generated/resources/data/copycats/tags/item/copycat_box.json similarity index 100% rename from src/generated/resources/data/copycats/tags/items/copycat_box.json rename to neoforge/src/generated/resources/data/copycats/tags/item/copycat_box.json diff --git a/src/generated/resources/data/copycats/tags/items/copycat_catwalk.json b/neoforge/src/generated/resources/data/copycats/tags/item/copycat_catwalk.json similarity index 100% rename from src/generated/resources/data/copycats/tags/items/copycat_catwalk.json rename to neoforge/src/generated/resources/data/copycats/tags/item/copycat_catwalk.json diff --git a/src/generated/resources/data/copycats/tags/items/copycat_slab.json b/neoforge/src/generated/resources/data/copycats/tags/item/copycat_slab.json similarity index 100% rename from src/generated/resources/data/copycats/tags/items/copycat_slab.json rename to neoforge/src/generated/resources/data/copycats/tags/item/copycat_slab.json diff --git a/src/generated/resources/data/copycats/tags/items/copycat_stairs.json b/neoforge/src/generated/resources/data/copycats/tags/item/copycat_stairs.json similarity index 100% rename from src/generated/resources/data/copycats/tags/items/copycat_stairs.json rename to neoforge/src/generated/resources/data/copycats/tags/item/copycat_stairs.json diff --git a/neoforge/src/main/java/dev/amronos/createaddoncompatibility/CreateAddonCompatibility.java b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/CreateAddonCompatibility.java new file mode 100644 index 0000000..97cb9b8 --- /dev/null +++ b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/CreateAddonCompatibility.java @@ -0,0 +1,15 @@ +package dev.amronos.createaddoncompatibility; + + +import dev.amronos.createaddoncompatibility.data.datagen.ModDataGenerator; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.common.Mod; + +@Mod(Constants.MOD_ID) +public class CreateAddonCompatibility { + + public CreateAddonCompatibility(IEventBus eventBus) { + CommonClass.init(); + eventBus.register(ModDataGenerator.class); + } +} diff --git a/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModBlockTagsProvider.java b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModBlockTagsProvider.java new file mode 100644 index 0000000..68ed951 --- /dev/null +++ b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModBlockTagsProvider.java @@ -0,0 +1,20 @@ +package dev.amronos.createaddoncompatibility.data.datagen; + +import dev.amronos.createaddoncompatibility.Constants; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.neoforged.neoforge.common.data.BlockTagsProvider; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class ModBlockTagsProvider extends BlockTagsProvider { + public ModBlockTagsProvider(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, Constants.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.@NotNull Provider provider) {} +} diff --git a/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModDataGenerator.java b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModDataGenerator.java new file mode 100644 index 0000000..2944906 --- /dev/null +++ b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModDataGenerator.java @@ -0,0 +1,24 @@ +package dev.amronos.createaddoncompatibility.data.datagen; + +import net.minecraft.core.HolderLookup; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.PackOutput; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import net.neoforged.neoforge.data.event.GatherDataEvent; + +import java.util.concurrent.CompletableFuture; + +public class ModDataGenerator { + @SubscribeEvent + public static void gatherData(GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + PackOutput output = generator.getPackOutput(); + CompletableFuture lookupProvider = event.getLookupProvider(); + ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); + + ModBlockTagsProvider blockTagsProvider = generator.addProvider(event.includeServer(), new ModBlockTagsProvider(output, lookupProvider, existingFileHelper)); + generator.addProvider(event.includeServer(), new ModFluidTagsProvider(output, lookupProvider, existingFileHelper)); + generator.addProvider(event.includeServer(), new ModItemTagsProvider(output, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper)); + } +} diff --git a/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModFluidTagsProvider.java b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModFluidTagsProvider.java new file mode 100644 index 0000000..c1c272a --- /dev/null +++ b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModFluidTagsProvider.java @@ -0,0 +1,39 @@ +package dev.amronos.createaddoncompatibility.data.datagen; + +import dev.amronos.createaddoncompatibility.Constants; +import dev.amronos.createaddoncompatibility.data.tags.CommonTags; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.FluidTagsProvider; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class ModFluidTagsProvider extends FluidTagsProvider { + + public ModFluidTagsProvider(PackOutput output, CompletableFuture provider, @Nullable ExistingFileHelper existingFileHelper) { + super(output, provider, Constants.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.@NotNull Provider lookupProvider) { + tag(CommonTags.Fluids.CRUDE_OIL) + .addOptional(ResourceLocation.fromNamespaceAndPath("pneumaticcraft", "flowing_oil")) + ; + tag(CommonTags.Fluids.PLASTIC) + .addOptional(ResourceLocation.fromNamespaceAndPath("pneumaticcraft", "plastic")) + .addOptional(ResourceLocation.fromNamespaceAndPath("pneumaticcraft", "flowing_plastic")) + .addOptional(ResourceLocation.fromNamespaceAndPath("tfmg", "liquid_plastic")) + .addOptional(ResourceLocation.fromNamespaceAndPath("tfmg", "flowing_liquid_plastic")) + ; + tag(CommonTags.Fluids.LUBRICANT) + .addOptionalTag(ResourceLocation.fromNamespaceAndPath("c", "lubrication_oil")) + ; + tag(CommonTags.Fluids.LUBRICATION_OIL) + .addOptionalTag(ResourceLocation.fromNamespaceAndPath("c", "lubricant")) + ; + } +} diff --git a/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModItemTagsProvider.java b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModItemTagsProvider.java new file mode 100644 index 0000000..3c47d51 --- /dev/null +++ b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/data/datagen/ModItemTagsProvider.java @@ -0,0 +1,46 @@ +package dev.amronos.createaddoncompatibility.data.datagen; + +import dev.amronos.createaddoncompatibility.Constants; +import dev.amronos.createaddoncompatibility.data.tags.CommonTags; +import dev.amronos.createaddoncompatibility.data.tags.CopycatsTags; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.ItemTagsProvider; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class ModItemTagsProvider extends ItemTagsProvider { + public ModItemTagsProvider(PackOutput output, CompletableFuture lookupProvider, CompletableFuture> blockTags, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, blockTags, Constants.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.@NotNull Provider provider) { + this.tag(CommonTags.Items.PLASTIC) + .addOptional(ResourceLocation.fromNamespaceAndPath("pneumaticcraft", "plastic")) + ; + + this.tag(CopycatsTags.Items.COPYCAT_BLOCK) + .addOptional(ResourceLocation.fromNamespaceAndPath("create_dd", "copycat_block")) + ; + this.tag(CopycatsTags.Items.COPYCAT_BOX) + .addOptional(ResourceLocation.fromNamespaceAndPath("create_connected", "copycat_box")) + ; + this.tag(CopycatsTags.Items.COPYCAT_CATWALK) + .addOptional(ResourceLocation.fromNamespaceAndPath("create_connected", "copycat_catwalk")) + ; + this.tag(CopycatsTags.Items.COPYCAT_SLAB) + .addOptional(ResourceLocation.fromNamespaceAndPath("create_dd", "copycat_slab")) + ; + this.tag(CopycatsTags.Items.COPYCAT_STAIRS) + .replace(true) + .addOptional(ResourceLocation.fromNamespaceAndPath("copycats", "copycat_stairs")) + .addOptional(ResourceLocation.fromNamespaceAndPath("create_connected", "copycat_stairs")) + ; + } +} diff --git a/neoforge/src/main/java/dev/amronos/createaddoncompatibility/platform/NeoForgePlatformHelper.java b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/platform/NeoForgePlatformHelper.java new file mode 100644 index 0000000..d85fd11 --- /dev/null +++ b/neoforge/src/main/java/dev/amronos/createaddoncompatibility/platform/NeoForgePlatformHelper.java @@ -0,0 +1,26 @@ +package dev.amronos.createaddoncompatibility.platform; + +import dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper; +import net.neoforged.fml.ModList; +import net.neoforged.fml.loading.FMLLoader; + +public class NeoForgePlatformHelper implements IPlatformHelper { + + @Override + public String getPlatformName() { + + return "NeoForge"; + } + + @Override + public boolean isModLoaded(String modId) { + + return ModList.get().isLoaded(modId); + } + + @Override + public boolean isDevelopmentEnvironment() { + + return !FMLLoader.isProduction(); + } +} diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..adc296f --- /dev/null +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,58 @@ +modLoader = "javafml" +loaderVersion = "${neoforge_loader_version_range}" +license = "${license}" +issueTrackerURL="https://github.com/Amronos/${mod_id}/issues/" + +[[mods]] +modId = "${mod_id}" +version = "${version}" +displayName = "${mod_name}" +updateJSONURL="https://api.modrinth.com/updates/QgrK9rtJ/forge_updates.json" +displayURL="https://modrinth.com/mod/${mod_id}" +logoFile="logo.png" +credits="${credits}" +authors = "${mod_author}" +description = '''${description}''' + +[[mixins]] +config = "${mod_id}.mixins.json" +[[mixins]] +config = "${mod_id}.neoforge.mixins.json" + +[[dependencies.${mod_id}]] +modId = "neoforge" +type="required" +versionRange = "[${neoforge_version},)" +ordering = "NONE" +side = "BOTH" + +[[dependencies.${mod_id}]] +modId = "minecraft" +type="required" +versionRange = "${minecraft_version_range}" +ordering = "NONE" +side = "BOTH" + +[[dependencies.${mod_id}]] +modId="almostunified" +type="required" +versionRange="[${almostunified_version},)" +ordering="AFTER" +side="SERVER" +referralUrl="https://modrinth.com/mod/almost-unified" + +[[dependencies.${mod_id}]] +modId="create" +type="required" +versionRange="[6.0.9,6.1.0)" +ordering="AFTER" +side="BOTH" +referralUrl="https://modrinth.com/mod/create" + +[[dependencies.${mod_id}]] +modId="tfmg" +type="optional" +versionRange="[${tfmg_version},)" +ordering="AFTER" +side="BOTH" +referralUrl="https://modrinth.com/mod/create-tfmg" diff --git a/neoforge/src/main/resources/META-INF/services/dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper b/neoforge/src/main/resources/META-INF/services/dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper new file mode 100644 index 0000000..133c1aa --- /dev/null +++ b/neoforge/src/main/resources/META-INF/services/dev.amronos.createaddoncompatibility.platform.services.IPlatformHelper @@ -0,0 +1 @@ +dev.amronos.createaddoncompatibility.platform.NeoForgePlatformHelper diff --git a/neoforge/src/main/resources/createaddoncompatibility.neoforge.mixins.json b/neoforge/src/main/resources/createaddoncompatibility.neoforge.mixins.json new file mode 100644 index 0000000..fc0c9e2 --- /dev/null +++ b/neoforge/src/main/resources/createaddoncompatibility.neoforge.mixins.json @@ -0,0 +1,12 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "dev.amronos.createaddoncompatibility.mixin", + "compatibilityLevel": "JAVA_21", + "mixins": [], + "client": [], + "server": [], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil.json b/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil.json new file mode 100644 index 0000000..dba9fe1 --- /dev/null +++ b/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil.json @@ -0,0 +1,36 @@ +{ + "type": "tfmg:distillation", + "ingredients": [ + { + "type": "neoforge:tag", + "amount": 340, + "tag": "c:crude_oil" + } + ], + "results": [ + { + "amount": 120, + "id": "tfmg:heavy_oil" + }, + { + "amount": 60, + "id": "tfmg:diesel" + }, + { + "amount": 30, + "id": "tfmg:kerosene" + }, + { + "amount": 10, + "id": "tfmg:naphtha" + }, + { + "amount": 60, + "id": "tfmg:gasoline" + }, + { + "amount": 60, + "id": "tfmg:lpg" + } + ] +} diff --git a/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil_light_distillation.json b/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil_light_distillation.json new file mode 100644 index 0000000..bd532a4 --- /dev/null +++ b/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil_light_distillation.json @@ -0,0 +1,24 @@ +{ + "type": "tfmg:distillation", + "ingredients": [ + { + "type": "neoforge:tag", + "amount": 200, + "tag": "c:crude_oil" + } + ], + "results": [ + { + "amount": 150, + "id": "tfmg:heavy_oil" + }, + { + "amount": 45, + "id": "tfmg:diesel" + }, + { + "amount": 5, + "id": "tfmg:gasoline" + } + ] +} diff --git a/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil_no_naphtha.json b/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil_no_naphtha.json new file mode 100644 index 0000000..93dbba7 --- /dev/null +++ b/neoforge/src/main/resources/data/tfmg/recipe/distillation/crude_oil_no_naphtha.json @@ -0,0 +1,32 @@ +{ + "type": "tfmg:distillation", + "ingredients": [ + { + "type": "neoforge:tag", + "amount": 330, + "tag": "c:crude_oil" + } + ], + "results": [ + { + "amount": 120, + "id": "tfmg:heavy_oil" + }, + { + "amount": 60, + "id": "tfmg:diesel" + }, + { + "amount": 30, + "id": "tfmg:kerosene" + }, + { + "amount": 60, + "id": "tfmg:gasoline" + }, + { + "amount": 60, + "id": "tfmg:lpg" + } + ] +} diff --git a/settings.gradle b/settings.gradle index 0a02867..77067c8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,15 +1,39 @@ pluginManagement { repositories { gradlePluginPortal() - maven { - name = 'MinecraftForge' - url = 'https://maven.minecraftforge.net/' + mavenCentral() + exclusiveContent { + forRepository { + maven { + name = 'Fabric' + url = uri('https://maven.fabricmc.net') + } + } + filter { + includeGroup('net.fabricmc') + includeGroup('fabric-loom') + } + } + exclusiveContent { + forRepository { + maven { + name = 'Sponge' + url = uri('https://repo.spongepowered.org/repository/maven-public') + } + } + filter { + includeGroupAndSubgroups("org.spongepowered") + } } - maven { url = 'https://maven.parchmentmc.org' } - maven { url = 'https://repo.spongepowered.org/repository/maven-public/'} } } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } + +// This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606) +rootProject.name = 'createaddoncompatibility' +include('common') +// include('fabric') +include('neoforge') diff --git a/src/generated/resources/data/createaddoncompatibility/tags/items/six_way_gearbox.json b/src/generated/resources/data/createaddoncompatibility/tags/items/six_way_gearbox.json deleted file mode 100644 index e5b336b..0000000 --- a/src/generated/resources/data/createaddoncompatibility/tags/items/six_way_gearbox.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "values": [ - { - "id": "create_connected:six_way_gearbox", - "required": false - }, - { - "id": "createutilities:gearcube", - "required": false - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/crude_oil.json b/src/generated/resources/data/forge/tags/fluids/crude_oil.json deleted file mode 100644 index 0676d47..0000000 --- a/src/generated/resources/data/forge/tags/fluids/crude_oil.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "values": [ - { - "id": "ad_astra:oil", - "required": false - }, - { - "id": "ad_astra:flowing_oil", - "required": false - }, - { - "id": "pneumaticcraft:oil", - "required": false - }, - { - "id": "pneumaticcraft:flowing_oil", - "required": false - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/lubricant.json b/src/generated/resources/data/forge/tags/fluids/lubricant.json deleted file mode 100644 index 52a710b..0000000 --- a/src/generated/resources/data/forge/tags/fluids/lubricant.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "values": [ - { - "id": "tfmg:lubrication_oil", - "required": false - }, - { - "id": "tfmg:flowing_lubrication_oil", - "required": false - } - ] -} \ No newline at end of file diff --git a/src/main/java/com/amronos/createaddoncompatibility/CreateAddonCompatibility.java b/src/main/java/com/amronos/createaddoncompatibility/CreateAddonCompatibility.java deleted file mode 100644 index 9fb37a2..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/CreateAddonCompatibility.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.amronos.createaddoncompatibility; - -import com.mojang.logging.LogUtils; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.AddPackFindersEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import org.slf4j.Logger; -import com.amronos.createaddoncompatibility.registry.ModDatapacks; - -@Mod(CreateAddonCompatibility.MOD_ID) -public class CreateAddonCompatibility { - public static final String MOD_ID = "createaddoncompatibility"; - public static final Logger LOGGER = LogUtils.getLogger(); - - public CreateAddonCompatibility() { - IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); - MinecraftForge.EVENT_BUS.register(this); - - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::callRegisterModDatapacks); - } - - public void callRegisterModDatapacks(final AddPackFindersEvent event) { - ModDatapacks.registerModDatapacks(event); - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/DataGenerators.java b/src/main/java/com/amronos/createaddoncompatibility/data/datagen/DataGenerators.java deleted file mode 100644 index c2260ae..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/DataGenerators.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.amronos.createaddoncompatibility.data.datagen; - -import com.amronos.createaddoncompatibility.CreateAddonCompatibility; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.DataGenerator; -import net.minecraft.data.PackOutput; -import net.minecraftforge.common.data.ExistingFileHelper; -import net.minecraftforge.data.event.GatherDataEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; - -import java.util.concurrent.CompletableFuture; - -@Mod.EventBusSubscriber(modid = CreateAddonCompatibility.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) -public class DataGenerators { - @SubscribeEvent - public static void gatherData(GatherDataEvent event){ - DataGenerator generator = event.getGenerator(); - PackOutput packOutput = generator.getPackOutput(); - CompletableFuture lookupProvider = event.getLookupProvider(); - ExistingFileHelper existingFileHelper = event.getExistingFileHelper(); - - ModBlockTagGenerator blockTagGenerator = - generator.addProvider(event.includeServer(), new ModBlockTagGenerator(packOutput, lookupProvider, existingFileHelper)); - generator.addProvider(event.includeServer(), new ModFluidTagGenerator(packOutput, lookupProvider, existingFileHelper)); - generator.addProvider(event.includeServer(), new ModItemTagGenerator(packOutput, lookupProvider, blockTagGenerator.contentsGetter(), existingFileHelper)); - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModBlockTagGenerator.java b/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModBlockTagGenerator.java deleted file mode 100644 index d4b2ad9..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModBlockTagGenerator.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.amronos.createaddoncompatibility.data.datagen; - -import com.amronos.createaddoncompatibility.CreateAddonCompatibility; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; -import net.minecraftforge.common.data.BlockTagsProvider; -import net.minecraftforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; - -import java.util.concurrent.CompletableFuture; - -public class ModBlockTagGenerator extends BlockTagsProvider { - - public ModBlockTagGenerator(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, CreateAddonCompatibility.MOD_ID, existingFileHelper); - } - - @Override - protected void addTags(HolderLookup.Provider provider) { - - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModFluidTagGenerator.java b/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModFluidTagGenerator.java deleted file mode 100644 index 94df197..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModFluidTagGenerator.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amronos.createaddoncompatibility.data.datagen; - -import com.amronos.createaddoncompatibility.CreateAddonCompatibility; -import com.amronos.createaddoncompatibility.data.tags.ForgeTags; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; -import net.minecraft.data.tags.FluidTagsProvider; -import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; - -import java.util.concurrent.CompletableFuture; - - -public class ModFluidTagGenerator extends FluidTagsProvider { - public ModFluidTagGenerator(PackOutput p_255941_, CompletableFuture p_256600_, @Nullable ExistingFileHelper existingFileHelper) { - super(p_255941_, p_256600_, CreateAddonCompatibility.MOD_ID, existingFileHelper); - } - - @Override - protected void addTags(HolderLookup.Provider pProvider) { - this.tag(ForgeTags.Fluids.CRUDE_OIL) - .addOptional(new ResourceLocation("ad_astra", "oil")) - .addOptional(new ResourceLocation("ad_astra", "flowing_oil")) - .addOptional(new ResourceLocation("pneumaticcraft", "oil")) - .addOptional(new ResourceLocation("pneumaticcraft", "flowing_oil")) - ; - this.tag(ForgeTags.Fluids.LIQUID_PLASTIC) - .addOptional(new ResourceLocation("pneumaticcraft", "plastic")) - .addOptional(new ResourceLocation("pneumaticcraft", "flowing_plastic")) - .addOptional(new ResourceLocation("tfmg", "liquid_plastic")) - .addOptional(new ResourceLocation("tfmg", "flowing_liquid_plastic")) - ; - this.tag(ForgeTags.Fluids.LUBRICANT) - .addOptional(new ResourceLocation("tfmg", "lubrication_oil")) - .addOptional(new ResourceLocation("tfmg", "flowing_lubrication_oil")) - ; - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModItemTagGenerator.java b/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModItemTagGenerator.java deleted file mode 100644 index b5c4487..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/data/datagen/ModItemTagGenerator.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.amronos.createaddoncompatibility.data.datagen; - -import com.amronos.createaddoncompatibility.CreateAddonCompatibility; -import com.amronos.createaddoncompatibility.data.tags.CopycatsTags; -import com.amronos.createaddoncompatibility.data.tags.CreateAddonCompatibilityTags; -import com.amronos.createaddoncompatibility.data.tags.ForgeTags; -import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; -import net.minecraft.data.tags.ItemTagsProvider; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.common.data.ExistingFileHelper; -import org.jetbrains.annotations.Nullable; - -import java.util.concurrent.CompletableFuture; - -public class ModItemTagGenerator extends ItemTagsProvider { - public ModItemTagGenerator(PackOutput p_275343_, CompletableFuture p_275729_, CompletableFuture> p_275322_, @Nullable ExistingFileHelper existingFileHelper) { - super(p_275343_, p_275729_, p_275322_, CreateAddonCompatibility.MOD_ID, existingFileHelper); - } - - @Override - protected void addTags(HolderLookup.Provider provider) { - this.tag(ForgeTags.Items.PLASTIC) - .addOptional(new ResourceLocation("pneumaticcraft", "plastic")) - ; - - - this.tag(CreateAddonCompatibilityTags.Items.SIX_WAY_GEARBOX) - .addOptional(new ResourceLocation("create_connected", "six_way_gearbox")) - .addOptional(new ResourceLocation("createutilities", "gearcube")) - ; - - this.tag(CopycatsTags.Items.COPYCAT_BLOCK) - .addOptional(new ResourceLocation("create_dd", "copycat_block")) - ; - this.tag(CopycatsTags.Items.COPYCAT_BOX) - .addOptional(new ResourceLocation("create_connected", "copycat_box")) - ; - this.tag(CopycatsTags.Items.COPYCAT_CATWALK) - .addOptional(new ResourceLocation("create_connected", "copycat_catwalk")) - ; - this.tag(CopycatsTags.Items.COPYCAT_SLAB) - .addOptional(new ResourceLocation("create_dd", "copycat_slab")) - ; - this.tag(CopycatsTags.Items.COPYCAT_STAIRS) - .replace(true) - .addOptional(new ResourceLocation("copycats", "copycat_stairs")) - .addOptional(new ResourceLocation("create_connected", "copycat_stairs")) - ; - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/data/tags/CreateAddonCompatibilityTags.java b/src/main/java/com/amronos/createaddoncompatibility/data/tags/CreateAddonCompatibilityTags.java deleted file mode 100644 index 8a48cbc..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/data/tags/CreateAddonCompatibilityTags.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.amronos.createaddoncompatibility.data.tags; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.FluidTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.material.Fluid; - -public class CreateAddonCompatibilityTags { - public static class Items { - public static final TagKey SIX_WAY_GEARBOX = tag("six_way_gearbox"); - - private static TagKey tag(String name) { - return ItemTags.create(new ResourceLocation("createaddoncompatibility", name)); - } - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/mixin/MixinBlastFurnaceOutputBlockEntity.java b/src/main/java/com/amronos/createaddoncompatibility/mixin/MixinBlastFurnaceOutputBlockEntity.java deleted file mode 100644 index edae042..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/mixin/MixinBlastFurnaceOutputBlockEntity.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.amronos.createaddoncompatibility.mixin; - -import com.amronos.createaddoncompatibility.data.tags.ForgeTags; -import com.drmangotea.tfmg.blocks.machines.metal_processing.blast_furnace.BlastFurnaceOutputBlockEntity; -import com.drmangotea.tfmg.registry.TFMGItems; -import com.simibubi.create.foundation.item.SmartInventory; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.item.ItemStack; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Pseudo; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import java.util.List; - -@Pseudo -@Mixin(BlastFurnaceOutputBlockEntity.class) -public class MixinBlastFurnaceOutputBlockEntity { - @Shadow - public SmartInventory fuelInventory; - @Shadow - public SmartInventory inputInventory; - - @Unique - public SmartInventory createaddoncompatibility$previousFuelInventory; - @Unique - public SmartInventory createaddoncompatibility$previousInputInventory; - - @Inject(remap = false, method = "acceptInsertedItems", at = @At(value = "HEAD")) - private void savePreviousInventory(CallbackInfo info){ - createaddoncompatibility$previousFuelInventory = fuelInventory; - createaddoncompatibility$previousInputInventory = inputInventory; - } - - @Inject(remap = false, method = "acceptInsertedItems", at = @At(value = "TAIL"), locals = LocalCapture.CAPTURE_FAILSOFT) - private void acceptInsertedItems(CallbackInfo info, List itemsToPick) { - fuelInventory = createaddoncompatibility$previousFuelInventory; - inputInventory = createaddoncompatibility$previousInputInventory; - for (ItemEntity itemEntity : itemsToPick) { - ItemStack itemStack = itemEntity.getItem(); - int count; - int freeSpace2; - if (itemStack.is(ForgeTags.Items.COKE_DUST)) { - freeSpace2 = this.fuelInventory.getStackInSlot(0).getMaxStackSize() - this.fuelInventory.getStackInSlot(0).getCount(); - count = itemStack.getCount(); - if (count > freeSpace2) { - itemStack.setCount(itemStack.getCount() - freeSpace2); - this.fuelInventory.setItem(0, new ItemStack(TFMGItems.COAL_COKE_DUST.get(), this.fuelInventory.getStackInSlot(0).getCount() + freeSpace2)); - } else { - this.fuelInventory.setItem(0, new ItemStack(TFMGItems.COAL_COKE_DUST.get(), this.fuelInventory.getStackInSlot(0).getCount() + itemStack.getCount())); - itemEntity.discard(); - } - } else { - if (itemStack.getCount() == 1) { - itemStack.setCount(2); - itemEntity.setItem(itemStack); - } - - freeSpace2 = this.inputInventory.getStackInSlot(0).getMaxStackSize() - this.inputInventory.getStackInSlot(0).getCount(); - count = itemStack.getCount(); - if (this.inputInventory.isEmpty() || this.inputInventory.getItem(0).is(itemStack.getItem())) { - if (count > freeSpace2) { - itemStack.setCount(itemStack.getCount() - freeSpace2); - this.inputInventory.setItem(0, new ItemStack(itemStack.getItem(), this.inputInventory.getStackInSlot(0).getCount() + freeSpace2)); - } else { - this.inputInventory.setItem(0, new ItemStack(itemStack.getItem(), this.inputInventory.getStackInSlot(0).getCount() + itemStack.getCount())); - itemEntity.discard(); - } - } - } - } - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/mixin/MixinUnifyConfig.java b/src/main/java/com/amronos/createaddoncompatibility/mixin/MixinUnifyConfig.java deleted file mode 100644 index 2f3aad1..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/mixin/MixinUnifyConfig.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.amronos.createaddoncompatibility.mixin; - -import com.almostreliable.unified.config.UnifyConfig; -import com.amronos.createaddoncompatibility.CreateAddonCompatibility; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyVariable; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -@Mixin(UnifyConfig.Serializer.class) -public class MixinUnifyConfig { - - @ModifyVariable(method = "deserialize", at = @At(value = "RETURN"), ordinal = 0, index = 3, name = "modPriorities", remap = false) - private List modPrioritiesMixin(List modPriorities){ - CreateAddonCompatibility.LOGGER.info("Adding modPriorities for AlmostUnified, this will not reflect in unify.json"); - modPriorities = new ArrayList<>(modPriorities); - List cacModPriorities = new ArrayList(); - cacModPriorities.add("pneumaticcraft"); - cacModPriorities.add("copycats"); - cacModPriorities.add("create_connected"); - cacModPriorities.add("createutilities"); - cacModPriorities.add("create_dd"); - cacModPriorities.add("tfmg"); - for (String i : cacModPriorities) { - if (!modPriorities.contains(i)) { - modPriorities.add(i); - } - } - modPriorities = Collections.unmodifiableList(modPriorities); - return modPriorities; - } - - @ModifyVariable(method = "deserialize", at = @At(value = "RETURN"), ordinal = 2, index = 5, name = "tags", remap = false) - private List tagsMixin(List tags){ - CreateAddonCompatibility.LOGGER.info("Adding tags for AlmostUnified, this will not reflect in unify.json"); - tags = new ArrayList<>(tags); - List cacTags = new ArrayList(); - cacTags.add("forge:plastic_sheet"); - cacTags.add("createaddoncompatibility:six_way_gearbox"); - cacTags.add("copycats:copycat_beam"); - cacTags.add("copycats:copycat_block"); - cacTags.add("copycats:copycat_board"); - cacTags.add("copycats:copycat_box"); - cacTags.add("copycats:copycat_catwalk"); - cacTags.add("copycats:copycat_fence"); - cacTags.add("copycats:copycat_fence_gate"); - cacTags.add("copycats:copycat_slab"); - cacTags.add("copycats:copycat_stairs"); - cacTags.add("copycats:copycat_vertical_step"); - cacTags.add("copycats:copycat_wall"); - for (String i : cacTags) { - if (!tags.contains(i)) { - tags.add(i); - } - } - tags = Collections.unmodifiableList(tags); - return tags; - } -} diff --git a/src/main/java/com/amronos/createaddoncompatibility/registry/ModDatapacks.java b/src/main/java/com/amronos/createaddoncompatibility/registry/ModDatapacks.java deleted file mode 100644 index f53b1e0..0000000 --- a/src/main/java/com/amronos/createaddoncompatibility/registry/ModDatapacks.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amronos.createaddoncompatibility.registry; - -import com.amronos.createaddoncompatibility.CreateAddonCompatibility; -import net.minecraft.ChatFormatting; -import net.minecraft.network.chat.Component; -import net.minecraft.server.packs.PackType; -import net.minecraft.server.packs.PathPackResources; -import net.minecraft.server.packs.repository.Pack; -import net.minecraft.server.packs.repository.PackSource; -import net.minecraftforge.event.AddPackFindersEvent; -import net.minecraftforge.fml.ModList; - -import java.nio.file.Path; - -public class ModDatapacks { - public static void registerModDatapacks(final AddPackFindersEvent event) { - if (ModList.get().isLoaded("ad_astra")) { - registerModDatapacks(event, "rockets_use_adastra_fuels_only"); - } - } - - private static void registerModDatapacks(final AddPackFindersEvent event, String name) { - if (event.getPackType() == PackType.SERVER_DATA) { - Path path = ModList.get().getModFileById(CreateAddonCompatibility.MOD_ID).getFile().findResource("datapacks/" + name); - Pack builtinDataPack = Pack.readMetaAndCreate( - CreateAddonCompatibility.MOD_ID + ":" + name, - Component.translatable("datapack." + CreateAddonCompatibility.MOD_ID + "." + name), - false, - (a) -> new PathPackResources(a, path, false), - PackType.SERVER_DATA, - Pack.Position.TOP, - PackSource.create((arg) -> Component.translatable("pack.nameAndSource", arg, Component.translatable("pack.source.builtin")).withStyle(ChatFormatting.GRAY), false) - ); - event.addRepositorySource((packConsumer) -> packConsumer.accept(builtinDataPack)); - } - } -} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml deleted file mode 100644 index d187d86..0000000 --- a/src/main/resources/META-INF/mods.toml +++ /dev/null @@ -1,152 +0,0 @@ -modLoader="javafml" -loaderVersion= "${loader_version_range}" - -license="GNU Lesser General Public License v3.0" -issueTrackerURL="https://github.com/Amronos/${mod_id}/issues" -showAsResourcePack=false - -[[mods]] -modId="${mod_id}" -version="${mod_version}" -displayName="Create: Addon Compatibility" -updateJSONURL="https://api.modrinth.com/updates/QgrK9rtJ/forge_updates.json" -displayURL="https://modrinth.com/mod/${mod_id}" -logoFile="logo.png" -#credits="" -authors="Amronos" -description="Adds compatibility for and between different create addons." - - -[dependencies] -[[dependencies.${mod_id}]] -modId="minecraft" -mandatory=true -versionRange="${minecraft_version_range}" -ordering="NONE" -side="BOTH" - -[[dependencies.${mod_id}]] -modId="forge" -mandatory=true -versionRange="${forge_version_range}" -ordering="NONE" -side="BOTH" - -[[dependencies.${mod_id}]] -modId="almostunified" -mandatory=true -versionRange="[${almostunified_version},)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/almost-unified" - -[[dependencies.${mod_id}]] -modId="ad_astra" -mandatory=false -versionRange="[1.15.18,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/ad-astra" - -[[dependencies.${mod_id}]] -modId="copycats" -mandatory=false -versionRange="[1.3.8+mc.1.20.1-forge,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/copycats" - -[[dependencies.${mod_id}]] -modId="create" -mandatory=true -versionRange="${create_version_range}" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create" - -[[dependencies.${mod_id}]] -modId="createaddition" -mandatory=false -versionRange="[1.20.1-1.2.2,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/createaddition" - -[[dependencies.${mod_id}]] -modId="create_connected" -mandatory=false -versionRange="[0.8.2-mc1.20.1,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-connected" - -[[dependencies.${mod_id}]] -modId="create_dd" -mandatory=false -versionRange="[0.1a.Release-Early-Dev,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-dreams-and-desires" - -[[dependencies.${mod_id}]] -modId="createdieselgenerators" -mandatory=false -versionRange="[${createdieselgenerators_version},)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-diesel-generators" - -[[dependencies.${mod_id}]] -modId="createutilities" -mandatory=false -versionRange="[0.3.0,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-utilities" - -[[dependencies.${mod_id}]] -modId="destroy" -mandatory=false -versionRange="[0.1.0-snapshot-6,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/destroy" - -[[dependencies.${mod_id}]] -modId="garnished" -mandatory=false -versionRange="[1.8.3,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-garnished" - -[[dependencies.${mod_id}]] -modId="jei" -mandatory=false -versionRange="[${jei_version},)" -ordering="AFTER" -side="CLIENT" - -[[dependencies.${mod_id}]] -modId="pneumaticcraft" -mandatory=false -versionRange="[6.0.14,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/pneumaticcraft-repressurized" - -[[dependencies.${mod_id}]] -modId="railways" -mandatory=false -versionRange="[1.6.3,)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-steam-n-rails" - -[[dependencies.${mod_id}]] -modId="tfmg" -mandatory=false -versionRange="[${tfmg_version},)" -ordering="AFTER" -side="BOTH" -referralUrl="https://modrinth.com/mod/create-tfmg" diff --git a/src/main/resources/assets/createaddoncompatibility/lang/en_us.json b/src/main/resources/assets/createaddoncompatibility/lang/en_us.json deleted file mode 100644 index 5a98d02..0000000 --- a/src/main/resources/assets/createaddoncompatibility/lang/en_us.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "datapack.createaddoncompatibility.rockets_use_adastra_fuels_only": "Rockets Use Ad Astra Fuels Only", - "datapack.createaddoncompatibility.rockets_use_adastra_fuels_only.description": "Makes Ad Astra rockets use only Ad Astra fuels." -} diff --git a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/ad_astra-cryo_fuel.json b/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/ad_astra-cryo_fuel.json deleted file mode 100644 index 0bccec6..0000000 --- a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/ad_astra-cryo_fuel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "fluid": "ad_astra:cryo_fuel", - "sound_speed": 1, - "normal": { - "speed": 96.0, - "strength": 2048.0, - "burn_rate": 2 - }, - "modular": { - "speed": 96.0, - "strength": 3072.0, - "burn_rate": 2 - }, - "huge": { - "speed": 128.0, - "strength": 4096.0, - "burn_rate": 2 - } -} diff --git a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/ad_astra-fuel.json b/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/ad_astra-fuel.json deleted file mode 100644 index 40e419f..0000000 --- a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/ad_astra-fuel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "fluid": "ad_astra:fuel", - "sound_speed": 1, - "normal": { - "speed": 96.0, - "strength": 2048.0, - "burn_rate": 2 - }, - "modular": { - "speed": 96.0, - "strength": 3072.0, - "burn_rate": 2 - }, - "huge": { - "speed": 128.0, - "strength": 4096.0, - "burn_rate": 2 - } -} diff --git a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/createaddition-bioethanol.json b/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/createaddition-bioethanol.json deleted file mode 100644 index 0a75127..0000000 --- a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/createaddition-bioethanol.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "fluid": "createaddition:bioethanol", - "sound_speed": 1, - "normal": { - "speed": 96.0, - "strength": 2048.0, - "burn_rate": 1 - }, - "modular": { - "speed": 96.0, - "strength": 2048.0, - "burn_rate": 1 - }, - "huge": { - "speed": 128.0, - "strength": 8192.0, - "burn_rate": 1 - } -} diff --git a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/garnished-peanut_oil.json b/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/garnished-peanut_oil.json deleted file mode 100644 index 387429e..0000000 --- a/src/main/resources/data/createaddoncompatibility/diesel_engine_fuel_type/garnished-peanut_oil.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "fluid": "garnished:peanut_oil", - "sound_speed": 1, - "normal": { - "speed": 96.0, - "strength": 2048.0, - "burn_rate": 2 - }, - "modular": { - "speed": 96.0, - "strength": 3072.0, - "burn_rate": 2 - }, - "huge": { - "speed": 128.0, - "strength": 4096.0, - "burn_rate": 2 - } -} diff --git a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-diesel.json b/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-diesel.json deleted file mode 100644 index 4521846..0000000 --- a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-diesel.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "fluids": [ - "#forge:diesel" - ], - "fuel_ticks": 550 -} diff --git a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-ethanol.json b/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-ethanol.json deleted file mode 100644 index 25596a3..0000000 --- a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-ethanol.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "fluids": [ - "#forge:ethanol" - ], - "fuel_ticks": 250 -} diff --git a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-gasoline.json b/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-gasoline.json deleted file mode 100644 index 72c6d96..0000000 --- a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-gasoline.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "fluids": [ - "#forge:gasoline" - ], - "fuel_ticks": 550 -} diff --git a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-plantoil.json b/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-plantoil.json deleted file mode 100644 index 65ba54d..0000000 --- a/src/main/resources/data/createaddoncompatibility/railways/railways_liquid_fuel/compat-plantoil.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "fluids": [ - "#forge:plantoil" - ], - "fuel_ticks": 250 -} diff --git a/src/main/resources/data/createaddoncompatibility/recipes/pneumaticcraft/thermo_plant/compat-reinforced_pressure_tube.json b/src/main/resources/data/createaddoncompatibility/recipes/pneumaticcraft/thermo_plant/compat-reinforced_pressure_tube.json deleted file mode 100644 index c392fd2..0000000 --- a/src/main/resources/data/createaddoncompatibility/recipes/pneumaticcraft/thermo_plant/compat-reinforced_pressure_tube.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "pneumaticcraft" - } - ], - "recipe": { - "type": "pneumaticcraft:thermo_plant", - "exothermic": false, - "fluid_input": { - "type": "pneumaticcraft:fluid", - "amount": 50, - "tag": "forge:liquid_plastic" - }, - "item_input": { - "item": "pneumaticcraft:pressure_tube" - }, - "item_output": { - "item": "pneumaticcraft:reinforced_pressure_tube" - }, - "pressure": 1.5 - } - } - ] -} - \ No newline at end of file diff --git a/src/main/resources/data/createaddoncompatibility/recipes/tfmg/distillation/compat-crude_oil.json b/src/main/resources/data/createaddoncompatibility/recipes/tfmg/distillation/compat-crude_oil.json deleted file mode 100644 index bf5402b..0000000 --- a/src/main/resources/data/createaddoncompatibility/recipes/tfmg/distillation/compat-crude_oil.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "type": "tfmg:distillation", - - "ingredients": [ - { - "fluidTag": "forge:crude_oil", - "nbt": {}, - "amount": 180 - } - ], - - "results": [ - { - "fluid": "tfmg:heavy_oil", - "amount": 40 - }, - { - "fluid": "tfmg:diesel", - "amount": 30 - }, - { - "fluid": "tfmg:kerosene", - "amount": 20 - }, - { - "fluid": "tfmg:naphtha", - "amount": 20 - }, - { - "fluid": "tfmg:gasoline", - "amount": 40 - }, - { - "fluid": "tfmg:lpg", - "amount": 30 - } - ] -} diff --git a/src/main/resources/data/createaddoncompatibility/recipes/tfmg/distillation/compat-crude_oil_no_naptha.json b/src/main/resources/data/createaddoncompatibility/recipes/tfmg/distillation/compat-crude_oil_no_naptha.json deleted file mode 100644 index 7f7c11d..0000000 --- a/src/main/resources/data/createaddoncompatibility/recipes/tfmg/distillation/compat-crude_oil_no_naptha.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "tfmg:distillation", - - "ingredients": [ - { - "fluidTag": "forge:crude_oil", - "nbt": {}, - "amount": 340 - } - ], - - "results": [ - { - "fluid": "tfmg:heavy_oil", - "amount": 80 - }, - { - "fluid": "tfmg:diesel", - "amount": 60 - }, - { - "fluid": "tfmg:kerosene", - "amount": 40 - }, - { - "fluid": "tfmg:gasoline", - "amount": 80 - }, - { - "fluid": "tfmg:lpg", - "amount": 60 - } - ] -} diff --git a/src/main/resources/data/createaddoncompatibility/recipes/tfmg/sequenced_assembly/compat-pneumaticcraft-turbine_engine.json b/src/main/resources/data/createaddoncompatibility/recipes/tfmg/sequenced_assembly/compat-pneumaticcraft-turbine_engine.json deleted file mode 100644 index 6f9725c..0000000 --- a/src/main/resources/data/createaddoncompatibility/recipes/tfmg/sequenced_assembly/compat-pneumaticcraft-turbine_engine.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "forge:mod_loaded", - "modid": "pneumaticcraft" - } - ], - "recipe": { - "type": "create:sequenced_assembly", - "ingredient": { - "item": "tfmg:engine_base" - }, - "transitionalItem": { - "item": "tfmg:unfinished_turbine_engine" - }, - "sequence": [ - { - "type": "create:deploying", - "ingredients": [ - { - "item": "tfmg:unfinished_turbine_engine" - }, - { - "item": "tfmg:turbine_blade" - } - ], - "results": [ - { - "item": "tfmg:unfinished_turbine_engine" - } - ] - }, - { - "type": "create:deploying", - "ingredients": [ - { - "item": "tfmg:unfinished_turbine_engine" - }, - { - "item": "tfmg:screw" - } - ], - "results": [ - { - "item": "tfmg:unfinished_turbine_engine" - } - ] - }, - { - "type": "create:deploying", - "ingredients": [ - { - "item": "tfmg:unfinished_turbine_engine" - }, - { - "item": "tfmg:screwdriver" - } - ], - "results": [ - { - "item": "tfmg:unfinished_turbine_engine" - } - ] - }, - { - "type": "create:filling", - "ingredients": [ - { - "item": "tfmg:unfinished_turbine_engine" - }, - { - "fluid": "pneumaticcraft:lubricant", - "nbt": {}, - "amount": 1000 - } - ], - "results": [ - { - "item": "tfmg:unfinished_turbine_engine" - } - ] - }, - { - "type": "create:deploying", - "ingredients": [ - { - "item": "tfmg:unfinished_turbine_engine" - }, - { - "item": "tfmg:steel_mechanism" - } - ], - "results": [ - { - "item": "tfmg:unfinished_turbine_engine" - } - ] - } - ], - "results": [ - { - "item": "tfmg:turbine_engine", - "count": 2 - } - ], - "loops": 6 - } - } - ] -} diff --git a/src/main/resources/datapacks/rockets_use_adastra_fuels_only/data/ad_astra/tags/fluids/fuel.json b/src/main/resources/datapacks/rockets_use_adastra_fuels_only/data/ad_astra/tags/fluids/fuel.json deleted file mode 100644 index cff7210..0000000 --- a/src/main/resources/datapacks/rockets_use_adastra_fuels_only/data/ad_astra/tags/fluids/fuel.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "replace": true, - "values": [ - { - "id": "ad_astra:fuel", - "required": false - }, - { - "id": "ad_astra:cryo_fuel", - "required": false - } - ] -} diff --git a/src/main/resources/datapacks/rockets_use_adastra_fuels_only/pack.mcmeta b/src/main/resources/datapacks/rockets_use_adastra_fuels_only/pack.mcmeta deleted file mode 100644 index 44ef1b8..0000000 --- a/src/main/resources/datapacks/rockets_use_adastra_fuels_only/pack.mcmeta +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pack": { - "pack_format": 15, - "description": { - "translate": "datapack.createaddoncompatibility.rockets_use_adastra_fuels_only.description" - } - } -} diff --git a/src/main/resources/mixins.createaddoncompatibility.json b/src/main/resources/mixins.createaddoncompatibility.json deleted file mode 100644 index 2c3cb45..0000000 --- a/src/main/resources/mixins.createaddoncompatibility.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "required": true, - "package": "com.amronos.createaddoncompatibility.mixin", - "refmap": "createaddoncompatibility.refmap.json", - "compatibilityLevel": "JAVA_17", - "mixins": [ - "MixinBlastFurnaceOutputBlockEntity", - "MixinUnifyConfig" - ], - "client": [ - ], - "injectors": { - "defaultRequire": 1 - }, - "minVersion": "0.8" -} diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta deleted file mode 100644 index eca79ae..0000000 --- a/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pack": { - "description": { - "text": "${mod_id} resources" - }, - "pack_format": 15 - } -} \ No newline at end of file