diff --git a/src/main/java/com/extendedae_plus/config/ModConfig.java b/src/main/java/com/extendedae_plus/config/ModConfig.java index 2a5bd63..413c54b 100644 --- a/src/main/java/com/extendedae_plus/config/ModConfig.java +++ b/src/main/java/com/extendedae_plus/config/ModConfig.java @@ -117,4 +117,12 @@ public final class ModConfig { }; + @Configurable + @Configurable.Comment(value = { + "值越大将减少AE构建合成计划过程中的 wait/notify 次数,提升吞吐但会降低调度响应性" + }) + @Configurable.Synchronized + @Configurable.Range(min = 100, max = Integer.MAX_VALUE) + public int craftingPauseThreshold = 100000; + } \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/CraftingCalculationMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/CraftingCalculationMixin.java new file mode 100644 index 0000000..1936c79 --- /dev/null +++ b/src/main/java/com/extendedae_plus/mixin/ae2/CraftingCalculationMixin.java @@ -0,0 +1,21 @@ +package com.extendedae_plus.mixin.ae2; + +import appeng.crafting.CraftingCalculation; +import com.extendedae_plus.config.ModConfig; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +/** + * Mixin 用于增加 CraftingCalculation.handlePausing() 中 incTime 的阈值。 + * 调整 CRAFTING_PAUSE_THRESHOLD 可以控制计算让出控制权的频率。 + */ +@Mixin(value = CraftingCalculation.class, remap = false) +public abstract class CraftingCalculationMixin { + // 可调节的阈值:在执行 pause 检查前 handlePausing 被调用的次数。 + // 增大此值可以减少 wait/notify 的频率(提升吞吐量但降低响应速度)。 + @ModifyConstant(method = "handlePausing", constant = @Constant(intValue = 100)) + private int modifyIncTimeThreshold(int original) { + return ModConfig.INSTANCE.craftingPauseThreshold; + } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/lang/en_us.json b/src/main/resources/assets/extendedae_plus/lang/en_us.json index fb6c9f3..230dade 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -81,5 +81,6 @@ "config.extendedae_plus.option.smartScalingMinBenefitFactor": "Smart Scaling Min Benefit Factor", "config.extendedae_plus.option.entityTickerCost": "Entity Ticker Base Energy Cost", "config.extendedae_plus.option.entityTickerBlackList": "Entity Ticker Blacklist", - "config.extendedae_plus.option.entityTickerMultipliers": "Entity Ticker Extra Consumption Multipliers" + "config.extendedae_plus.option.entityTickerMultipliers": "Entity Ticker Extra Consumption Multipliers", + "config.extendedae_plus.option.craftingPauseThreshold": "AE synthesis calculation pause check threshold" } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json index 0347d13..dd25863 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -81,5 +81,6 @@ "config.extendedae_plus.option.smartScalingMinBenefitFactor": "智能倍增最小收益因子", "config.extendedae_plus.option.entityTickerCost": "实体加速器能量消耗基础值", "config.extendedae_plus.option.entityTickerBlackList": "实体加速器黑名单", - "config.extendedae_plus.option.entityTickerMultipliers": "实体加速器额外消耗倍率" + "config.extendedae_plus.option.entityTickerMultipliers": "实体加速器额外消耗倍率", + "config.extendedae_plus.option.craftingPauseThreshold": "AE合成计算暂停检查阈值" } \ No newline at end of file