diff options
| author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2023-07-25 21:33:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-25 21:33:20 +0200 |
| commit | e5a1d22513b4fa6d839275bfe2b203876c19f1f5 (patch) | |
| tree | e918bebdc565455926640d12b1953fb3fb858eef | |
| parent | 37b8006aeffd3fb7e5759122abec23cec552f188 (diff) | |
| download | GT5-Unofficial-e5a1d22513b4fa6d839275bfe2b203876c19f1f5.tar.gz GT5-Unofficial-e5a1d22513b4fa6d839275bfe2b203876c19f1f5.tar.bz2 GT5-Unofficial-e5a1d22513b4fa6d839275bfe2b203876c19f1f5.zip | |
Fix no output from Mega Apiary + some misc. changes (#90)
* Update dependencies.gradle
* Update build.gradle
* Update .gitignore
* Create addon.gradle
* Fix no output from Mega Apiary
* Use checkProcessing instead of checkRecipe
* Migrate Tea Line to RA2
* Update build script
| -rw-r--r-- | .gitignore | 7 | ||||
| -rw-r--r-- | addon.gradle | 5 | ||||
| -rw-r--r-- | build.gradle | 186 | ||||
| -rw-r--r-- | dependencies.gradle | 22 | ||||
| -rw-r--r-- | gradle/wrapper/gradle-wrapper.jar | bin | 61608 -> 62076 bytes | |||
| -rw-r--r-- | gradle/wrapper/gradle-wrapper.properties | 2 | ||||
| -rwxr-xr-x | gradlew | 7 | ||||
| -rw-r--r-- | src/main/java/kubatech/loaders/RecipeLoader.java | 199 | ||||
| -rw-r--r-- | src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java | 31 | ||||
| -rw-r--r-- | src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java | 21 | ||||
| -rw-r--r-- | src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_MegaIndustrialApiary.java | 39 |
11 files changed, 333 insertions, 186 deletions
diff --git a/.gitignore b/.gitignore index 42addef891..5f5fc93742 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,9 @@ whitelist.json src/main/resources/mixins.*([!.]).json *.bat *.DS_Store -!gradlew.bat
\ No newline at end of file +!gradlew.bat +.factorypath +addon.local.gradle +addon.local.gradle.kts +addon.late.local.gradle +addon.late.local.gradle.kts diff --git a/addon.gradle b/addon.gradle new file mode 100644 index 0000000000..49206f7f85 --- /dev/null +++ b/addon.gradle @@ -0,0 +1,5 @@ +tasks.named("jar", Jar).configure { + manifest { + attributes("Main-class": "kubatech.standalone") + } +} diff --git a/build.gradle b/build.gradle index f56a438f84..1aaadcce85 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1685785062 +//version: 1690104383 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -69,7 +69,7 @@ plugins { id 'com.diffplug.spotless' version '6.13.0' apply false // 6.13.0 is the last jvm8 supporting version id 'com.modrinth.minotaur' version '2.+' apply false id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id 'com.gtnewhorizons.retrofuturagradle' version '1.3.14' + id 'com.gtnewhorizons.retrofuturagradle' version '1.3.21' } print("You might want to check out './gradlew :faq' if your build fails.\n") @@ -115,6 +115,8 @@ propertyDefaultIfUnset("usesMixinDebug", project.usesMixins) propertyDefaultIfUnset("forceEnableMixins", false) propertyDefaultIfUnset("channel", "stable") propertyDefaultIfUnset("mappingsVersion", "12") +propertyDefaultIfUnset("usesMavenPublishing", true) +propertyDefaultIfUnset("mavenPublishUrl", "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases") propertyDefaultIfUnset("modrinthProjectId", "") propertyDefaultIfUnset("modrinthRelations", "") propertyDefaultIfUnset("curseForgeProjectId", "") @@ -357,7 +359,27 @@ catch (Exception ignored) { String identifiedVersion String versionOverride = System.getenv("VERSION") ?: null try { - identifiedVersion = versionOverride == null ? gitVersion() : versionOverride + // Produce a version based on the tag, or for branches something like 0.2.2-configurable-maven-and-extras.38+43090270b6-dirty + if (versionOverride == null) { + def gitDetails = versionDetails() + def isDirty = gitVersion().endsWith(".dirty") // No public API for this, isCleanTag has a different meaning + String branchName = gitDetails.branchName ?: (System.getenv('GIT_BRANCH') ?: 'git') + if (branchName.startsWith('origin/')) { + branchName = branchName.minus('origin/') + } + branchName = branchName.replaceAll("[^a-zA-Z0-9-]+", "-") // sanitize branch names for semver + identifiedVersion = gitDetails.lastTag ?: '${gitDetails.gitHash}' + if (gitDetails.commitDistance > 0) { + identifiedVersion += "-${branchName}.${gitDetails.commitDistance}+${gitDetails.gitHash}" + if (isDirty) { + identifiedVersion += "-dirty" + } + } else if (isDirty) { + identifiedVersion += "-${branchName}+${gitDetails.gitHash}-dirty" + } + } else { + identifiedVersion = versionOverride + } } catch (Exception ignored) { out.style(Style.Failure).text( @@ -465,10 +487,19 @@ sourceSets { } } -if (file('addon.gradle').exists()) { +if (file('addon.gradle.kts').exists()) { + apply from: 'addon.gradle.kts' +} else if (file('addon.gradle').exists()) { apply from: 'addon.gradle' } +// File for local tweaks not commited to Git +if (file('addon.local.gradle.kts').exists()) { + apply from: 'addon.local.gradle.kts' +} else if (file('addon.local.gradle').exists()) { + apply from: 'addon.local.gradle' +} + // Allow unsafe repos but warn repositories.configureEach { repo -> if (repo instanceof org.gradle.api.artifacts.repositories.UrlArtifactRepository) { @@ -479,7 +510,14 @@ repositories.configureEach { repo -> } } -apply from: 'repositories.gradle' +if (file('repositories.gradle.kts').exists()) { + apply from: 'repositories.gradle.kts' +} else if (file('repositories.gradle').exists()) { + apply from: 'repositories.gradle' +} else { + logger.error("Neither repositories.gradle.kts nor repositories.gradle was found, make sure you extracted the full ExampleMod template.") + throw new RuntimeException("Missing repositories.gradle[.kts]") +} configurations { runtimeClasspath.extendsFrom(runtimeOnlyNonPublishable) @@ -537,13 +575,28 @@ repositories { } } if (includeWellKnownRepositories.toBoolean()) { - maven { - name "CurseMaven" - url "https://cursemaven.com" - content { + exclusiveContent { + forRepository { + maven { + name "CurseMaven" + url "https://cursemaven.com" + } + } + filter { includeGroup "curse.maven" } } + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = "https://api.modrinth.com/maven" + } + } + filter { + includeGroup "maven.modrinth" + } + } maven { name = "ic2" url = "https://maven.ic2.player.to/" @@ -585,7 +638,7 @@ dependencies { } } if (usesMixins.toBoolean()) { - implementation(mixinProviderSpec) + implementation(modUtils.enableMixins(mixinProviderSpec)) } else if (forceEnableMixins.toBoolean()) { runtimeOnlyNonPublishable(mixinProviderSpec) } @@ -611,12 +664,34 @@ configurations.all { } } -apply from: 'dependencies.gradle' +dependencies { + constraints { + def minGtnhLibVersion = "0.0.13" + implementation("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + runtimeOnly("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + devOnlyNonPublishable("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + } +} + +if (file('dependencies.gradle.kts').exists()) { + apply from: 'dependencies.gradle.kts' +} else if (file('dependencies.gradle').exists()) { + apply from: 'dependencies.gradle' +} else { + logger.error("Neither dependencies.gradle.kts nor dependencies.gradle was found, make sure you extracted the full ExampleMod template.") + throw new RuntimeException("Missing dependencies.gradle[.kts]") +} def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' -def mixinTmpDir = buildDir.path + File.separator + 'tmp' + File.separator + 'mixins' -def refMap = "${mixinTmpDir}" + File.separator + mixingConfigRefMap -def mixinSrg = "${mixinTmpDir}" + File.separator + "mixins.srg" tasks.register('generateAssets') { group = "GTNH Buildscript" @@ -648,46 +723,17 @@ tasks.register('generateAssets') { } if (usesMixins.toBoolean()) { - tasks.named("reobfJar", ReobfuscatedJar).configure { - extraSrgFiles.from(mixinSrg) - } - tasks.named("processResources").configure { dependsOn("generateAssets") } tasks.named("compileJava", JavaCompile).configure { - doFirst { - new File(mixinTmpDir).mkdirs() - } options.compilerArgs += [ - "-AreobfSrgFile=${tasks.reobfJar.srg.get().asFile}", - "-AoutSrgFile=${mixinSrg}", - "-AoutRefMapFile=${refMap}", // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code "-XDenableSunApiLintControl", "-XDignore.symbol.file" ] } - - pluginManager.withPlugin('org.jetbrains.kotlin.kapt') { - kapt { - correctErrorTypes = true - javacOptions { - option("-AreobfSrgFile=${tasks.reobfJar.srg.get().asFile}") - option("-AoutSrgFile=$mixinSrg") - option("-AoutRefMapFile=$refMap") - } - } - tasks.configureEach { task -> - if (task.name == "kaptKotlin") { - task.doFirst { - new File(mixinTmpDir).mkdirs() - } - } - } - } - } tasks.named("processResources", ProcessResources).configure { @@ -705,7 +751,6 @@ tasks.named("processResources", ProcessResources).configure { } if (usesMixins.toBoolean()) { - from refMap dependsOn("compileJava", "compileScala") } } @@ -724,13 +769,13 @@ ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies" } dependencies { - def lwjgl3ifyVersion = '1.3.5' + def lwjgl3ifyVersion = '1.4.0' def asmVersion = '9.4' if (modId != 'lwjgl3ify') { java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") } if (modId != 'hodgepodge') { - java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.13') + java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.19') } java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false} @@ -879,7 +924,6 @@ def getManifestAttributes() { "ForceLoadAsMod": !containsMixinsAndOrCoreModOnly.toBoolean() ] } - manifestAttributes += ["Main-class": "kubatech.standalone"] return manifestAttributes } @@ -980,6 +1024,9 @@ idea { } } runConfigurations { + "0. Build and Test"(Gradle) { + taskNames = ["build"] + } "1. Run Client"(Gradle) { taskNames = ["runClient"] } @@ -1099,6 +1146,11 @@ tasks.named("processIdeaSettings").configure { dependsOn("injectTags") } +tasks.named("ideVirtualMainClasses").configure { + // Make IntelliJ "Build project" build the mod jars + dependsOn("jar", "reobfJar", "spotlessCheck") +} + // workaround variable hiding in pom processing def projectConfigs = project.configurations @@ -1119,12 +1171,14 @@ publishing { } repositories { - maven { - url = "http://jenkins.usrv.eu:8081/nexus/content/repositories/releases" - allowInsecureProtocol = true - credentials { - username = System.getenv("MAVEN_USER") ?: "NONE" - password = System.getenv("MAVEN_PASSWORD") ?: "NONE" + if (usesMavenPublishing.toBoolean()) { + maven { + url = mavenPublishUrl + allowInsecureProtocol = mavenPublishUrl.startsWith("http://") // Mostly for the GTNH maven + credentials { + username = System.getenv("MAVEN_USER") ?: "NONE" + password = System.getenv("MAVEN_PASSWORD") ?: "NONE" + } } } } @@ -1239,7 +1293,7 @@ def addCurseForgeRelation(String type, String name) { // Updating -def buildscriptGradleVersion = "8.1.1" +def buildscriptGradleVersion = "8.2.1" tasks.named('wrapper', Wrapper).configure { gradleVersion = buildscriptGradleVersion @@ -1345,8 +1399,14 @@ boolean isNewBuildScriptVersionAvailable() { String currentBuildScript = getFile("build.gradle").getText() String currentBuildScriptHash = getVersionHash(currentBuildScript) - String availableBuildScript = availableBuildScriptUrl().newInputStream(parameters).getText() - String availableBuildScriptHash = getVersionHash(availableBuildScript) + String availableBuildScriptHash + try { + String availableBuildScript = availableBuildScriptUrl().newInputStream(parameters).getText() + availableBuildScriptHash = getVersionHash(availableBuildScript) + } catch (IOException e) { + logger.warn("Could not check for buildscript update availability: {}", e.message) + return false + } boolean isUpToDate = currentBuildScriptHash.empty || availableBuildScriptHash.empty || currentBuildScriptHash == availableBuildScriptHash return !isUpToDate @@ -1511,3 +1571,17 @@ def getSecondaryArtifacts() { if (apiPackage) secondaryArtifacts += [apiJar] return secondaryArtifacts } + +// For easier scripting of things that require variables defined earlier in the buildscript +if (file('addon.late.gradle.kts').exists()) { + apply from: 'addon.late.gradle.kts' +} else if (file('addon.late.gradle').exists()) { + apply from: 'addon.late.gradle' +} + +// File for local tweaks not commited to Git +if (file('addon.late.local.gradle.kts').exists()) { + apply from: 'addon.late.local.gradle.kts' +} else if (file('addon.late.local.gradle').exists()) { + apply from: 'addon.late.local.gradle' +} diff --git a/dependencies.gradle b/dependencies.gradle index 9af57107ca..d2f25dcaa0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -35,17 +35,17 @@ */ dependencies { - api('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.123:dev') + api('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.140:dev') api("com.github.GTNewHorizons:EnderCore:0.2.16:dev") api("com.github.GTNewHorizons:EnderIO:2.4.21:dev") - api("com.github.GTNewHorizons:ForestryMC:4.6.10:dev") - api("com.github.GTNewHorizons:ModularUI:1.1.14:dev") - api("com.github.GTNewHorizons:Mobs-Info:0.0.6-GTNH:dev") + api("com.github.GTNewHorizons:ForestryMC:4.6.13:dev") + api("com.github.GTNewHorizons:ModularUI:1.1.15:dev") + api("com.github.GTNewHorizons:Mobs-Info:0.0.7-GTNH:dev") devOnlyNonPublishable("com.github.GTNewHorizons:Infernal-Mobs:1.7.9-GTNH:dev") //compileOnly("curse.maven:extrautilities-225561:2264384") { // transitive = false //} - compileOnly("com.github.GTNewHorizons:GTplusplus:1.9.56:dev") + compileOnly("com.github.GTNewHorizons:GTplusplus:1.9.62:dev") { transitive = false } @@ -61,11 +61,11 @@ dependencies { { transitive = false } - compileOnly("com.github.GTNewHorizons:bartworks:0.7.27:dev") + compileOnly("com.github.GTNewHorizons:bartworks:0.7.32:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.81:dev") + compileOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.87:dev") { transitive = false } @@ -84,13 +84,13 @@ dependencies { // For testing //runtimeOnly("com.github.GTNewHorizons:BetterLoadingScreen:1.4.2-GTNH:dev") - //runtimeOnly("com.github.GTNewHorizons:GTplusplus:1.9.56:dev") + //runtimeOnly("com.github.GTNewHorizons:GTplusplus:1.9.62:dev") //runtimeOnly("com.github.GTNewHorizons:harvestcraft:1.1.0-GTNH:dev") - //runtimeOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.81:dev") + //runtimeOnly("com.github.GTNewHorizons:NewHorizonsCoreMod:2.1.87:dev") //runtimeOnly("com.github.GTNewHorizons:OpenBlocks:1.7.0-GTNH:dev") - //runtimeOnly("com.github.GTNewHorizons:bartworks:0.7.27:dev") + //runtimeOnly("com.github.GTNewHorizons:bartworks:0.7.32:dev") //runtimeOnly("com.github.GTNewHorizons:CraftTweaker:3.2.13:dev") - //api("com.github.GTNewHorizons:SpecialMobs:3.4.1:dev") + //api("com.github.GTNewHorizons:SpecialMobs:3.4.3:dev") //api("com.github.GTNewHorizons:twilightforest:2.4.3:dev") //api("com.github.GTNewHorizons:EnderZoo:1.0.23:dev") //runtimeOnly("com.github.GTNewHorizons:Draconic-Evolution:1.1.19-GTNH:dev") diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differindex ccebba7710..c1962a79e2 100644 --- a/gradle/wrapper/gradle-wrapper.jar +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d3f0..17a8ddce2d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists @@ -85,9 +85,6 @@ done APP_BASE_NAME=${0##*/} APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit -# 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"' - # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then done 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 diff --git a/src/main/java/kubatech/loaders/RecipeLoader.java b/src/main/java/kubatech/loaders/RecipeLoader.java index eccab9fd7b..c98002348c 100644 --- a/src/main/java/kubatech/loaders/RecipeLoader.java +++ b/src/main/java/kubatech/loaders/RecipeLoader.java @@ -20,6 +20,16 @@ package kubatech.loaders; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCutterRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.MINUTES; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.AssemblyLine; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM; +import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; import static kubatech.api.enums.ItemList.BlackTea; import static kubatech.api.enums.ItemList.BlackTeaLeaf; import static kubatech.api.enums.ItemList.BruisedTeaLeaf; @@ -56,7 +66,6 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -108,22 +117,26 @@ public class RecipeLoader { "multimachine.extremeapiary", "Industrial Apicultural Acclimatiser and Drone Domestication Station", LoaderReference.Forestry)) { - GT_Values.RA.addAssemblylineRecipe( - gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(1), - 10000, - new Object[] { gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(64L), + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(1)) + .metadata(RESEARCH_TIME, 8 * MINUTES + 20 * SECONDS) + .itemInputs( + gregtech.api.enums.ItemList.Machine_IndustrialApiary.get(64L), gregtech.api.enums.ItemList.IndustrialApiary_Upgrade_Acceleration_8_Upgraded.get(64L), gregtech.api.enums.ItemList.IndustrialApiary_Upgrade_STABILIZER.get(64L), gregtech.api.enums.ItemList.Robot_Arm_UV.get(16L), new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, - new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, }, - new FluidStack[] { FluidRegistry.getFluidStack("molten.indalloy140", 28800), - FluidRegistry.getFluidStack("for.honey", 20000) }, - ExtremeIndustrialApiary.get(1), - 6000, - 2_048_000); + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }) + .fluidInputs( + FluidRegistry.getFluidStack("molten.indalloy140", 28800), + FluidRegistry.getFluidStack("for.honey", 20000)) + .noFluidOutputs() + .itemOutputs(ExtremeIndustrialApiary.get(1)) + .eut(2_048_000) + .duration(5 * MINUTES) + .addTo(AssemblyLine); } if (registerMTEUsingID( 12_792, @@ -216,13 +229,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { TeaLeafDehydrated.get(1) }, - new FluidStack[] { FluidRegistry.getFluidStack("water", 50) }, - new ItemStack[] { SteamedTeaLeaf.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(TeaLeafDehydrated.get(1)) + .itemOutputs(SteamedTeaLeaf.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("water", 50)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); CORE.RA.addDehydratorRecipe( new ItemStack[] { SteamedTeaLeaf.get(1) }, null, @@ -231,7 +245,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addBenderRecipe(TeaLeafDehydrated.get(1), RolledTeaLeaf.get(1), 100, 32); + GT_Values.RA.stdBuilder() + .itemInputs(TeaLeafDehydrated.get(1)) + .itemOutputs(RolledTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sBenderRecipes); CORE.RA.addDehydratorRecipe( new ItemStack[] { RolledTeaLeaf.get(1) }, null, @@ -240,12 +261,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addChemicalRecipe( - RolledTeaLeaf.get(1), - GT_Utility.getIntegratedCircuit(1), - OxidizedTeaLeaf.get(1), - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(RolledTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(OxidizedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(UniversalChemical); CORE.RA.addDehydratorRecipe( new ItemStack[] { OxidizedTeaLeaf.get(1) }, null, @@ -254,12 +277,14 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addChemicalRecipe( - RolledTeaLeaf.get(1), - GT_Utility.getIntegratedCircuit(2), - FermentedTeaLeaf.get(1), - 200, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(RolledTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs(FermentedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(10 * SECONDS) + .addTo(UniversalChemical); CORE.RA.addDehydratorRecipe( new ItemStack[] { FermentedTeaLeaf.get(1) }, null, @@ -268,18 +293,22 @@ public class RecipeLoader { null, 100, 32); - GT_Values.RA.addCutterRecipe( - new ItemStack[] { TeaLeafDehydrated.get(1) }, - new ItemStack[] { BruisedTeaLeaf.get(1) }, - 100, - 32, - false); - GT_Values.RA.addChemicalRecipe( - BruisedTeaLeaf.get(1), - GT_Utility.getIntegratedCircuit(1), - PartiallyOxidizedTeaLeaf.get(1), - 50, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(TeaLeafDehydrated.get(1)) + .itemOutputs(BruisedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sCutterRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(BruisedTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(1)) + .itemOutputs(PartiallyOxidizedTeaLeaf.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(2 * SECONDS + 10 * TICKS) + .addTo(UniversalChemical); CORE.RA.addDehydratorRecipe( new ItemStack[] { PartiallyOxidizedTeaLeaf.get(1) }, null, @@ -291,55 +320,63 @@ public class RecipeLoader { // Tea Assembly GameRegistry.addSmelting(BlackTeaLeaf.get(1), BlackTea.get(1), 10); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { BlackTea.get(1), GameRegistry.findItemStack("harvestcraft", "limejuiceItem", 1) }, - null, - new ItemStack[] { EarlGrayTea.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(BlackTea.get(1), GameRegistry.findItemStack("harvestcraft", "limejuiceItem", 1)) + .itemOutputs(EarlGrayTea.get(1)) + .noFluidInputs() + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); GameRegistry.addSmelting(GreenTeaLeaf.get(1), GreenTea.get(1), 10); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { BlackTea.get(1) }, - new FluidStack[] { FluidRegistry.getFluidStack("potion.lemonjuice", 1000) }, - new ItemStack[] { LemonTea.get(1) }, - null, - 100, - 32); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { BlackTea.get(1) }, - new FluidStack[] { FluidRegistry.getFluidStack("milk", 1000) }, - new ItemStack[] { MilkTea.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(BlackTea.get(1)) + .itemOutputs(LemonTea.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("potion.lemonjuice", 1000)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(BlackTea.get(1)) + .itemOutputs(MilkTea.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("milk", 1000)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); GameRegistry.addSmelting(OolongTeaLeaf.get(1), OolongTea.get(1), 10); - GT_Values.RA.addMixerRecipe( - new ItemStack[] { GameRegistry.findItemStack("harvestcraft", "peppermintItem", 1) }, - new FluidStack[] { FluidRegistry.getFluidStack("water", 1000) }, - new ItemStack[] { PeppermintTea.get(1) }, - null, - 100, - 32); + GT_Values.RA.stdBuilder() + .itemInputs(GameRegistry.findItemStack("harvestcraft", "peppermintItem", 1)) + .itemOutputs(PeppermintTea.get(1)) + .fluidInputs(FluidRegistry.getFluidStack("water", 1000)) + .noFluidOutputs() + .eut(32) + .duration(5 * SECONDS) + .addTo(sMixerRecipes); GameRegistry.addSmelting(PuerhTeaLeaf.get(1), PuerhTea.get(1), 10); GameRegistry.addSmelting(WhiteTeaLeaf.get(1), WhiteTea.get(1), 10); GameRegistry.addSmelting(YellowTeaLeaf.get(1), YellowTea.get(1), 10); } if (LoaderReference.Avaritia && LoaderReference.GTNHCoreMod) { - GT_Values.RA.addAssemblylineRecipe( - TeaAcceptorResearchNote.get(1), - 10000, - new Object[] { LegendaryUltimateTea.get(0), + GT_Values.RA.stdBuilder() + .metadata(RESEARCH_ITEM, TeaAcceptorResearchNote.get(1)) + .metadata(RESEARCH_TIME, 8 * MINUTES + 20 * SECONDS) + .itemInputs( + LegendaryUltimateTea.get(0), GameRegistry.findItemStack("Avaritia", "Neutronium_Compressor", 1), - gregtech.api.enums.ItemList.Quantum_Tank_EV.get(1), CustomItemList.FluidExtractorUHV.get(10), + gregtech.api.enums.ItemList.Quantum_Tank_EV.get(1), + CustomItemList.FluidExtractorUHV.get(10), new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, - new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }, }, - new FluidStack[] { FluidRegistry.getFluidStack("molten.indalloy140", 28800) }, - TeaAcceptor.get(1), - 6000, - 2_048_000); + new Object[] { OrePrefixes.circuit.get(Materials.SuperconductorUHV), 4L }) + .fluidInputs(FluidRegistry.getFluidStack("molten.indalloy140", 28800)) + .noFluidOutputs() + .itemOutputs(TeaAcceptor.get(1)) + .eut(2_048_000) + .duration(5 * MINUTES) + .addTo(AssemblyLine); } } } diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java index f9251658f2..38a50ee1f9 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java @@ -72,6 +72,8 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import org.jetbrains.annotations.NotNull; + import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass; import com.google.common.collect.Multimap; import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits; @@ -117,6 +119,8 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; @@ -481,35 +485,38 @@ public class GT_MetaTileEntity_ExtremeExterminationChamber private final WeaponCache weaponCache = new WeaponCache(); @Override - public boolean checkRecipe(ItemStack aStack) { - if (getBaseMetaTileEntity().isClientSide()) return false; - if (aStack == null) return false; + @NotNull + public CheckRecipeResult checkProcessing() { + if (getBaseMetaTileEntity().isClientSide()) return CheckRecipeResultRegistry.NO_RECIPE; + ItemStack aStack = mInventory[1]; + if (aStack == null) return CheckRecipeResultRegistry.NO_RECIPE; - if (aStack.getItem() != poweredSpawnerItem) return false; + if (aStack.getItem() != poweredSpawnerItem) return CheckRecipeResultRegistry.NO_RECIPE; - if (aStack.getTagCompound() == null) return false; + if (aStack.getTagCompound() == null) return CheckRecipeResultRegistry.NO_RECIPE; String mobType = aStack.getTagCompound() .getString("mobType"); - if (mobType.isEmpty()) return false; + if (mobType.isEmpty()) return CheckRecipeResultRegistry.NO_RECIPE; if (mobType.equals("Skeleton") && getBaseMetaTileEntity().getWorld().provider instanceof WorldProviderHell && rand.nextInt(5) > 0) mobType = "witherSkeleton"; MobHandlerLoader.MobEECRecipe recipe = MobHandlerLoader.recipeMap.get(mobType); - if (recipe == null) return false; + if (recipe == null) return CheckRecipeResultRegistry.NO_RECIPE; if (!recipe.recipe.isPeacefulAllowed && this.getBaseMetaTileEntity() - .getWorld().difficultySetting == EnumDifficulty.PEACEFUL) return false; + .getWorld().difficultySetting == EnumDifficulty.PEACEFUL) return CheckRecipeResultRegistry.NO_RECIPE; if (isInRitualMode && isRitualValid()) { - if (getMaxInputEu() < recipe.mEUt / 4) return false; + if (getMaxInputEu() < recipe.mEUt / 4) return CheckRecipeResultRegistry.insufficientPower(recipe.mEUt / 4); |
