diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java index c923afa..c63a769 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java @@ -29,7 +29,7 @@ public abstract class CraftingSimulationStateMixin { private static void onBuildCraftingPlan(CraftingSimulationState state, CraftingCalculation calculation, long calculatedAmount, CallbackInfoReturnable cir) { CraftingSimulationStateAccessor accessor = (CraftingSimulationStateAccessor) state; Map crafts = accessor.getCrafts(); - // 新建 Map 存放最终分配后的 crafts + // 存放最终分配后的 crafts Map finalCrafts = new LinkedHashMap<>(); for (Map.Entry entry : crafts.entrySet()) { @@ -64,6 +64,11 @@ public abstract class CraftingSimulationStateMixin { CraftingService craftingService = (CraftingService) ((ICraftingCalculationExt) calculation).getGrid().getCraftingService(); int providerCount = Math.max(Iterables.size(craftingService.getProviders(processingPattern)), 1); + // totalAmount < providerCount → 只激活 totalAmount 台 provider + if (totalAmount < providerCount) { + providerCount = (int) totalAmount; + } + long base = totalAmount / providerCount; long remainder = totalAmount % providerCount;