From 857fadc7ad22b3a42de8ac98fdd749581cd045ec Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Mon, 15 Sep 2025 01:20:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AEAE?= =?UTF-8?q?=E5=90=88=E6=88=90=E6=9A=82=E5=81=9C=E6=A3=80=E6=9F=A5=E9=98=88?= =?UTF-8?q?=E5=80=BC=E4=BB=A5=E9=99=8D=E4=BD=8E=E4=B8=8A=E4=B8=8B=E6=96=87?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E9=A2=91=E7=8E=87=EF=BC=8C=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC=20100000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/extendedae_plus/config/ModConfig.java | 8 +++++++ .../mixin/ae2/CraftingCalculationMixin.java | 21 +++++++++++++++++++ .../assets/extendedae_plus/lang/en_us.json | 3 ++- .../assets/extendedae_plus/lang/zh_cn.json | 3 ++- 4 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/extendedae_plus/mixin/ae2/CraftingCalculationMixin.java 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