diff --git a/.github/SECURITY.md b/.github/SECURITY.md
deleted file mode 100644
index 026884c3b..000000000
--- a/.github/SECURITY.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Security Policy
-
-## Scope
-
-Keeping users safe and secure is a top priority for us.We welcome the contribution of external security researchers.
-
-If you believe you’ve found a security or vulnerability issue in the repo we encourage you to notify us.
-
-There are no hard and fast rules to determine if a bug is worth reporting as a security issue or a “regular” issue.
-When in doubt, please do send us a report.
-
-## How to submit a report
-
-Security issues can be reported by sending an [email to us][contact].
-
-The team will acknowledge your email within 48 hours. You will receive a more detailed response within 96 hours.
-
-We will create a maintainer security advisory on GitHub to discuss internally, and when needed, invite you to the
-advisory.
-
-## Purpose
-
-- Make a good faith effort to avoid privacy violations, destruction of data, and interruption or degradation of our
- services
-- Only interact with accounts you own or with explicit permission of the account holder. If you do encounter Personally
- Identifiable Information (PII) contact us immediately,
- do not proceed with access, and immediately purge any local information
-- Provide us with a reasonable amount of time to resolve vulnerabilities prior to any disclosure to the public or a
- third-party
-- We will consider activities conducted consistent with this policy to constitute “authorized” conduct and will not
- pursue civil action or initiate a complaint to law enforcement.
- We will help to the extent we can if legal action is initiated by a third party against you
-
-Please submit a report to us before engaging in conduct that may be inconsistent with or unaddressed by this policy.
-
-## Preferences
-
-- Please provide detailed reports with reproducible steps and a clearly defined impact
-- Submit one vulnerability per report
-- Social engineering (such as phishing, vishing, smishing) is prohibited
-
-[contact]: mailto:admin@terrafirmagreg.su
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 9afe7ac74..2f0ea7027 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,5 +40,5 @@ run
runs
libs
-
+moveToInstance.gradle
*.jar
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 27a4b10ea..0a360545e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,138 +1,127 @@
buildscript {
repositories {
- // These repositories are only for Gradle plugins, put any other repositories in the repository block further below
+ // These repositories are only for Gradle plugins
maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
mavenCentral()
- }
- dependencies {
- classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
+ maven {
+ name = "NeoForged"
+ url = 'https://maven.neoforged.net/releases'
+ content {
+ includeGroup "net.neoforged"
+ }
+ }
}
}
plugins {
+ id 'java'
+ id 'java-library'
id 'idea'
- id 'net.minecraftforge.gradle' version '[6.0.16,6.2)'
- id 'org.parchmentmc.librarian.forgegradle' version '1.+'
- id 'com.diffplug.spotless' version '7.2.1'
+ id 'net.neoforged.moddev.legacyforge' version "${mdg_legacy_version}"
+ id 'com.diffplug.spotless' version "${spotless_version}"
+ id "com.github.ManifestClasspath" version "0.1.0-RELEASE"
}
-apply from: 'gradle/scripts/helpers.gradle'
-apply plugin: 'org.spongepowered.mixin'
-
-
-// Early Assertions
-assertProperty 'mod_version'
-assertProperty 'mod_package'
-assertProperty 'mod_id'
-assertProperty 'mod_name'
-assertProperty 'mod_name_suffix'
+apply from: 'gradle/scripts/repositories.gradle'
+apply from: 'gradle/scripts/dependencies.gradle'
+apply from: 'gradle/scripts/spotless.gradle'
+if (file("moveToInstance.gradle").exists()) apply from: "moveToInstance.gradle"
base {
- version = propertyString('mod_version')
- group = propertyString('mod_package')
- archivesName = propertyString('mod_name', 'mod_name_suffix')
+ version = "${mod_version}"
+ group = "${mod_package}"
+ archivesName = "${mod_name}-${mod_name_suffix}"
}
+idea {
+ module {
+ downloadSources = true
+ downloadJavadoc = true
+ }
+}
java {
toolchain {
- languageVersion.set(JavaLanguageVersion.of(java_version))
+ languageVersion = JavaLanguageVersion.of(17)
}
+
}
-minecraft {
- mappings channel: mapping_channel, version: mapping_version
+mixin {
+ var refMap = add sourceSets.main, "${mod_id}.refmap.json"
+ jar.from refMap;
+ config "${mod_id}.mixins.json"
+}
- enableIdeaPrepareRuns = true
- copyIdeResources = true
+sourceSets {
+ main.resources {
+ srcDir 'src/main/resources'
+ srcDir 'src/generated/resources'
+ }
- // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations.
- // The folder name can be set on a run configuration using the "folderName" property.
- // By default, the folder name of a run configuration is the name of the Gradle project containing it.
- // generateRunFolders = true
+ dev {
+ java.srcDir("src/dev/java")
+ resources.srcDir("src/dev/resources")
+ compileClasspath += sourceSets.main.compileClasspath
+ }
+}
- accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
+legacyForge {
+ version = "${minecraft_version}-${forge_version}"
runs {
configureEach {
- workingDirectory project.file('run')
-
- property 'forge.logging.markers', 'REGISTRIES'
- property 'forge.logging.console.level', 'INFO'
-
- mods {
- "${mod_id}" {
- source sourceSets.main
- }
- }
+ gameDirectory = project.file('run')
+ systemProperty 'forge.logging.markers', 'REGISTRIES'
+ systemProperty 'forge.logging.console.level', 'INFO'
}
client {
- workingDirectory project.file('run/client')
-
- property 'mixin.env.remapRefMap', 'true'
- property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
-
- // Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
- property 'forge.enabledGameTestNamespaces', mod_id
+ client()
+ gameDirectory = project.file('run/client')
}
server {
- workingDirectory project.file('run/server')
-
- property 'forge.enabledGameTestNamespaces', mod_id
- args '--nogui'
- }
-
- // 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 {
- workingDirectory project.file('run/game-test')
-
- property 'forge.enabledGameTestNamespaces', mod_id
+ server()
+ gameDirectory = project.file('run/server')
+ programArgument '--nogui'
}
data {
- workingDirectory project.file('run/data')
+ data()
+ gameDirectory = 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/')
+ programArguments.addAll('--mod', "${mod_id}", '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath())
}
- }
-}
-mixin {
- add sourceSets.main, "${mod_id}.refmap.json"
-
- config "${mod_id}.mixins.json"
+ }
- // THIS PRODUCES A TON OF LOG SPAM THAT DOESN'T NEED TO BE SEEN BY PLAYERS
- // ONLY ENABLE THIS WHEN WORKING WITH MIXINS! DISABLE IN ALL OTHER CASES
- debug.verbose = false
+ mods {
+ "${mod_id}" {
+ sourceSet(sourceSets.main)
+ }
+ }
}
-apply from: 'gradle/scripts/repositories.gradle'
-apply from: 'gradle/scripts/dependencies.gradle'
-
processResources {
var replaceProperties = [
- 'mod_id': propertyString('mod_id'),
- 'mod_name': propertyString('mod_name'),
- 'mod_version': propertyString('mod_version'),
- 'mod_description': propertyString('mod_description'),
- 'mod_authors': propertyString('mod_authors'),
- 'mod_credits': propertyString('mod_credits'),
- 'mod_url': propertyString('mod_url'),
- 'mod_update_json': propertyString('mod_update_json'),
- 'mod_logo_path': propertyString('mod_logo_path'),
-
- 'minecraft_version': propertyString('minecraft_version'),
- 'minecraft_version_range': propertyString('minecraft_version_range'),
-
- 'forge_version': propertyString('forge_version'),
- 'forge_version_range': propertyString('forge_version_range'),
- 'loader_version_range': propertyString('loader_version_range')
+ 'mod_id' : "${mod_id}",
+ 'mod_name' : "${mod_name}",
+ 'mod_version' : "${mod_version}",
+ 'mod_description' : "${mod_description}",
+ 'mod_authors' : "${mod_authors}",
+ 'mod_credits' : "${mod_credits}",
+ 'mod_url' : "${mod_url}",
+ 'mod_update_json' : "${mod_update_json}",
+ 'mod_logo_path' : "${mod_logo_path}",
+
+ '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}"
]
var filterList = [
'META-INF/mods.toml',
@@ -140,63 +129,12 @@ processResources {
]
inputs.properties replaceProperties
+ duplicatesStrategy = DuplicatesStrategy.INCLUDE
filesMatching(filterList) { fcd ->
fcd.expand(replaceProperties + [project: project])
}
}
-
-
-// Example for how to get properties into the manifest for reading at runtime.
-tasks.named('jar', Jar).configure {
- manifest {
- attributes([
- "Specification-Title": propertyString('mod_id'),
- "Specification-Vendor": propertyString('mod_authors'),
- "Specification-Version": "1", // We are version 1 of ourselves
- "Implementation-Title": propertyString('mod_name'),
- "Implementation-Version": propertyString('mod_version'),
- "Implementation-Vendor": propertyString('mod_authors'),
- "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
- ])
- }
-
- // This is the preferred method to reobfuscate your jar file
- finalizedBy 'reobfJar'
-}
-
-apply from: 'gradle/scripts/spotless.gradle'
-
-// Rename the final file: delete regular *.jar (if produced) and strip the -all suffix from the shaded jar
-tasks.register('renameAllJar') {
- doLast {
- def libsDir = file("${buildDir}/libs")
- if (!libsDir.exists()) return
- // Delete a possible regular jar first
- libsDir.listFiles()?.findAll { it.name == "${archivesBaseName}-${version}.jar" }?.each { File reg ->
- reg.delete()
- }
- // Rename *-all.jar to *.jar
- libsDir.listFiles()?.findAll { it.name.endsWith('-all.jar') }?.each { File f ->
- def targetName = f.name.replace('-all.jar', '.jar')
- def target = new File(f.parentFile, targetName)
- if (target.exists()) target.delete()
- if (!f.renameTo(target)) {
- throw new GradleException("Failed to rename ${f.name} to ${target.name}")
- }
- }
- }
-}
-
-// Run rename step after available packaging task (bind safely after tasks are created)
-gradle.projectsEvaluated {
- tasks.findByName('reobfJarJar')?.finalizedBy('renameAllJar')
- tasks.findByName('reobfJar')?.finalizedBy('renameAllJar')
- // Fallbacks if reobf tasks are not present in this environment
- tasks.findByName('jarJar')?.finalizedBy('renameAllJar')
- tasks.findByName('jar')?.finalizedBy('renameAllJar')
-}
-
sourceSets {
dev {
java.srcDir("src/dev/java")
@@ -205,6 +143,19 @@ sourceSets {
}
}
+tasks.withType(Jar).configureEach {
+ manifest.attributes([
+ "Specification-Title" : "${mod_id}",
+ "Specification-Vendor" : "${mod_authors}",
+ "Specification-Version" : "1",
+ "Implementation-Title" : "${mod_name}",
+ "Implementation-Version" : "${mod_version}",
+ "Implementation-Vendor" : "${mod_authors}",
+ "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
+ "MixinConfigs" : "${mod_id}.mixins.json"
+ ])
+}
+
// Fix a bug in Species that only shows up when running from dev env
// Compile our patched Species.class, and use it instead of the normal one in the species-3.5.jar.
// Put the result in run/server/mods
@@ -241,7 +192,6 @@ tasks.register("prepareServerDev") {
dependsOn patchSpeciesJar
def serverDir = file("run/server")
- def eulaFile = file("${serverDir}/eula.txt")
def propsFile = file("${serverDir}/server.properties")
outputs.file(eulaFile)
@@ -250,12 +200,6 @@ tasks.register("prepareServerDev") {
doLast {
serverDir.mkdirs()
- copy {
- from "src/dev/resources"
- include "eula.txt"
- into serverDir
- }
-
// Create or patch server.properties to set online-mode=false
if (propsFile.exists()) {
def content = propsFile.text
@@ -271,42 +215,31 @@ tasks.register("prepareServerDev") {
}
}
-// Prepare client: fix missing Jade lang files
-tasks.register("prepareClientDev") {
- def langDir = file("run/client/kubejs/assets/jade/lang")
- def langFile = file("${langDir}/en_us.json")
-
- outputs.file(langFile)
-
- doLast {
- langDir.mkdirs()
-
- copy {
- from "src/dev/resources/assets/jade/lang"
- include "en_us.json"
- into langDir
- }
- }
-}
-
// Runs Species patch before runServer.
allprojects {
tasks.matching { it.name == "prepareRunServer" }.configureEach {
dependsOn("prepareServerDev")
}
- tasks.matching { it.name == "prepareRunClient" }.configureEach {
- dependsOn("prepareClientDev")
- }
-
}
-
// Moving the core jar to a custom folder
-tasks.register('copyJarToCustomFolder', Copy) {
- from("$buildDir/libs")
- include("*${version}.jar")
- into("D:/Modding/TerrafirmaGreg/Prism launcher/instances/TerrafirmaGreg-Modern/minecraft/mods/")
+tasks.register('copyJarToInstance', Copy) {
+
+ group = 'mod development/internal'
+
+ from("${buildDir}/libs") {
+ include("*${version}.jar")
+ exclude("*-sources.jar", "*-javadoc.jar")
+ }
+ into("${modpack_mods}")
}
-// Uncomment to enable
-//tasks.build.finalizedBy('copyJarToCustomFolder')
+if (project.findProperty('enable_copy_jar_to_instance')?.toBoolean()) {
+ tasks.build.finalizedBy('copyJarToInstance')
+}
+
+configurations.all {
+ resolutionStrategy {
+ cacheChangingModulesFor 0, 'seconds'
+ }
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index b32efc269..adf60a357 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,68 +1,74 @@
# Gradle Properties
-org.gradle.jvmargs=-Xmx8G -Dnet.minecraftforge.gradle.test_certs=false
-org.gradle.parallel=true
-org.gradle.logging.stacktrace=all
-gradle_version=8.12.1
-java_version=17
+org.gradle.jvmargs = -Xmx8G -Dnet.minecraftforge.gradle.test_certs=false
+org.gradle.parallel = true
+org.gradle.logging.stacktrace = all
# Mod Information
# HIGHLY RECOMMEND complying with SemVer for mod_version: https://semver.org/
-mod_version = 0.8.21
-mod_package = su.terrafirmagreg
-mod_id = tfg
-mod_name = TerraFirmaGreg-Core
-mod_name_suffix = Modern
+mod_version = 0.8.22
+mod_package = su.terrafirmagreg
+mod_id = tfg
+mod_name = TerraFirmaGreg-Core
+mod_name_suffix = Modern
# Mod Metadata (Optional)
-mod_description = Compat mod for TFC, GTCEu, and the other parts of TerraFirmaGreg.
-mod_url = https://www.curseforge.com/minecraft/mc-mods/terrafirmagreg-core
-mod_update_json = https://www.curseforge.com/minecraft/mc-mods/terrafirmagreg-core
+mod_description = Compat mod for TFC, GTCEu, and the other parts of TerraFirmaGreg.
+mod_url = https://www.curseforge.com/minecraft/mc-mods/terrafirmagreg-core
+mod_update_json = https://www.curseforge.com/minecraft/mc-mods/terrafirmagreg-core
# Delimit authors with commas
-mod_authors = Exception, Xikaro, Zleub, Pyritie, aidie8, jojo7682345, Redeix, Thomasx0, Gustavo, AirRice, Zeropol, voidstar240, Mqrius, et. al.
-mod_credits = Bioxx, Dunkleosteus, Kittychanley for the original TerraFirmaCraft for 1.7.10 and before.
-mod_logo_path = /assets/tfg/textures/gui/logo.png
+mod_authors = Exception, Xikaro, Zleub, Pyritie, aidie8, jojo7682345, Redeix, Thomasx0, Gustavo, AirRice, Zeropol, voidstar240, Mqrius, et. al.
+mod_credits = Bioxx, Dunkleosteus, Kittychanley for the original TerraFirmaCraft for 1.7.10 and before.
+mod_logo_path = /assets/tfg/textures/gui/logo.png
# Mapping Properties
-mapping_channel = parchment
-mapping_version = 2023.09.03-1.20.1
-use_dependency_at_files = true
+mapping_channel = parchment
+mapping_version = 2023.09.03-1.20.1
+use_dependency_at_files = true
# Run Configurations
# If multiple arguments/tweak classes are stated, use spaces as the delimiter
-minecraft_version = 1.20.1
-minecraft_version_range=[1.20.1,1.21)
-minecraft_username = Developer
+minecraft_version = 1.20.1
+minecraft_version_range = [1.20.1,1.21)
+minecraft_username = Developer
-forge_version=47.4.13
-forge_version_range=[47,)
+enable_copy_jar_to_instance = false
+modpack_mods = D:/path/to/instances/TerrafirmaGreg-Modern/minecraft/mods/
-loader_version_range=[47,)
+### Dependency versions
-# Mod versions
-# Some mods need to have the dependency package updated manually, instead of just changing the version number
+# Build environment
+java_version = 17
+gradle_version = 8.12.1
+mdg_legacy_version = 2.0.119
+spotless_version = 7.2.1
+
+# Forge
+forge_version = 47.4.13
+forge_version_range = [47,)
+loader_version_range = [47,)
# Dependencies
-ldlib_version = 1.0.40.b
-jei_version = 15.3.0.7
-emi_version = 1.1.22+1.20.1
+ldlib_version = 1.0.40.b
+jei_version = 15.20.0.129
+emi_version = 1.1.22+1.20.1
# GTCEu & create
-create_version = 6.0.8-289
-flywheel_version = 1.0.4
-ponder_version = 1.0.80
-greate_version = 0.0.64
-gtm_version = 7.4.1
+create_version = 6.0.8-289
+flywheel_version = 1.0.4
+ponder_version = 1.0.80
+greate_version = 0.0.68
+gtm_version = 7.5.2
# TFC & related
-tfc_version = 3.2.19
-firmalife_version = 2.1.26
-firmaciv_version = 1.0.9
-alekiships_version = 1.0.14
-beneath_version = 1.0.6
+tfc_version = 3.2.19
+firmalife_version = 2.1.27
+firmaciv_version = 1.0.9
+alekiships_version = 1.0.14
+beneath_version = 1.0.6
# Other
-cc_tweaked_version = 1.111.0
-ad_astra_version = 1.15.20
-puzzleslib_version = v8.1.32-1.20.1-Forge
-hangglider_version = v8.0.1-1.20.1-Forge
-ae2_version=15.4.10-cosmolite.34
+cc_tweaked_version = 1.111.0
+ad_astra_version = 1.15.20
+puzzleslib_version = v8.1.32-1.20.1-Forge
+hangglider_version = v8.0.1-1.20.1-Forge
+ae2_version = 15.4.10-cosmolite.34
diff --git a/gradle/scripts/dependencies.gradle b/gradle/scripts/dependencies.gradle
index 674cfe47d..43135e22f 100644
--- a/gradle/scripts/dependencies.gradle
+++ b/gradle/scripts/dependencies.gradle
@@ -1,156 +1,153 @@
dependencies {
- minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
-
compileOnly 'org.jetbrains:annotations:26.0.+'
annotationProcessor 'org.jetbrains:annotations:26.0.+'
compileOnly 'org.projectlombok:lombok:1.18.+'
annotationProcessor 'org.projectlombok:lombok:1.18.+'
-
annotationProcessor 'org.spongepowered:mixin:0.8.7:processor'
compileOnly annotationProcessor("io.github.llamalad7:mixinextras-common:0.5.0")
- implementation(jarJar("io.github.llamalad7:mixinextras-forge:0.5.0")) {
- jarJar.ranged(it, "[0.5.0,)")
- }
- compileOnly(annotationProcessor("com.github.bawnorton.mixinsquared:mixinsquared-common:0.3.6-beta.1"))
- implementation(jarJar("com.github.bawnorton.mixinsquared:mixinsquared-forge:0.3.6-beta.1")) {
- jarJar.ranged(it, "[0.3.6-beta.1,)")
- }
+ implementation jarJar("io.github.llamalad7:mixinextras-forge:0.5.0")
- compileOnly fg.deobf("com.tterrag.registrate:Registrate:MC1.20-1.3.11")
+ compileOnly annotationProcessor("com.github.bawnorton.mixinsquared:mixinsquared-common:0.3.6-beta.1")
+ implementation jarJar("com.github.bawnorton.mixinsquared:mixinsquared-forge:0.3.6-beta.1")
- implementation fg.deobf("maven.modrinth:embeddium:0.3.31+mc1.20.1")
- implementation fg.deobf("maven.modrinth:ferrite-core:DG5Fn9Sz")
- implementation fg.deobf("maven.modrinth:architectury-api:9.2.14+forge")
+ modCompileOnly "com.tterrag.registrate:Registrate:MC1.20-1.3.11"
- //implementation fg.deobf("curse.maven:configuration-444699:4710266")
+ modImplementation "maven.modrinth:embeddium:0.3.31+mc1.20.1"
+ modImplementation "maven.modrinth:ferrite-core:DG5Fn9Sz"
+ modImplementation "maven.modrinth:architectury-api:9.2.14+forge"
+
+ //modImplementation "curse.maven:configuration-444699:4710266"
// JEI
- compileOnly fg.deobf("mezz.jei:jei-1.20.1-common-api:${jei_version}")
- compileOnly fg.deobf("mezz.jei:jei-1.20.1-forge-api:${jei_version}")
- compileOnly fg.deobf("mezz.jei:jei-1.20.1-forge:${jei_version}")
+ modCompileOnly "mezz.jei:jei-1.20.1-common-api:${jei_version}"
+ modCompileOnly "mezz.jei:jei-1.20.1-forge-api:${jei_version}"
+ modCompileOnly "mezz.jei:jei-1.20.1-forge:${jei_version}"
// EMI
- //compileOnly fg.deobf("dev.emi:emi-forge:${emi_version}:api")
- implementation fg.deobf("dev.emi:emi-forge:${emi_version}")
+ //modCompileOnly "dev.emi:emi-forge:${emi_version}:api"
+ modImplementation "dev.emi:emi-forge:${emi_version}"
// Create
- 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.simibubi.create:create-${minecraft_version}:${create_version}:slim") { transitive = false }
- implementation(fg.deobf("net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}"))
+ modCompileOnly "dev.engine-room.flywheel:flywheel-forge-api-${minecraft_version}:${flywheel_version}"
+ modRuntimeOnly "dev.engine-room.flywheel:flywheel-forge-${minecraft_version}:${flywheel_version}"
+ modImplementation ("com.simibubi.create:create-${minecraft_version}:${create_version}:slim") { transitive = false }
+ modImplementation "net.createmod.ponder:Ponder-Forge-${minecraft_version}:${ponder_version}"
// Create: Vintage Improvements
- implementation fg.deobf("curse.maven:vintage-improvements-ssw-edition-1255448:7436235") { transitive = false }
+ modImplementation ("curse.maven:vintage-improvements-ssw-edition-1255448:7436235") { transitive = false }
// Greate
- implementation fg.deobf("maven.modrinth:greate:${greate_version}") { transitive = false }
+ modImplementation ("maven.modrinth:greate:${greate_version}") { transitive = false }
// GTM
- implementation fg.deobf("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtm_version}") { transitive = false }
- implementation fg.deobf("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
+ modImplementation ("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtm_version}") { transitive = false }
+ modImplementation ("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
// KJS
- implementation fg.deobf("maven.modrinth:rhino:2001.2.2-build.18+forge")
- implementation fg.deobf("maven.modrinth:kubejs:2001.6.5-build.7+forge")
+ modImplementation "maven.modrinth:rhino:2001.2.2-build.18+forge"
+ modImplementation "maven.modrinth:kubejs:2001.6.5-build.7+forge"
// TFC
- implementation fg.deobf("maven.modrinth:patchouli:1.20.1-84.1-forge") { transitive = false }
- implementation fg.deobf("maven.modrinth:terrafirmacraft:${tfc_version}") { transitive = false }
- implementation fg.deobf("curse.maven:kubejs-tfc-841001:6996502") { transitive = false }
+ modImplementation ("maven.modrinth:patchouli:1.20.1-84.1-forge") { transitive = false }
+ modImplementation ("maven.modrinth:terrafirmacraft:${tfc_version}") { transitive = false }
+ modImplementation ("curse.maven:kubejs-tfc-841001:6996502") { transitive = false }
// FirmaLife
- implementation fg.deobf("maven.modrinth:firmalife:${firmalife_version}")
+ modImplementation "maven.modrinth:firmalife:${firmalife_version}"
// Beneath
- implementation fg.deobf("maven.modrinth:beneath:${beneath_version}") { transitive = false }
+ modImplementation ("maven.modrinth:beneath:${beneath_version}") { transitive = false }
// TFC-Ambiental
- implementation fg.deobf("maven.modrinth:curios:5.12.1+1.20.1")
- implementation fg.deobf("maven.modrinth:tfc-ambiental-second-edition:1.20.1-3.3.0")
+ modImplementation "maven.modrinth:curios:5.12.1+1.20.1"
+ modImplementation "maven.modrinth:tfc-ambiental-second-edition:1.20.1-3.3.0"
// FirmaCiv
- implementation fg.deobf("maven.modrinth:alekiships:${alekiships_version}") { transitive = false }
- implementation fg.deobf("maven.modrinth:firmaciv:${firmaciv_version}") { transitive = false }
+ modImplementation ("maven.modrinth:alekiships:${alekiships_version}") { transitive = false }
+ modImplementation ("maven.modrinth:firmaciv:${firmaciv_version}") { transitive = false }
// TFC AstikorCarts
- implementation fg.deobf("curse.maven:astikor-carts-redux-916493:4988266") { transitive = false }
- implementation fg.deobf("curse.maven:astikor-carts-tfc-844019:5141430") { transitive = false }
+ modImplementation ("curse.maven:astikor-carts-redux-916493:4988266") { transitive = false }
+ modImplementation ("curse.maven:astikor-carts-tfc-844019:5141430") { transitive = false }
// TFC hot or not
- implementation fg.deobf("curse.maven:tfc-hot-or-not-499096:6047294") { transitive = false }
+ modImplementation ("curse.maven:tfc-hot-or-not-499096:6047294") { transitive = false }
// AE2
- implementation fg.deobf("curse.maven:guideme-1173950:7013686")
- implementation fg.deobf(jarJar("appeng:appliedenergistics2-forge:$ae2_version")) {
- jarJar.ranged(it, "[$ae2_version,)")
- }
- implementation fg.deobf("curse.maven:applied-energistics-2-wireless-terminals-459929:7014805")
+ modImplementation "curse.maven:guideme-1173950:7013686"
+ modImplementation jarJar("appeng:appliedenergistics2-forge:$ae2_version")
+ modImplementation "curse.maven:applied-energistics-2-wireless-terminals-459929:7014805"
// ComputerCraft
- compileOnly fg.deobf("cc.tweaked:cc-tweaked-1.20.1-core-api:${cc_tweaked_version}")
- compileOnly fg.deobf("cc.tweaked:cc-tweaked-1.20.1-forge-api:${cc_tweaked_version}")
- implementation fg.deobf("cc.tweaked:cc-tweaked-1.20.1-forge:${cc_tweaked_version}")
+ modCompileOnly "cc.tweaked:cc-tweaked-1.20.1-core-api:${cc_tweaked_version}"
+ modCompileOnly "cc.tweaked:cc-tweaked-1.20.1-forge-api:${cc_tweaked_version}"
+ modImplementation "cc.tweaked:cc-tweaked-1.20.1-forge:${cc_tweaked_version}"
// FTB
- implementation fg.deobf("curse.maven:ftb-teams-forge-404468:6130786") { transitive = false }
- implementation fg.deobf("curse.maven:ftb-library-forge-404465:6164053") { transitive = false }
- implementation fg.deobf("curse.maven:ftb-quests-forge-289412:6431737") { transitive = false }
- implementation fg.deobf("curse.maven:ftb-chunks-forge-314906:6431735") { transitive = false }
+ modImplementation ("curse.maven:ftb-teams-forge-404468:6130786") { transitive = false }
+ modImplementation ("curse.maven:ftb-library-forge-404465:6164053") { transitive = false }
+ modImplementation ("curse.maven:ftb-quests-forge-289412:6431737") { transitive = false }
+ modImplementation ("curse.maven:ftb-chunks-forge-314906:6431735") { transitive = false }
// Jade
- implementation fg.deobf("curse.maven:jade-324717:6271651")
+ modImplementation "curse.maven:jade-324717:6271651"
// TFC Roads and Roofs
- implementation fg.deobf("curse.maven:roads-and-roofs-tfc-1048212:5852507")
+ modImplementation "curse.maven:roads-and-roofs-tfc-1048212:5852507"
// Ad Astra
- implementation fg.deobf("curse.maven:ad-astra-635042:6262032") { transitive = false }
- implementation fg.deobf("curse.maven:botarium-704113:5486070") { transitive = false }
- implementation fg.deobf("curse.maven:resourceful-lib-570073:5659871") { transitive = false }
- implementation fg.deobf("curse.maven:resourceful-config-714059:6231176") { transitive = false }
+ modImplementation ("curse.maven:ad-astra-635042:6262032") { transitive = false }
+ modImplementation ("curse.maven:botarium-704113:5486070") { transitive = false }
+ modImplementation ("curse.maven:resourceful-lib-570073:5659871") { transitive = false }
+ modImplementation ("curse.maven:resourceful-config-714059:6231176") { transitive = false }
// Species
- implementation fg.deobf("maven.modrinth:species:3.5") { transitive = false }
+ modImplementation ("maven.modrinth:species:3.5") { transitive = false }
// Simply Stacked Dimensions
- implementation fg.deobf("curse.maven:simply-stacked-dimensions-523416:5562948") { transitive = false }
+ modImplementation ("curse.maven:simply-stacked-dimensions-523416:5562948") { transitive = false }
// Grappling Hook -- needless dependencies are dumb
- implementation fg.deobf("curse.maven:cloth-config-348521:5729105")
- implementation fg.deobf("curse.maven:grappling-hook-mod-reforged-1166811:6028357") { transitive = false }
+ modImplementation "curse.maven:cloth-config-348521:5729105"
+ modImplementation ("curse.maven:grappling-hook-mod-reforged-1166811:6028357") { transitive = false }
// Hang Glider
- implementation fg.deobf("maven.modrinth:puzzles-lib:${puzzleslib_version}")
- implementation fg.deobf("maven.modrinth:hang-glider:${hangglider_version}")
+ modImplementation "maven.modrinth:puzzles-lib:${puzzleslib_version}"
+ modImplementation "maven.modrinth:hang-glider:${hangglider_version}"
// Wan's ancient beasts
- implementation fg.deobf("curse.maven:wans-ancient-beasts-1108604:7552366")
- implementation fg.deobf("curse.maven:geckolib-388172:7553267")
+ modImplementation "curse.maven:wans-ancient-beasts-1108604:7552366"
+ modImplementation "curse.maven:geckolib-388172:7553267"
// Immersive Aircraft
- implementation fg.deobf("curse.maven:immersive-aircraft-666014:6742170")
+ modImplementation "curse.maven:immersive-aircraft-666014:6742170"
//Create Liquid Fuel
- implementation fg.deobf("curse.maven:create-liquid-fuel-840734:5217310")
+ modImplementation "curse.maven:create-liquid-fuel-840734:5217310"
//Dea's Fission Vazde
- implementation fg.deobf("curse.maven:deafission-1354541:7258440")
+ modImplementation "curse.maven:deafission-1354541:7633771"
//Create Picky Waterwheels
- implementation fg.deobf("curse.maven:create-picky-waterwheels-866839:6932328")
+ modImplementation "curse.maven:create-picky-waterwheels-866839:6932328"
//Panda's Falling Trees
- implementation fg.deobf("curse.maven:pandas-falling-trees-880630:5653236")
- implementation fg.deobf("curse.maven:pandalib-975460:5653131")
+ modImplementation "curse.maven:pandas-falling-trees-880630:5653236"
+ modImplementation "curse.maven:pandalib-975460:5653131"
// ArborFirmaCraft
- implementation fg.deobf("curse.maven:arborfirmacraft-877545:7200580")
+ modImplementation "curse.maven:arborfirmacraft-877545:7200580"
// TFC Improved Badlands
- implementation fg.deobf("curse.maven:tfc-improved-badlands-969207:5126426")
+ modImplementation "curse.maven:tfc-improved-badlands-969207:5126426"
+
+ // TFC Water Flasks
+ modImplementation "curse.maven:water-flasks-354353:7056478"
+ // Sacks and such
+ modImplementation "curse.maven:sacks-n-such-695822:6965231"
}
diff --git a/gradle/scripts/helpers.gradle b/gradle/scripts/helpers.gradle
deleted file mode 100644
index a3d8f39db..000000000
--- a/gradle/scripts/helpers.gradle
+++ /dev/null
@@ -1,104 +0,0 @@
-import groovy.text.SimpleTemplateEngine
-import org.codehaus.groovy.runtime.MethodClosure
-
-ext.propertyString = this.&propertyString as MethodClosure
-ext.propertyBool = this.&propertyBool as MethodClosure
-ext.propertyStringList = this.&propertyStringList as MethodClosure
-ext.interpolate = this.&interpolate as MethodClosure
-ext.assertProperty = this.&assertProperty as MethodClosure
-ext.assertSubProperties = this.&assertSubProperties as MethodClosure
-ext.setDefaultProperty = this.&setDefaultProperty as MethodClosure
-ext.assertEnvironmentVariable = this.&assertEnvironmentVariable as MethodClosure
-
-String propertyString(String key) {
- return $property(key).toString()
-}
-
-String propertyString(String key, String key2) {
- return propertyString(key) + '-' + propertyString(key2)
-}
-
-boolean propertyBool(String key) {
- return propertyString(key).toBoolean()
-}
-
-Collection- LT: passes when rainfall < value *
- BETWEEN: passes when start < rainfall < end
*/
-public class AverageRainfallCondition extends RecipeCondition {
+public class AverageRainfallCondition extends RecipeCondition - LT: passes when temperature < value
* - BETWEEN: passes when start < temperature < end
*/
-public class AverageTemperatureCondition extends RecipeCondition {
+public class AverageTemperatureCondition extends RecipeCondition - LT: passes when gravity < value
* - BETWEEN: passes when start < gravity < end
*/
-public class GravityCondition extends RecipeCondition {
+public class GravityCondition extends RecipeCondition - Whitelist months
* - Start/end range. Supports wrap around (example: september-march)
*/
-public class MonthCondition extends RecipeCondition {
+public class MonthCondition extends RecipeCondition - isOxygenated = false: passes when no adjacent block has oxygen.
*
*/
-public class OxygenatedCondition extends RecipeCondition {
+public class OxygenatedCondition extends RecipeCondition - Whitelist months.
* - start/end range. Supports wrap around (example: fall-spring).
*/
-public class SeasonCondition extends RecipeCondition {
+public class SeasonCondition extends RecipeCondition