From 7fed1bbd5fd49107796795b7ee9e73a41468b05d Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Apr 2023 23:31:40 +0200 Subject: updated ‚BS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 347 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 316 insertions(+), 31 deletions(-) diff --git a/build.gradle b/build.gradle index 9027fe62de..055dcee435 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1675624371 +//version: 1680120787 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -9,13 +9,18 @@ import com.diffplug.blowdryer.Blowdryer import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import com.gtnewhorizons.retrofuturagradle.ObfuscationAttribute import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar +import com.gtnewhorizons.retrofuturagradle.minecraft.RunMinecraftTask import com.matthewprenger.cursegradle.CurseArtifact import com.matthewprenger.cursegradle.CurseRelation import com.modrinth.minotaur.dependencies.ModDependency import com.modrinth.minotaur.dependencies.VersionDependency +import cpw.mods.fml.relauncher.Side +import org.gradle.api.tasks.options.Option; import org.gradle.internal.logging.text.StyledTextOutput.Style import org.gradle.internal.logging.text.StyledTextOutputFactory +import org.gradle.internal.xml.XmlTransformer import org.jetbrains.gradle.ext.* import java.nio.file.Files @@ -23,10 +28,10 @@ import java.nio.file.Paths import java.util.concurrent.TimeUnit import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream +import javax.inject.Inject buildscript { repositories { - mavenLocal() mavenCentral() maven { @@ -47,6 +52,8 @@ buildscript { name 'Scala CI dependencies' url 'https://repo1.maven.org/maven2/' } + + mavenLocal() } } plugins { @@ -58,7 +65,7 @@ plugins { id 'org.jetbrains.kotlin.jvm' version '1.8.0' apply false id 'org.jetbrains.kotlin.kapt' version '1.8.0' apply false id 'com.google.devtools.ksp' version '1.8.0-1.0.9' apply false - id 'org.ajoberstar.grgit' version '4.1.1' // 4.1.1 is the last jvm8 supporting version ,unused, available for addon.gradle + id 'org.ajoberstar.grgit' version '4.1.1' // 4.1.1 is the last jvm8 supporting version, unused, available for addon.gradle id 'com.github.johnrengelman.shadow' version '7.1.2' apply false id 'com.palantir.git-version' version '0.13.0' apply false // 0.13.0 is the last jvm8 supporting version id 'de.undercouch.download' version '5.3.0' @@ -66,7 +73,7 @@ plugins { id 'com.diffplug.spotless' version '6.7.2' apply false id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id 'com.gtnewhorizons.retrofuturagradle' version '1.1.4' + id 'com.gtnewhorizons.retrofuturagradle' version '1.2.4' } boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated @@ -122,6 +129,9 @@ propertyDefaultIfUnset("gradleTokenGroupName", "") propertyDefaultIfUnset("enableModernJavaSyntax", false) // On by default for new projects only propertyDefaultIfUnset("enableGenericInjection", false) // On by default for new projects only +// this is meant to be set using the user wide property file. by default we do nothing. +propertyDefaultIfUnset("ideaOverrideBuildType", "") // Can be nothing, "gradle" or "idea" + project.extensions.add(Blowdryer, "Blowdryer", Blowdryer) // Make blowdryer available in "apply from:" scripts if (!disableSpotless) { apply plugin: 'com.diffplug.spotless' @@ -143,13 +153,21 @@ java { } else { languageVersion.set(projectJavaVersion) } - vendor.set(JvmVendorSpec.ADOPTIUM) + vendor.set(JvmVendorSpec.AZUL) } if (!noPublishedSources) { withSourcesJar() } } +tasks.withType(JavaCompile).configureEach { + options.encoding = "UTF-8" +} + +tasks.withType(ScalaCompile).configureEach { + options.encoding = "UTF-8" +} + pluginManager.withPlugin('org.jetbrains.kotlin.jvm') { // If Kotlin is enabled in the project kotlin { @@ -186,11 +204,21 @@ configurations { } if (enableModernJavaSyntax.toBoolean()) { + repositories { + mavenCentral { + mavenContent { + includeGroup("me.eigenraven.java8unsupported") + } + } + } + dependencies { annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0' compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') { transitive = false // We only care about the 1 annotation class } + // Allow using jdk.unsupported classes like sun.misc.Unsafe in the compiled code, working around JDK-8206937. + patchedMinecraft('me.eigenraven.java8unsupported:java-8-unsupported-shim:1.0.0') } tasks.withType(JavaCompile).configureEach { @@ -202,7 +230,7 @@ if (enableModernJavaSyntax.toBoolean()) { javaCompiler.set(javaToolchains.compilerFor { languageVersion.set(JavaLanguageVersion.of(17)) - vendor.set(JvmVendorSpec.ADOPTIUM) + vendor.set(JvmVendorSpec.AZUL) }) } } @@ -234,12 +262,14 @@ if (apiPackage) { } if (accessTransformersFile) { - String targetFile = "src/main/resources/META-INF/" + accessTransformersFile - if (!getFile(targetFile).exists()) { - throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) + for (atFile in accessTransformersFile.split(",")) { + String targetFile = "src/main/resources/META-INF/" + atFile.trim() + if (!getFile(targetFile).exists()) { + throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) + } + tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) + tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) } - tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) - tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) } else { boolean atsFound = false for (File at : sourceSets.getByName("main").resources.files) { @@ -367,12 +397,14 @@ minecraft { injectMissingGenerics.set(true) } + username = developmentEnvironmentUserName.toString() + + lwjgl3Version = "3.3.2-SNAPSHOT" + // Enable assertions in the current mod extraRunJvmArguments.add("-ea:${modGroup}") if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - extraTweakClasses.add("org.spongepowered.asm.launch.MixinTweaker") - if (usesMixinDebug.toBoolean()) { extraRunJvmArguments.addAll([ "-Dmixin.debug.countInjections=true", @@ -401,6 +433,16 @@ configurations.configureEach { } } } + def obfuscationAttr = it.attributes.getAttribute(ObfuscationAttribute.OBFUSCATION_ATTRIBUTE) + if (obfuscationAttr != null && obfuscationAttr.name == ObfuscationAttribute.SRG) { + resolutionStrategy.eachDependency { DependencyResolveDetails details -> + // Remap CoFH core cursemaven dev jar to the obfuscated version for runObfClient/Server + if (details.requested.group == 'curse.maven' && details.requested.name.endsWith('-69162') && details.requested.version == '2388751') { + details.useVersion '2388750' + details.because 'Pick obfuscated jar' + } + } + } } // Ensure tests have access to minecraft classes @@ -430,8 +472,9 @@ repositories.configureEach { repo -> apply from: 'repositories.gradle' configurations { + runtimeClasspath.extendsFrom(runtimeOnlyNonPublishable) + testRuntimeClasspath.extendsFrom(runtimeOnlyNonPublishable) for (config in [compileClasspath, runtimeClasspath, testCompileClasspath, testRuntimeClasspath]) { - config.extendsFrom(runtimeOnlyNonPublishable) if (usesShadowedDependencies.toBoolean()) { config.extendsFrom(shadowImplementation) // TODO: remove Compile after all uses are refactored to Implementation @@ -476,12 +519,11 @@ repositories { url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" allowInsecureProtocol = true } - if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - if (usesMixinDebug.toBoolean()) { - maven { - name = "Fabric Maven" - url = "https://maven.fabricmc.net/" - } + maven { + name 'sonatype' + url 'https://oss.sonatype.org/content/repositories/snapshots/' + content { + includeGroup "org.lwjgl" } } if (includeWellKnownRepositories.toBoolean()) { @@ -515,29 +557,49 @@ repositories { } } +def mixinProviderGroup = "io.github.legacymoddingmc" +def mixinProviderModule = "unimixins" +def mixinProviderVersion = "0.1.6" +def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule}:${mixinProviderVersion}" +def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev" + dependencies { if (usesMixins.toBoolean()) { annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') annotationProcessor('com.google.guava:guava:24.1.1-jre') annotationProcessor('com.google.code.gson:gson:2.8.6') - annotationProcessor('com.gtnewhorizon:gtnhmixins:2.1.12:processor') + annotationProcessor(mixinProviderSpec) if (usesMixinDebug.toBoolean()) { runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16') } } - if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - implementation('com.gtnewhorizon:gtnhmixins:2.1.12') + if (usesMixins.toBoolean()) { + implementation(mixinProviderSpec) + } else if (forceEnableMixins.toBoolean()) { + runtimeOnlyNonPublishable(mixinProviderSpec) } } pluginManager.withPlugin('org.jetbrains.kotlin.kapt') { if (usesMixins.toBoolean()) { dependencies { - kapt('com.gtnewhorizon:gtnhmixins:2.1.12:processor') + kapt(mixinProviderSpec) } } } +// Replace old mixin mods with unimixins +// https://docs.gradle.org/8.0.2/userguide/resolution_rules.html#sec:substitution_with_classifier +configurations.all { + resolutionStrategy.dependencySubstitution { + substitute module('com.gtnewhorizon:gtnhmixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('com.github.GTNewHorizons:Mixingasm') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('com.github.GTNewHorizons:SpongePoweredMixin') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('com.github.GTNewHorizons:SpongeMixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('io.github.legacymoddingmc:unimixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Our previous unimixins upload was missing the dev classifier") + } +} + apply from: 'dependencies.gradle' def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' @@ -637,6 +699,142 @@ tasks.named("processResources", ProcessResources).configure { } } +ext.java17Toolchain = (JavaToolchainSpec spec) -> { + spec.languageVersion.set(JavaLanguageVersion.of(17)) + spec.vendor.set(JvmVendorSpec.matching("jetbrains")) +} + +ext.java17DependenciesCfg = configurations.create("java17Dependencies") { + extendsFrom(configurations.getByName("runtimeClasspath")) // Ensure consistent transitive dependency resolution + canBeConsumed = false +} +ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies") { + canBeConsumed = false +} + +dependencies { + def lwjgl3ifyVersion = '1.3.3' + def asmVersion = '9.4' + if (modId != 'lwjgl3ify') { + java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") + } + if (modId != 'hodgepodge') { + java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.4') + } + + java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false} + java17PatchDependencies("org.ow2.asm:asm:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-commons:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-tree:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-analysis:${asmVersion}") + java17PatchDependencies("org.ow2.asm:asm-util:${asmVersion}") + java17PatchDependencies('org.ow2.asm:asm-deprecated:7.1') + java17PatchDependencies("org.apache.commons:commons-lang3:3.12.0") + java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false} +} + +ext.java17JvmArgs = [ + // Java 9+ support + "--illegal-access=warn", + "-Djava.security.manager=allow", + "-Dfile.encoding=UTF-8", + "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED", + "--add-opens", "java.base/java.net=ALL-UNNAMED", + "--add-opens", "java.base/java.nio=ALL-UNNAMED", + "--add-opens", "java.base/java.io=ALL-UNNAMED", + "--add-opens", "java.base/java.lang=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens", "java.base/java.text=ALL-UNNAMED", + "--add-opens", "java.base/java.util=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.reflect=ALL-UNNAMED", + "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens", "jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED,java.naming", + "--add-opens", "java.desktop/sun.awt.image=ALL-UNNAMED", + "--add-modules", "jdk.dynalink", + "--add-opens", "jdk.dynalink/jdk.dynalink.beans=ALL-UNNAMED", + "--add-modules", "java.sql.rowset", + "--add-opens", "java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED" +] + +ext.hotswapJvmArgs = [ + // DCEVM advanced hot reload + "-XX:+AllowEnhancedClassRedefinition", + "-XX:HotswapAgent=fatjar" +] + +ext.setupHotswapAgentTask = tasks.register("setupHotswapAgent") { + group = "GTNH Buildscript" + description = "Installs a recent version of HotSwapAgent into the Java 17 JetBrains runtime directory" + def hsaUrl = 'https://github.com/HotswapProjects/HotswapAgent/releases/download/1.4.2-SNAPSHOT/hotswap-agent-1.4.2-SNAPSHOT.jar' + def targetFolderProvider = javaToolchains.launcherFor(java17Toolchain).map {it.metadata.installationPath.dir("lib/hotswap")} + def targetFilename = "hotswap-agent.jar" + onlyIf { + !targetFolderProvider.get().file(targetFilename).asFile.exists() + } + doLast { + def targetFolder = targetFolderProvider.get() + targetFolder.asFile.mkdirs() + download.run { + src hsaUrl + dest targetFolder.file(targetFilename).asFile + overwrite false + tempAndMove true + } + } +} + +public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask { + // IntelliJ doesn't seem to allow commandline arguments so we also support an env variable + private boolean enableHotswap = Boolean.valueOf(System.getenv("HOTSWAP")); + + @Input + public boolean getEnableHotswap() { return enableHotswap } + @Option(option = "hotswap", description = "Enables HotSwapAgent for enhanced class reloading under a debugger") + public boolean setEnableHotswap(boolean enable) { enableHotswap = enable } + + @Inject + public RunHotswappableMinecraftTask(Side side, String superTask, org.gradle.api.invocation.Gradle gradle) { + super(side, gradle) + + this.lwjglVersion = 3 + this.javaLauncher = project.javaToolchains.launcherFor(project.java17Toolchain) + this.extraJvmArgs.addAll(project.java17JvmArgs) + this.extraJvmArgs.addAll(project.provider(() -> enableHotswap ? project.hotswapJvmArgs : [])) + + this.classpath(project.java17PatchDependenciesCfg) + if (side == Side.CLIENT) { + this.classpath(project.minecraftTasks.lwjgl3Configuration) + } + // Use a raw provider instead of map to not create a dependency on the task + this.classpath(project.provider(() -> project.tasks.named(superTask, RunMinecraftTask).get().classpath)) + this.classpath.filter { file -> + !file.path.contains("2.9.4-nightly-20150209") // Remove lwjgl2 + } + this.classpath(project.java17DependenciesCfg) + } +} + +def runClient17Task = tasks.register("runClient17", RunHotswappableMinecraftTask, Side.CLIENT, "runClient") +runClient17Task.configure { + setup(project) + group = "Modded Minecraft" + description = "Runs the modded client using Java 17, lwjgl3ify and Hodgepodge" + dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') + mainClass = "GradleStart" + username = minecraft.username + userUUID = minecraft.userUUID +} + +def runServer17Task = tasks.register("runServer17", RunHotswappableMinecraftTask, Side.SERVER, "runServer") +runServer17Task.configure { + setup(project) + group = "Modded Minecraft" + description = "Runs the modded server using Java 17, lwjgl3ify and Hodgepodge" + dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') + mainClass = "GradleStartServer" + extraArgs.add("nogui") +} + def getManifestAttributes() { def manifestAttributes = [:] if (!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) { @@ -671,7 +869,7 @@ if (usesShadowedDependencies.toBoolean()) { tasks.register('relocateShadowJar', ConfigureShadowRelocation) { target = tasks.shadowJar prefix = modGroup + ".shadow" - enabled = minimizeShadowedDependencies.toBoolean() + enabled = relocateShadowedDependencies.toBoolean() } tasks.named("shadowJar", ShadowJar).configure { manifest { @@ -687,7 +885,7 @@ if (usesShadowedDependencies.toBoolean()) { project.configurations.shadeCompile ] archiveClassifier.set('dev') - if (minimizeShadowedDependencies.toBoolean()) { + if (relocateShadowedDependencies.toBoolean()) { dependsOn(relocateShadowJar) } } @@ -706,7 +904,7 @@ if (usesShadowedDependencies.toBoolean()) { javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) { skip() } - for (runTask in ["runClient", "runServer"]) { + for (runTask in ["runClient", "runServer", "runClient17", "runServer17"]) { tasks.named(runTask).configure { dependsOn("shadowJar") } @@ -748,6 +946,19 @@ idea { } project { settings { + if (ideaOverrideBuildType != "") { + delegateActions { + if ("gradle".equalsIgnoreCase(ideaOverrideBuildType)) { + delegateBuildRunToGradle = true + testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.GRADLE + } else if ("idea".equalsIgnoreCase(ideaOverrideBuildType)) { + delegateBuildRunToGradle = false + testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM + } else { + throw GradleScriptException('Accepted value for ideaOverrideBuildType is one of gradle or idea.') + } + } + } runConfigurations { "1. Run Client"(Gradle) { taskNames = ["runClient"] @@ -755,6 +966,20 @@ idea { "2. Run Server"(Gradle) { taskNames = ["runServer"] } + "1a. Run Client (Java 17)"(Gradle) { + taskNames = ["runClient17"] + } + "2a. Run Server (Java 17)"(Gradle) { + taskNames = ["runServer17"] + } + "1b. Run Client (Java 17, Hotswap)"(Gradle) { + taskNames = ["runClient17"] + envs = ["HOTSWAP": "true"] + } + "2b. Run Server (Java 17, Hotswap)"(Gradle) { + taskNames = ["runServer17"] + envs = ["HOTSWAP": "true"] + } "3. Run Obfuscated Client"(Gradle) { taskNames = ["runObfClient"] } @@ -772,7 +997,7 @@ idea { } "Run Client (IJ Native)"(Application) { mainClass = "GradleStart" - moduleName = project.name + ".main" + moduleName = project.name + ".ideVirtualMain" afterEvaluate { workingDirectory = tasks.runClient.workingDir.absolutePath programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ') @@ -783,7 +1008,7 @@ idea { } "Run Server (IJ Native)"(Application) { mainClass = "GradleStartServer" - moduleName = project.name + ".main" + moduleName = project.name + ".ideVirtualMain" afterEvaluate { workingDirectory = tasks.runServer.workingDir.absolutePath programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ') @@ -795,11 +1020,57 @@ idea { } compiler.javac { afterEvaluate { + javacAdditionalOptions = "-encoding utf8" moduleJavacAdditionalOptions = [ (project.name + ".main"): tasks.compileJava.options.compilerArgs.collect { '"' + it + '"' }.join(' ') ] } } + withIDEADir { File ideaDir -> + if (!ideaDir.path.contains(".idea")) { + // If an .ipr file exists, the project root directory is passed here instead of the .idea subdirectory + ideaDir = new File(ideaDir, ".idea") + } + if (ideaDir.isDirectory()) { + def miscFile = new File(ideaDir, "misc.xml") + if (miscFile.isFile()) { + boolean dirty = false + def miscTransformer = new XmlTransformer() + miscTransformer.addAction { root -> + Node rootNode = root.asNode() + def rootManager = rootNode + .component.find { it.@name == 'ProjectRootManager' } + if (!rootManager) { + rootManager = rootNode.appendNode('component', ['name': 'ProjectRootManager', 'version': '2']) + dirty = true + } + def output = rootManager.output + if (!output) { + output = rootManager.appendNode('output') + dirty = true + } + if (!output.@url) { + // Only modify the output url if it doesn't yet have one, or if the existing one is blank somehow. + // This is a sensible default for most setups + output.@url = 'file://$PROJECT_DIR$/build/ideaBuild' + dirty = true + } + } + def result = miscTransformer.transform(miscFile.text) + if (dirty) { + miscFile.write(result) + } + } else { + miscFile.text = """ + + + + + +""" + } + } + } } } } @@ -869,7 +1140,7 @@ if (modrinthProjectId.size() != 0 && System.getenv("MODRINTH_TOKEN") != null) { } } if (usesMixins.toBoolean()) { - addModrinthDep("required", "project", "gtnhmixins") + addModrinthDep("required", "project", "unimixins") } tasks.modrinth.dependsOn(build) tasks.publish.dependsOn(tasks.modrinth) @@ -913,7 +1184,7 @@ if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null } } if (usesMixins.toBoolean()) { - addCurseForgeRelation("requiredDependency", "gtnhmixins") + addCurseForgeRelation("requiredDependency", "unimixins") } tasks.curseforge.dependsOn(build) tasks.publish.dependsOn(tasks.curseforge) @@ -947,10 +1218,21 @@ def addCurseForgeRelation(String type, String name) { } // Updating + +def buildscriptGradleVersion = "8.0.2" + +tasks.named('wrapper', Wrapper).configure { + gradleVersion = buildscriptGradleVersion +} + tasks.register('updateBuildScript') { group = 'GTNH Buildscript' description = 'Updates the build script to the latest version' + if (gradle.gradleVersion != buildscriptGradleVersion && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_GRADLE_UPDATE')) { + dependsOn('wrapper') + } + doLast { if (performBuildScriptUpdate()) return @@ -963,6 +1245,9 @@ if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISA performBuildScriptUpdate() } else { out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'") + if (gradle.gradleVersion != buildscriptGradleVersion) { + out.style(Style.SuccessHeader).println("updateBuildScript can update gradle from ${gradle.gradleVersion} to ${buildscriptGradleVersion}\n") + } } } -- cgit From 084f93f588a47390e2cb947f2f41baa703037003 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Apr 2023 23:35:08 +0200 Subject: update GT and its addons --- dependencies.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 5da2f08d65..84a337aa6e 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,10 +1,10 @@ // Add your dependencies here dependencies { - compile 'com.github.GTNewHorizons:GT5-Unofficial:5.09.42.09:dev' - compile 'com.github.GTNewHorizons:TecTech:5.0.89:dev' - compile 'com.github.GTNewHorizons:bartworks:0.5.151:dev' - compile 'com.github.GTNewHorizons:StructureLib:1.2.1:dev' + compile 'com.github.GTNewHorizons:GT5-Unofficial:5.09.42.52:dev' + compile 'com.github.GTNewHorizons:TecTech:5.1.7:dev' + compile 'com.github.GTNewHorizons:bartworks:0.6.9:dev' + compile 'com.github.GTNewHorizons:StructureLib:1.2.6:dev' compile 'com.github.GTNewHorizons:ThaumicTinkerer:2.6.11:dev' compile 'thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev' -- cgit From 7915f7dd0bc9b698b2c8b3ceb244da590c2cada2 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Apr 2023 23:40:26 +0200 Subject: remove commented out code --- src/main/java/client/ClientProxy.java | 2 -- src/main/java/common/Blocks.java | 3 --- src/main/java/common/TileEntities.java | 7 ------- 3 files changed, 12 deletions(-) diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index 1423e34963..18def75a9e 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -27,7 +27,5 @@ public class ClientProxy extends CommonProxy { @Override public void init(final FMLInitializationEvent e) { super.init(e); - // Register Simple Block Renderers - // RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); } } diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 16485925c2..3368550140 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -42,11 +42,8 @@ public class Blocks { registerBlocks_SOFC(); registerBlocks_TFFT(); - // registerBlocks_Nuclear(); - // registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); - // registerBlocks_SpaceElevator(); registerBlocks_Cosmetics(); KekzCore.LOGGER.info("Finished registering blocks"); diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 455bde0e63..0fa62067e9 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -19,25 +19,18 @@ public class TileEntities { public static GTMTE_TFFTHatch tfftHatch; public static void preInit() { - // GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); - // GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); - // GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); GameRegistry.registerTileEntity(TE_ThaumiumReinforcedVoidJar.class, "kekztech_thaumiumreinforcedvoidjar"); GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); GameRegistry.registerTileEntity(TE_IchorVoidJar.class, "kekztech_ichorvoidjar"); - // GameRegistry.registerTileEntity(TE_SpaceElevatorCapacitor.class, "kekztech_secapacitor"); - // GameRegistry.registerTileEntity(TE_BeamTransmitter.class, "kekztech_beamtransmitter"); } public static void init() { // Multiblock controllers sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); - // mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); tfft = new GTMTE_TFFT(13104, "multimachine.tfft", "T.F.F.T"); lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); - // se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); // Singleblocks tfftHatch = new GTMTE_TFFTHatch(13109, "machine.tffthatch", "T.F.F.T Multi I/O Hatch"); -- cgit From d8e797f90a95cbd048bb19f11c9dc87e74e7cc7d Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Apr 2023 23:41:26 +0200 Subject: Superconductor -> SuperconductorUHV --- src/main/java/common/Recipes.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 44eb36e642..e75bfc362b 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -661,10 +661,10 @@ public class Recipes { new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32L), - new Object[] { OrePrefixes.circuit.get(Materials.Superconductor), 1 }, - new Object[] { OrePrefixes.circuit.get(Materials.Superconductor), 1 }, - new Object[] { OrePrefixes.circuit.get(Materials.Superconductor), 1 }, - new Object[] { OrePrefixes.circuit.get(Materials.Superconductor), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 1 }, ItemList.Energy_Module.get(8L), ItemList.Field_Generator_ZPM.get(2), ItemList.Circuit_Wafer_HPIC.get(64), ItemList.Circuit_Wafer_HPIC.get(64), ItemList.Circuit_Parts_DiodeASMD.get(16), -- cgit From 87b56c997aa7ee27b15466efa2c096e403905c31 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Apr 2023 23:46:02 +0200 Subject: modifier changes --- src/main/java/common/blocks/Block_ItemProxyCable.java | 2 +- src/main/java/common/blocks/Block_ReactorChamber_OFF.java | 2 +- src/main/java/common/blocks/Block_ReactorChamber_ON.java | 2 +- src/main/java/common/blocks/Block_YSZUnit.java | 2 +- src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java | 8 ++++---- .../java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 8 ++++---- src/main/java/common/tileentities/TE_BeamTransmitter.java | 2 +- src/main/java/common/tileentities/TE_ItemProxySource.java | 2 +- src/main/java/util/Vector3ic.java | 6 +++--- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/common/blocks/Block_ItemProxyCable.java b/src/main/java/common/blocks/Block_ItemProxyCable.java index e693117d9b..bd8511d41e 100644 --- a/src/main/java/common/blocks/Block_ItemProxyCable.java +++ b/src/main/java/common/blocks/Block_ItemProxyCable.java @@ -19,7 +19,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class Block_ItemProxyCable extends Block { - private static Block_ItemProxyCable instance = new Block_ItemProxyCable(); + private static final Block_ItemProxyCable instance = new Block_ItemProxyCable(); private Block_ItemProxyCable() { super(Material.glass); diff --git a/src/main/java/common/blocks/Block_ReactorChamber_OFF.java b/src/main/java/common/blocks/Block_ReactorChamber_OFF.java index 4e3cd89318..937483eec2 100644 --- a/src/main/java/common/blocks/Block_ReactorChamber_OFF.java +++ b/src/main/java/common/blocks/Block_ReactorChamber_OFF.java @@ -10,7 +10,7 @@ import cpw.mods.fml.common.registry.GameRegistry; public class Block_ReactorChamber_OFF extends BaseGTUpdateableBlock { - private static Block_ReactorChamber_OFF instance = new Block_ReactorChamber_OFF(); + private static final Block_ReactorChamber_OFF instance = new Block_ReactorChamber_OFF(); private Block_ReactorChamber_OFF() { super(Material.iron); diff --git a/src/main/java/common/blocks/Block_ReactorChamber_ON.java b/src/main/java/common/blocks/Block_ReactorChamber_ON.java index bbdd4179c5..a140c1f1d7 100644 --- a/src/main/java/common/blocks/Block_ReactorChamber_ON.java +++ b/src/main/java/common/blocks/Block_ReactorChamber_ON.java @@ -10,7 +10,7 @@ import cpw.mods.fml.common.registry.GameRegistry; public class Block_ReactorChamber_ON extends BaseGTUpdateableBlock { - private static Block_ReactorChamber_ON instance = new Block_ReactorChamber_ON(); + private static final Block_ReactorChamber_ON instance = new Block_ReactorChamber_ON(); private Block_ReactorChamber_ON() { super(Material.iron); diff --git a/src/main/java/common/blocks/Block_YSZUnit.java b/src/main/java/common/blocks/Block_YSZUnit.java index a02bda9fb3..b94c9c53d7 100644 --- a/src/main/java/common/blocks/Block_YSZUnit.java +++ b/src/main/java/common/blocks/Block_YSZUnit.java @@ -10,7 +10,7 @@ import cpw.mods.fml.common.registry.GameRegistry; public class Block_YSZUnit extends BaseGTUpdateableBlock { - private static Block_YSZUnit instance = new Block_YSZUnit(); + private static final Block_YSZUnit instance = new Block_YSZUnit(); private Block_YSZUnit() { super(Material.iron); diff --git a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java index 37f597b5ae..1b074241de 100644 --- a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java +++ b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java @@ -43,28 +43,28 @@ public class IB_LapotronicEnergyUnit extends ItemBlock { public static BigInteger LSC_wireless_eu_cap = BigInteger.valueOf(60 * pow(10, 12)); // 10 Billion EU/t - private static BigInteger UHV_cap_eu_per_tick = LSC_wireless_eu_cap + private static final BigInteger UHV_cap_eu_per_tick = LSC_wireless_eu_cap .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks)); // 6 Quadrillion EU. public static BigInteger UEV_wireless_eu_cap = BigInteger.valueOf(100 * 60 * pow(10, 12)); // 1 Trillion EU/t - private static BigInteger UEV_cap_eu_per_tick = UEV_wireless_eu_cap + private static final BigInteger UEV_cap_eu_per_tick = UEV_wireless_eu_cap .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks)); // 600 Quadrillion EU. public static BigInteger UIV_wireless_eu_cap = BigInteger.valueOf(60 * pow(10, 16)); // 100 Trillion EU/t - private static BigInteger UIV_cap_eu_per_tick = UIV_wireless_eu_cap + private static final BigInteger UIV_cap_eu_per_tick = UIV_wireless_eu_cap .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks)); // 60 Quintillion EU. public static BigInteger UMV_wireless_eu_cap = UIV_wireless_eu_cap.multiply(BigInteger.valueOf(100)); // 10 Quadrillion EU/t - private static BigInteger UMV_cap_eu_per_tick = UMV_wireless_eu_cap + private static final BigInteger UMV_cap_eu_per_tick = UMV_wireless_eu_cap .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks)); public static long EV_cap_storage = 60_000_000L; diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 7568bbb659..9aec3fc95e 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -84,10 +84,10 @@ public class GTMTE_LapotronicSuperCapacitor private final Queue energyInputValues = new LinkedList<>(); private final Queue energyOutputValues = new LinkedList<>(); - private long max_passive_drain_eu_per_tick_per_uhv_cap = 1_000_000; - private long max_passive_drain_eu_per_tick_per_uev_cap = 100_000_000; - private long max_passive_drain_eu_per_tick_per_uiv_cap = (long) Math.pow(10, 10); - private long max_passive_drain_eu_per_tick_per_umv_cap = (long) Math.pow(10, 12); + private final long max_passive_drain_eu_per_tick_per_uhv_cap = 1_000_000; + private final long max_passive_drain_eu_per_tick_per_uev_cap = 100_000_000; + private final long max_passive_drain_eu_per_tick_per_uiv_cap = (long) Math.pow(10, 10); + private final long max_passive_drain_eu_per_tick_per_umv_cap = (long) Math.pow(10, 12); private enum Capacitor { diff --git a/src/main/java/common/tileentities/TE_BeamTransmitter.java b/src/main/java/common/tileentities/TE_BeamTransmitter.java index 1d6915ade2..e8999e393f 100644 --- a/src/main/java/common/tileentities/TE_BeamTransmitter.java +++ b/src/main/java/common/tileentities/TE_BeamTransmitter.java @@ -13,7 +13,7 @@ public class TE_BeamTransmitter extends TileEntity { private final Vector3ic position; - private Vector3ic target = new Vector3i(10, 20, 10); + private final Vector3ic target = new Vector3i(10, 20, 10); private double distanceCache; private boolean distanceCacheValid = false; diff --git a/src/main/java/common/tileentities/TE_ItemProxySource.java b/src/main/java/common/tileentities/TE_ItemProxySource.java index 78c338b920..31403f5352 100644 --- a/src/main/java/common/tileentities/TE_ItemProxySource.java +++ b/src/main/java/common/tileentities/TE_ItemProxySource.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; public class TE_ItemProxySource extends TileEntity implements IInventory { - private ItemStack[] slots = new ItemStack[16]; + private final ItemStack[] slots = new ItemStack[16]; private String idCache = null; /** diff --git a/src/main/java/util/Vector3ic.java b/src/main/java/util/Vector3ic.java index ea9a429d6f..296c4f0268 100644 --- a/src/main/java/util/Vector3ic.java +++ b/src/main/java/util/Vector3ic.java @@ -2,9 +2,9 @@ package util; public interface Vector3ic { - public int x(); + int x(); - public int y(); + int y(); - public int z(); + int z(); } -- cgit From 2aead0588d5e10d88320e8d3cd54a6302bcd84a7 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Apr 2023 23:50:49 +0200 Subject: clean up comments in Blocks.java --- src/main/java/common/Blocks.java | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 3368550140..5fdafdc9e2 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -7,30 +7,15 @@ import net.minecraft.block.Block; import common.blocks.*; public class Blocks { - public static Block yszUnit; public static Block gdcUnit; - public static Block tfftStorageField; - public static Block reactorChamberOFF; public static Block reactorChamberON; public static Block reactorControlRod; - - public static Block itemServerDrive; - public static Block itemServerRackCasing; - public static Block itemServerIOPort; - - public static Block itemProxyCable; - public static Block itemProxySource; - public static Block itemProxyEndpoint; - public static Block jarThaumiumReinforced; public static Block jarIchor; - public static Block lscLapotronicEnergyUnit; - public static Block beamTransmitter; - public static Block spaceElevatorStructure; public static Block spaceElevatorCapacitor; public static Block spaceElevatorTether; @@ -58,14 +43,6 @@ public class Blocks { tfftStorageField = Block_TFFTStorageField.registerBlock(); } - /* - * private static void registerBlocks_Nuclear() { reactorChamberOFF = Block_ReactorChamber_OFF.registerBlock(); - * reactorChamberON = Block_ReactorChamber_ON.registerBlock(); reactorControlRod = Block_ControlRod.registerBlock(); - * } private static void registerBlocks_ItemProxy() { itemProxyCable = Block_ItemProxyCable.registerBlock(); - * itemProxySource = Block_ItemProxySource.registerBlock(); itemProxyEndpoint = - * Block_ItemProxyEndpoint.registerBlock(); } - */ - private static void registerBlocks_Jars() { jarThaumiumReinforced = Block_ThaumiumReinforcedJar.registerBlock(); jarIchor = Block_IchorJar.registerBlock(); @@ -73,15 +50,8 @@ public class Blocks { private static void registerBlocks_LSC() { lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock(); - // beamTransmitter = Block_BeamTransmitter.registerBlock(); } - /* - * private static void registerBlocks_SpaceElevator() { spaceElevatorStructure = - * Block_SpaceElevator.registerBlock(); spaceElevatorCapacitor = Block_SpaceElevatorCapacitor.registerBlock(); - * spaceElevatorTether = Block_SpaceElevatorTether.registerBlock(); } - */ - private static void registerBlocks_Cosmetics() { largeHexPlate = Block_LargeHexPlate.registerBlock(); } -- cgit From f808e93c436034ba7eca3889087304b142728b76 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Tue, 11 Apr 2023 00:15:06 +0200 Subject: split recipes in their own files --- src/main/java/common/Recipes.java | 832 +-------------------- .../java/common/recipeLoaders/AlloySmelter.java | 25 + src/main/java/common/recipeLoaders/Assembler.java | 263 +++++++ .../java/common/recipeLoaders/AssemblyLine.java | 213 ++++++ .../java/common/recipeLoaders/ChemicalReactor.java | 25 + src/main/java/common/recipeLoaders/Crafting.java | 72 ++ .../java/common/recipeLoaders/FormingPress.java | 21 + src/main/java/common/recipeLoaders/Mixer.java | 43 ++ .../recipeLoaders/ResearchableAssemblyLine.java | 106 +++ src/main/java/common/recipeLoaders/Unpackager.java | 141 ++++ 10 files changed, 928 insertions(+), 813 deletions(-) create mode 100644 src/main/java/common/recipeLoaders/AlloySmelter.java create mode 100644 src/main/java/common/recipeLoaders/Assembler.java create mode 100644 src/main/java/common/recipeLoaders/AssemblyLine.java create mode 100644 src/main/java/common/recipeLoaders/ChemicalReactor.java create mode 100644 src/main/java/common/recipeLoaders/Crafting.java create mode 100644 src/main/java/common/recipeLoaders/FormingPress.java create mode 100644 src/main/java/common/recipeLoaders/Mixer.java create mode 100644 src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java create mode 100644 src/main/java/common/recipeLoaders/Unpackager.java diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index e75bfc362b..dd426daa0a 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -2,459 +2,51 @@ package common; import java.util.HashMap; -import kekztech.Items; +import common.recipeLoaders.AlloySmelter; +import common.recipeLoaders.Assembler; +import common.recipeLoaders.AssemblyLine; +import common.recipeLoaders.ChemicalReactor; +import common.recipeLoaders.Crafting; +import common.recipeLoaders.FormingPress; +import common.recipeLoaders.Mixer; +import common.recipeLoaders.ResearchableAssemblyLine; +import common.recipeLoaders.Unpackager; import kekztech.KekzCore; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; import thaumcraft.api.ItemApi; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.crafting.InfusionRecipe; -import util.Util; - -import com.github.bartimaeusnek.bartworks.system.material.GT_Enhancement.LuVTierEnhancer; -import com.github.bartimaeusnek.bartworks.util.BW_Util; -import com.github.technus.tectech.recipe.TT_recipeAdder; -import common.items.ErrorItem; -import common.items.MetaItem_CraftingComponent; - -import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.*; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; public class Recipes { public static final HashMap infusionRecipes = new HashMap<>(); - static Fluid solderIndalloy = FluidRegistry.getFluid("molten.indalloy140") != null - ? FluidRegistry.getFluid("molten.indalloy140") - : FluidRegistry.getFluid("molten.solderingalloy"); - static Fluid solderUEV = FluidRegistry.getFluid("molten.mutatedlivingsolder") != null - ? FluidRegistry.getFluid("molten.mutatedlivingsolder") - : FluidRegistry.getFluid("molten.solderingalloy"); - - static Fluid radoxPoly = FluidRegistry.getFluid("molten.radoxpoly") != null - ? FluidRegistry.getFluid("molten.radoxpoly") - : FluidRegistry.getFluid("molten.polybenzimidazole"); public static void postInit() { KekzCore.LOGGER.info("Registering recipes..."); - registerRecipes_TFFT(); - registerRecipes_SOFC(); - // registerRecipes_Nuclear(); + new AlloySmelter().run(); + new Assembler().run(); + new AssemblyLine().run(); + new ChemicalReactor().run(); + new Crafting().run(); + new FormingPress().run(); + new Mixer().run(); + new ResearchableAssemblyLine().run(); + new Unpackager().run(); + registerRecipes_Jars(); - registerRecipes_LSC(); - // registerRecipes_SpaceElevator(); - registerRecipes_Cosmetics(); KekzCore.LOGGER.info("Finished registering recipes"); } - private static void registerRecipes_TFFT() { - - // TFFT Controller - GT_ModHandler.addCraftingRecipe( - TileEntities.tfft.getStackForm(1), - new Object[] { "ESE", "FTF", "CVC", 'E', - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.EnderEye, 1), 'S', - ItemList.Cover_Screen.get(1), 'F', ItemList.Field_Generator_LV.get(1), 'T', - new ItemStack(Blocks.tfftStorageField, 1), 'C', "circuitData", 'V', - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VibrantAlloy, 1), }); - - // TFFT Casing - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DarkSteel, 3), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3), }, - Materials.Polytetrafluoroethylene.getMolten(144), - new ItemStack(Blocks.tfftStorageField, 1), - 100, - BW_Util.getMachineVoltageFromTier(3)); - - // TFFT Multi Hatch - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { ItemList.Hull_HV.get(1), ItemList.Cover_FluidStorageMonitor.get(1), - ItemList.Field_Generator_LV.get(4), - GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polytetrafluoroethylene, 25) }, - Materials.Plastic.getMolten(432), - TileEntities.tfftHatch.getStackForm(1), - 400, - BW_Util.getMachineVoltageFromTier(3)); - - // TFFTStorageField1 - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Steel, 3), - ItemList.FluidRegulator_LV.get(1) }, - Materials.Glass.getMolten(144), - new ItemStack(Blocks.tfftStorageField, 1, 1), - 100, - BW_Util.getMachineVoltageFromTier(3)); - - // TFFTStorageField2 - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(6), ItemList.Casing_Tank_1.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Plastic, 3), - ItemList.FluidRegulator_MV.get(1) }, - Materials.Plastic.getMolten(288), - new ItemStack(Blocks.tfftStorageField, 1, 2), - 200, - BW_Util.getMachineVoltageFromTier(3)); - - // TFFTStorageField3 - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(6), ItemList.Casing_Tank_3.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.StainlessSteel, 3), - ItemList.Field_Generator_LV.get(1), ItemList.FluidRegulator_HV.get(1) }, - Materials.Plastic.getMolten(432), - new ItemStack(Blocks.tfftStorageField, 1, 3), - 400, - BW_Util.getMachineVoltageFromTier(3)); - - // TFFTStorageField4 - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(6), ItemList.Casing_Tank_5.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Polytetrafluoroethylene, 3), - ItemList.Field_Generator_MV.get(2), ItemList.FluidRegulator_EV.get(1) }, - Materials.Epoxid.getMolten(864), - new ItemStack(Blocks.tfftStorageField, 1, 4), - 400, - BW_Util.getMachineVoltageFromTier(4)); - - // TFFTStorageField5 - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.getIntegratedCircuit(6), ItemList.Casing_Tank_7.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Enderium, 3), - ItemList.Field_Generator_HV.get(4), ItemList.FluidRegulator_IV.get(1) }, - Materials.Epoxid.getMolten(1152), - new ItemStack(Blocks.tfftStorageField, 1, 5), - 400, - BW_Util.getMachineVoltageFromTier(5)); - - // TFFTStorageField6 - GT_Values.RA.addAssemblylineRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 5), - 40000, - new ItemStack[] { ItemList.Casing_Tank_7.get(4), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Naquadah, 3), - GT_ModHandler.getModItem("dreamcraft", "item.ChromeBars", 6), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Quantium, 6), - ItemList.Field_Generator_EV.get(8), ItemList.FluidRegulator_LuV.get(1), - GT_ModHandler.getModItem("dreamcraft", "item.EngineeringProcessorFluidEmeraldCore", 4) }, - new FluidStack[] { Materials.Enderium.getMolten(1440), Materials.Polybenzimidazole.getMolten(1584) }, - new ItemStack(Blocks.tfftStorageField, 1, 6), - 600, - BW_Util.getMachineVoltageFromTier(6)); - - // TFFTStorageField7 - GT_Values.RA.addAssemblylineRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 6), - 80000, - new ItemStack[] { ItemList.Casing_Tank_10.get(16), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.NetherStar, 3), - GT_ModHandler.getModItem("dreamcraft", "item.OsmiumBars", 6), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.MysteriousCrystal, 6), - ItemList.Field_Generator_IV.get(16), ItemList.Field_Generator_LuV.get(4), - ItemList.FluidRegulator_UV.get(1), - GT_ModHandler.getModItem("dreamcraft", "item.EngineeringProcessorFluidEmeraldCore", 16) }, - new FluidStack[] { Materials.CrystallineAlloy.getMolten(2880), - Materials.Polybenzimidazole.getMolten(2016) }, - new ItemStack(Blocks.tfftStorageField, 1, 7), - 600, - BW_Util.getMachineVoltageFromTier(8)); - - // TFFTStorageField8 - GT_Values.RA.addAssemblylineRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 7), - 120000, - new ItemStack[] { ItemList.Quantum_Tank_IV.get(1), - GT_ModHandler.getModItem("Avaritia", "Neutronium_Compressor", 1), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.DraconiumAwakened, 3), - GT_ModHandler.getModItem("dreamcraft", "item.NeutroniumBars", 6), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.InfinityCatalyst, 6), - ItemList.Field_Generator_ZPM.get(16), ItemList.Field_Generator_UV.get(4), - GT_ModHandler.getModItem("GoodGenerator", "huiCircuit", 4, 2), - GT_ModHandler - .getModItem("universalsingularities", "universal.tinkersConstruct.singularity", 1, 4) }, - new FluidStack[] { Materials.CrystallinePinkSlime.getMolten(4320), new FluidStack(radoxPoly, 2880) }, - new ItemStack(Blocks.tfftStorageField, 1, 8), - 600, - BW_Util.getMachineVoltageFromTier(10)); - - // TFFTStorageField9 - GT_Values.RA.addAssemblylineRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 8), - 160000, - new ItemStack[] { ItemList.Quantum_Tank_IV.get(4), - GT_ModHandler.getModItem("Avaritia", "Neutronium_Compressor", 2), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TranscendentMetal, 6), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TranscendentMetal, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Infinity, 3), - ItemList.EnergisedTesseract.get(1), - GT_ModHandler.getModItem("miscutils", "itemRotorHypogen", 6), - ItemList.Field_Generator_UHV.get(16), ItemList.Field_Generator_UEV.get(4), - GT_ModHandler.getModItem("GoodGenerator", "huiCircuit", 4, 3), - GT_ModHandler - .getModItem("universalsingularities", "universal.tinkersConstruct.singularity", 1, 4) }, - new FluidStack[] { Materials.MelodicAlloy.getMolten(5760), new FluidStack(radoxPoly, 3456) }, - new ItemStack(Blocks.tfftStorageField, 1, 9), - 600, - BW_Util.getMachineVoltageFromTier(12)); - - // TFFTStorageField10 - GT_Values.RA.addAssemblylineRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 9), - 200000, - new ItemStack[] { ItemList.Quantum_Tank_IV.get(16), - GT_ModHandler.getModItem("Avaritia", "Neutronium_Compressor", 4), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 6), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 6), - GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.SpaceTime, 3), - ItemList.EnergisedTesseract.get(6), - GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.SpaceTime, 6), - ItemList.Field_Generator_UEV.get(16), ItemList.Field_Generator_UIV.get(4), - GT_ModHandler.getModItem("GoodGenerator", "huiCircuit", 4, 4), - GT_ModHandler.getModItem("GoodGenerator", "huiCircuit", 4, 4), - GT_ModHandler.getModItem("EnderIO", "itemBasicCapacitor", 64, 6), - GT_ModHandler.getModItem("eternalsingularity", "eternal_singularity", 1) }, - new FluidStack[] { Materials.StellarAlloy.getMolten(7200), new FluidStack(radoxPoly, 4608) }, - new ItemStack(Blocks.tfftStorageField, 1, 10), - 600, - BW_Util.getMachineVoltageFromTier(13)); - - // Recycling - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 1), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 2), - ItemList.Casing_Tank_1.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 3), - ItemList.Casing_Tank_3.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 4), - ItemList.Casing_Tank_5.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 5), - ItemList.Casing_Tank_7.get(1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 6), - ItemList.Casing_Tank_7.get(4), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 7), - ItemList.Casing_Tank_10.get(16), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 8), - ItemList.Quantum_Tank_IV.get(1), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 12), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 9), - ItemList.Quantum_Tank_IV.get(4), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.TranscendentMetal, 12), - 100, - BW_Util.getMachineVoltageFromTier(3)); - GT_Values.RA.addUnboxingRecipe( - new ItemStack(Blocks.tfftStorageField, 1, 10), - ItemList.Quantum_Tank_IV.get(16), - GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.SpaceTime, 12), - 100, - BW_Util.getMachineVoltageFromTier(3)); - } - - private static void registerRecipes_SOFC() { - - final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance(); - - // Controller - final Object[] mk1_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.Advanced), 'P', - ItemList.Electric_Pump_HV.get(1L), 'H', ItemList.Hull_HV.get(1L), 'F', - GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.StainlessSteel, 1), 'B', - GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1), 'L', - GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1) }; - GT_ModHandler.a