diff --git a/dependencies.gradle b/dependencies.gradle index 43fb10e..88d7eaf 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -34,16 +34,17 @@ * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph */ dependencies { - implementation("com.github.GTNewHorizons:CodeChickenCore:1.3.10:dev") - implementation("com.github.GTNewHorizons:GT5-Unofficial:5.09.50.103:dev") - implementation("com.github.GTNewHorizons:GTNHLib:0.5.21:dev") - implementation("com.github.GTNewHorizons:NewHorizonsCoreMod:2.6.88:dev") - implementation("com.github.GTNewHorizons:ForestryMC:4.9.19:dev") { transitive = false } - implementation("com.github.GTNewHorizons:Railcraft:9.15.15:dev") { transitive = false } - implementation("com.github.GTNewHorizons:BuildCraft:7.1.39:dev") { transitive = false } - implementation("com.github.GTNewHorizons:EnderIO:2.8.22:dev") { transitive = false } - implementation("com.github.GTNewHorizons:ProjectRed:4.10.5-GTNH:dev") { transitive = false } - implementation("com.github.GTNewHorizons:TinkersConstruct:1.12.16-GTNH:dev") { transitive = false } + implementation("com.github.GTNewHorizons:CodeChickenCore:1.4.1:dev") + implementation("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.121:dev") + implementation("com.github.GTNewHorizons:GTNHLib:0.6.10:dev") + implementation("com.github.GTNewHorizons:NewHorizonsCoreMod:2.7.92:dev") + implementation("com.github.GTNewHorizons:ForestryMC:4.10.1:dev") { transitive = false } + implementation("com.github.GTNewHorizons:Railcraft:9.16.3:dev") { transitive = false } + implementation("com.github.GTNewHorizons:BuildCraft:7.1.42:dev") { transitive = false } + implementation("com.github.GTNewHorizons:EnderIO:2.9.3:dev") { transitive = false } + implementation("com.github.GTNewHorizons:ProjectRed:4.11.1-GTNH:dev") { transitive = false } + implementation("com.github.GTNewHorizons:TinkersConstruct:1.13.8-GTNH:dev") { transitive = false } implementation("com.github.GTNewHorizons:AppleCore:3.3.4:api") runtimeOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { transitive = false } + runtimeOnly("com.github.GTNewHorizons:BlockRenderer6343:1.3.2:dev") { transitive = false } } diff --git a/gradle.properties b/gradle.properties index 82f0188..903996b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -82,7 +82,7 @@ usesMixins = true separateMixinSourceSet = mixin # Adds some debug arguments like verbose output and class export. -usesMixinDebug = false +usesMixinDebug = true # Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise. mixinPlugin = mixinplugin.MixinPlugin diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 2c35211..a4b76b9 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/src/main/kotlin/cn/elytra/mod/gtnn/inject/MixinLoader.kt b/src/main/kotlin/cn/elytra/mod/gtnn/inject/MixinLoader.kt index b695924..e6e6050 100644 --- a/src/main/kotlin/cn/elytra/mod/gtnn/inject/MixinLoader.kt +++ b/src/main/kotlin/cn/elytra/mod/gtnn/inject/MixinLoader.kt @@ -19,6 +19,7 @@ object MixinLoader { ModLargeEssentiaGeneratorAllowLaser, ModAddCatalyst, ModInfinityMEBus, + ModAdvancedAssemblyLineSubtick, ) private val _loadedMixinModules = mutableListOf() diff --git a/src/main/kotlin/cn/elytra/mod/gtnn/inject/module/ModAdvancedAssemblyLineSubtick.kt b/src/main/kotlin/cn/elytra/mod/gtnn/inject/module/ModAdvancedAssemblyLineSubtick.kt new file mode 100644 index 0000000..99841f0 --- /dev/null +++ b/src/main/kotlin/cn/elytra/mod/gtnn/inject/module/ModAdvancedAssemblyLineSubtick.kt @@ -0,0 +1,19 @@ +package cn.elytra.mod.gtnn.inject.module + +import cn.elytra.mod.gtnn.inject.IMixinModule +import cn.elytra.mod.gtnn.inject.TargetMod +import net.minecraftforge.common.config.Configuration + +object ModAdvancedAssemblyLineSubtick : IMixinModule { + + override var enabled: Boolean = true + override val mixins: Set = setOf("ggfab.AALSubTick_MTEAdvAssLine_Mixin") + + override fun readConfig(config: Configuration) { + enabled = config.getBoolean("enabled", "aal-subtick", enabled, "") + } + + override fun isTargetModsLoaded(loadedMods: List): Boolean { + return TargetMod.GregTech in loadedMods + } +} diff --git a/src/mixin/java/cn/taskeren/gtnn/mixin/ggfab/AALSubTick_MTEAdvAssLine_Mixin.java b/src/mixin/java/cn/taskeren/gtnn/mixin/ggfab/AALSubTick_MTEAdvAssLine_Mixin.java new file mode 100644 index 0000000..8a592fd --- /dev/null +++ b/src/mixin/java/cn/taskeren/gtnn/mixin/ggfab/AALSubTick_MTEAdvAssLine_Mixin.java @@ -0,0 +1,31 @@ +package cn.taskeren.gtnn.mixin.ggfab; + +import com.llamalad7.mixinextras.sugar.Local; +import com.llamalad7.mixinextras.sugar.ref.LocalIntRef; +import ggfab.mte.MTEAdvAssLine; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.util.GTUtility; +import gregtech.api.util.OverclockCalculator; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(value = MTEAdvAssLine.class, remap = false) +public class AALSubTick_MTEAdvAssLine_Mixin { + + @Inject(method = "checkProcessing", at = @At(value = "INVOKE", target = "Lggfab/mte/MTEAdvAssLine;isBatchModeEnabled()Z", ordinal = 0)) + private void nn$setMaxParallel(CallbackInfoReturnable cir, @Local(ordinal = 2) LocalIntRef maxParallelBeforeBatchMode, @Local(ordinal = 1) LocalIntRef maxParallel, @Local(ordinal = 1) OverclockCalculator calculator) { + double tickTimeAfterOC = calculator.calculateDurationUnderOneTick(); + if(tickTimeAfterOC < 1) { + // get the value of updated time + int value = GTUtility.safeInt((long) (maxParallel.get() / tickTimeAfterOC), 0); + + // set both variable to the value, since we are injecting at the isBatchModeEnabled(), + // the maxParallelBeforeBatchMode is already assigned to the maxParallel, so we need to manually update it as well. + maxParallel.set(value); + maxParallelBeforeBatchMode.set(value); + } + } + +}