Skip to content

Commit 4e6418b

Browse files
committed
完成智能阻挡功能
1 parent e07de22 commit 4e6418b

File tree

6 files changed

+299
-271
lines changed

6 files changed

+299
-271
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ dependencies {
303303
implementation(rfg.deobf("curse.maven:packagedauto-308380:6312996"))
304304
compileOnly(rfg.deobf("curse.maven:libvulpes-236541:3801015"))
305305
compileOnly(rfg.deobf("curse.maven:advanced-rocketry-236542:4671856"))
306-
implementation(rfg.deobf("curse.maven:random-complement-1198138:6992147"))
306+
implementation(rfg.deobf("curse.maven:random-complement-1198138:6993204"))
307307
implementation(kotlin("stdlib-jdk8"))
308308
}
309309

src/main/java/github/kasuminova/novaeng/mixin/ae2/MixinCraftingCPUClusterTwo.java

Lines changed: 244 additions & 235 deletions
Large diffs are not rendered by default.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package github.kasuminova.novaeng.mixin.ae2;
2+
3+
import appeng.api.networking.crafting.ICraftingPatternDetails;
4+
import appeng.helpers.DualityInterface;
5+
import com.circulation.random_complement.client.RCSettings;
6+
import com.circulation.random_complement.client.buttonsetting.IntelligentBlocking;
7+
import com.circulation.random_complement.common.interfaces.RCIConfigurableObject;
8+
import com.llamalad7.mixinextras.sugar.Local;
9+
import net.minecraft.inventory.InventoryCrafting;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Shadow;
12+
import org.spongepowered.asm.mixin.Unique;
13+
import org.spongepowered.asm.mixin.injection.At;
14+
import org.spongepowered.asm.mixin.injection.Inject;
15+
import org.spongepowered.asm.mixin.injection.Redirect;
16+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
17+
18+
@Mixin(value = DualityInterface.class,remap = false)
19+
public abstract class MixinDualityInterface implements RCIConfigurableObject {
20+
21+
@Shadow
22+
protected abstract boolean isBlocking();
23+
24+
@Unique
25+
private int r$lastInputHash;
26+
27+
@Inject(method = "isBusy", at = @At(value = "INVOKE", target = "Lappeng/helpers/DualityInterface;isBlocking()Z", shift = At.Shift.AFTER), cancellable = true)
28+
public void isIntelligentBlocking(CallbackInfoReturnable<Boolean> cir) {
29+
if (this.r$getConfigManager().getSetting(RCSettings.IntelligentBlocking) == IntelligentBlocking.OPEN) {
30+
cir.setReturnValue(false);
31+
}
32+
}
33+
34+
@Inject(method = "pushPattern", at = @At("RETURN"))
35+
public void intelligentBlocking(ICraftingPatternDetails pattern, InventoryCrafting table, CallbackInfoReturnable<Boolean> cir) {
36+
if (this.r$getConfigManager().getSetting(RCSettings.IntelligentBlocking) == IntelligentBlocking.OPEN && cir.getReturnValue()) {
37+
this.r$lastInputHash = pattern.hashCode();
38+
}
39+
}
40+
41+
@Redirect(method = "pushPattern", at = @At(value = "INVOKE", target = "Lappeng/helpers/DualityInterface;isBlocking()Z"))
42+
public boolean intelligentBlocking(DualityInterface instance, @Local(name = "patternDetails") ICraftingPatternDetails patternDetails) {
43+
boolean b = this.isBlocking();
44+
if (b) {
45+
return this.r$getConfigManager()
46+
.getSetting(RCSettings.IntelligentBlocking) != IntelligentBlocking.OPEN
47+
|| this.r$lastInputHash != patternDetails.hashCode();
48+
}
49+
return b;
50+
}
51+
52+
}

src/main/java/github/kasuminova/novaeng/mixin/astralsorcery/MixinTieredAltarRecipeTransferHandler.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/main/resources/mixins.novaeng_core_ae2.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"MixinCraftingCPUClusterTwo$AccessorTaskProgress",
2424
"MixinCraftingCPUStatus",
2525
"MixinCraftingGridCache",
26+
"MixinDualityInterface",
2627
"MixinTileChestFilter",
2728
"MixinTileDriveFilter"
2829
]

src/main/resources/mixins.novaeng_core_astralsorcery.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
"compatibilityLevel": "JAVA_8",
77
"mixins": [
88
"MixinBlockCustomOre",
9-
"MixinPlayerAttributeMap",
10-
"MixinTieredAltarRecipeTransferHandler"
9+
"MixinPlayerAttributeMap"
1110
],
1211
"server": [
1312
"AccessorResearchManager",

0 commit comments

Comments
 (0)