From 3ed6386f746d4176ec53523fc1f0437b9c04ede4 Mon Sep 17 00:00:00 2001 From: GaLicn <3096147684@qq.com> Date: Tue, 12 Aug 2025 12:40:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=8E=9F=E7=89=88=E4=BE=9B=E5=BA=94=E5=99=A8?= =?UTF-8?q?=E7=9A=84=E6=A7=BD=E4=BD=8D=E5=AE=B9=E9=87=8F=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extendedae_plus/config/ModConfigs.java | 23 ++++++++++++++++ .../mixin/PartExPatternProviderMixin.java | 26 +++++++++++++++++++ .../mixin/TileExPatternProviderMixin.java | 26 +++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 src/main/java/com/extendedae_plus/config/ModConfigs.java create mode 100644 src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java create mode 100644 src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java diff --git a/src/main/java/com/extendedae_plus/config/ModConfigs.java b/src/main/java/com/extendedae_plus/config/ModConfigs.java new file mode 100644 index 0000000..ffa23ad --- /dev/null +++ b/src/main/java/com/extendedae_plus/config/ModConfigs.java @@ -0,0 +1,23 @@ +package com.extendedae_plus.config; + +import net.minecraftforge.common.ForgeConfigSpec; + +public final class ModConfigs { + public static final ForgeConfigSpec COMMON_SPEC; + public static final ForgeConfigSpec.IntValue PAGE_MULTIPLIER; + + static { + ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder(); + builder.push("extendedae_plus"); + PAGE_MULTIPLIER = builder + .comment( + "扩展样板供应器总槽位容量的倍率。", + "基础为36,每页仍显示36格,倍率会增加总页数/总容量。", + "建议范围 1-16") + .defineInRange("pageMultiplier", 1, 1, 64); + builder.pop(); + COMMON_SPEC = builder.build(); + } + + private ModConfigs() {} +} diff --git a/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java new file mode 100644 index 0000000..b6e4997 --- /dev/null +++ b/src/main/java/com/extendedae_plus/mixin/PartExPatternProviderMixin.java @@ -0,0 +1,26 @@ +package com.extendedae_plus.mixin; + +import com.extendedae_plus.config.ModConfigs; +import com.glodblock.github.extendedae.common.parts.PartExPatternProvider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +@Mixin(value = PartExPatternProvider.class, priority = 3000, remap = false) +public abstract class PartExPatternProviderMixin { + + @ModifyArg( + method = "createLogic", + at = @At( + value = "INVOKE", + target = "Lappeng/helpers/patternprovider/PatternProviderLogic;(Lappeng/api/networking/IManagedGridNode;Lappeng/helpers/patternprovider/PatternProviderLogicHost;I)V" + ), + index = 2 + ) + private int extendedae_plus$multiplyCapacity(int original) { + int mult = ModConfigs.PAGE_MULTIPLIER.get(); + if (mult < 1) mult = 1; + if (mult > 64) mult = 64; + return Math.max(1, original) * mult; + } +} diff --git a/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java b/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java new file mode 100644 index 0000000..5dd0d12 --- /dev/null +++ b/src/main/java/com/extendedae_plus/mixin/TileExPatternProviderMixin.java @@ -0,0 +1,26 @@ +package com.extendedae_plus.mixin; + +import com.extendedae_plus.config.ModConfigs; +import com.glodblock.github.extendedae.common.tileentities.TileExPatternProvider; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +@Mixin(value = TileExPatternProvider.class, priority = 3000, remap = false) +public abstract class TileExPatternProviderMixin { + + @ModifyArg( + method = "createLogic", + at = @At( + value = "INVOKE", + target = "Lappeng/helpers/patternprovider/PatternProviderLogic;(Lappeng/api/networking/IManagedGridNode;Lappeng/helpers/patternprovider/PatternProviderLogicHost;I)V" + ), + index = 2 + ) + private int extendedae_plus$multiplyCapacity(int original) { + int mult = ModConfigs.PAGE_MULTIPLIER.get(); + if (mult < 1) mult = 1; + if (mult > 64) mult = 64; + return Math.max(1, original) * mult; + } +}