Skip to content

Commit 2814cfb

Browse files
committed
补充性的兼容修正
1 parent 50be687 commit 2814cfb

14 files changed

+180
-15
lines changed

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ dependencies {
210210
annotationProcessor("org.projectlombok:lombok:1.18.24")
211211

212212
implementation("CraftTweaker2:CraftTweaker2-MC1120-Main:1.12-4.+")
213+
compileOnly("lib:ae2fc-2.7.0-unofficial:dev")
213214
implementation(rfg.deobf("curse.maven:RedstoneFlux-270789:2920436"))
214215
runtimeOnly(rfg.deobf("curse.maven:Cucumber-1.12.2-1.1.3-272335:2645867"))
215216
implementation(rfg.deobf("curse.maven:CodeChickenLib-1.12.2-3.2.4.1-universal-242818:2779848"))

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ show_testing_output = false
1616

1717
# Mod Information
1818
# HIGHLY RECOMMEND complying with SemVer for mod_version: https://semver.org/
19-
mod_version = 1.8.2
19+
mod_version = 1.8.3
2020
root_package = com.circulation
2121
mod_id = random_complement
2222
mod_name = RandomComplement

src/main/java/com/circulation/random_complement/client/RegItemTooltip.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
import appeng.client.gui.AEBaseGui;
44
import appeng.container.slot.SlotFake;
55
import com.circulation.random_complement.client.handler.ItemTooltipHandler;
6-
import com.glodblock.github.client.GuiExtendedFluidPatternTerminal;
7-
import com.glodblock.github.client.GuiFluidPatternTerminal;
6+
import com.circulation.random_complement.mixin.util.FCClassUtil;
87
import com.glodblock.github.client.GuiUltimateEncoder;
9-
import com.glodblock.github.client.GuiWirelessFluidPatternTerminal;
108
import it.unimi.dsi.fastutil.objects.ObjectLists;
119
import net.minecraft.client.Minecraft;
1210
import net.minecraft.client.resources.I18n;
@@ -32,9 +30,11 @@ private static void regAE2FCTooltips() {
3230
return ObjectLists.emptyList();
3331
};
3432

35-
ItemTooltipHandler.regItemTooltip(GuiFluidPatternTerminal.class, t);
36-
ItemTooltipHandler.regItemTooltip(GuiExtendedFluidPatternTerminal.class, t);
37-
ItemTooltipHandler.regItemTooltip(GuiWirelessFluidPatternTerminal.class, t);
33+
ItemTooltipHandler.regItemTooltip(FCClassUtil.extendedFluidPatternTerminal, t);
34+
ItemTooltipHandler.regItemTooltip(FCClassUtil.fluidPatternTerminal, t);
35+
ItemTooltipHandler.regItemTooltip(FCClassUtil.wirelessFluidPatternTerminal, t);
36+
37+
3838
ItemTooltipHandler.regItemTooltip(GuiUltimateEncoder.class, t);
3939
}
4040
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.circulation.random_complement.mixin.ae2fc.news;
2+
3+
import appeng.container.slot.SlotFake;
4+
import com.circulation.random_complement.common.util.MEHandler;
5+
import com.circulation.random_complement.mixin.ae2.gui.MixinGuiMEMonitorable;
6+
import com.glodblock.github.client.client.gui.GuiExtendedFluidPatternTerminal;
7+
import net.minecraft.inventory.Container;
8+
import net.minecraft.inventory.Slot;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
14+
@Mixin(value = GuiExtendedFluidPatternTerminal.class)
15+
public abstract class MixinGuiExtendedFluidPatternTerminal extends MixinGuiMEMonitorable {
16+
17+
public MixinGuiExtendedFluidPatternTerminal(Container container) {
18+
super(container);
19+
}
20+
21+
@Inject(method = "drawSlot", at = @At(value = "HEAD"))
22+
private void drawSlotFake(Slot slot, CallbackInfo ci) {
23+
if (slot.xPos < 0 || slot.yPos < 0) return;
24+
if (slot instanceof SlotFake slotFake) {
25+
if (!slotFake.shouldDisplay()) return;
26+
var item = slotFake.getDisplayStack();
27+
if (!item.isEmpty()) {
28+
if (r$getCraftablesCache().contains(MEHandler.packAEItem(item))) {
29+
r$getPlusSlot().add(slotFake);
30+
}
31+
}
32+
}
33+
}
34+
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.circulation.random_complement.mixin.ae2fc.news;
2+
3+
import appeng.container.slot.SlotFake;
4+
import com.circulation.random_complement.common.util.MEHandler;
5+
import com.circulation.random_complement.mixin.ae2.gui.MixinGuiMEMonitorable;
6+
import com.glodblock.github.client.client.gui.GuiFluidPatternTerminal;
7+
import net.minecraft.inventory.Container;
8+
import net.minecraft.inventory.Slot;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
14+
@Mixin(value = GuiFluidPatternTerminal.class)
15+
public abstract class MixinGuiFluidPatternTerminal extends MixinGuiMEMonitorable {
16+
17+
public MixinGuiFluidPatternTerminal(Container container) {
18+
super(container);
19+
}
20+
21+
@Inject(method = "drawSlot", at = @At(value = "INVOKE", target = "Lnet/minecraft/inventory/Slot;getStack()Lnet/minecraft/item/ItemStack;", ordinal = 0))
22+
private void drawSlotFake(Slot slot, CallbackInfo ci) {
23+
if (slot.xPos < 0 || slot.yPos < 0) return;
24+
if (slot instanceof SlotFake slotFake) {
25+
if (!slotFake.shouldDisplay()) return;
26+
if (!slotFake.getDisplayStack().isEmpty()) {
27+
var item = slotFake.getDisplayStack();
28+
if (r$getCraftablesCache().contains(MEHandler.packAEItem(item))) {
29+
r$getPlusSlot().add(slot);
30+
}
31+
}
32+
}
33+
}
34+
35+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.circulation.random_complement.mixin.ae2fc.news;
2+
3+
import appeng.container.slot.SlotFake;
4+
import com.circulation.random_complement.common.util.MEHandler;
5+
import com.circulation.random_complement.mixin.ae2.gui.MixinGuiMEMonitorable;
6+
import com.glodblock.github.client.client.gui.GuiWirelessFluidPatternTerminal;
7+
import net.minecraft.inventory.Container;
8+
import net.minecraft.inventory.Slot;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
14+
@Mixin(value = GuiWirelessFluidPatternTerminal.class)
15+
public abstract class MixinGuiWirelessFluidPatternTerminal extends MixinGuiMEMonitorable {
16+
17+
public MixinGuiWirelessFluidPatternTerminal(Container container) {
18+
super(container);
19+
}
20+
21+
@Inject(method = "drawSlot", at = @At(value = "INVOKE", target = "Lnet/minecraft/inventory/Slot;getStack()Lnet/minecraft/item/ItemStack;", ordinal = 0))
22+
private void drawSlotFake(Slot slot, CallbackInfo ci) {
23+
if (slot.xPos < 0 || slot.yPos < 0) return;
24+
if (slot instanceof SlotFake slotFake) {
25+
if (!slotFake.shouldDisplay()) return;
26+
if (!slotFake.getDisplayStack().isEmpty()) {
27+
var item = slotFake.getDisplayStack();
28+
if (r$getCraftablesCache().contains(MEHandler.packAEItem(item))) {
29+
r$getPlusSlot().add(slotFake);
30+
}
31+
}
32+
}
33+
}
34+
35+
}

src/main/java/com/circulation/random_complement/mixin/ae2fc/gui/MixinGuiExtendedFluidPatternTerminal.java renamed to src/main/java/com/circulation/random_complement/mixin/ae2fc/old/MixinGuiExtendedFluidPatternTerminal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.circulation.random_complement.mixin.ae2fc.gui;
1+
package com.circulation.random_complement.mixin.ae2fc.old;
22

33
import appeng.container.slot.SlotFake;
44
import com.circulation.random_complement.common.util.MEHandler;

src/main/java/com/circulation/random_complement/mixin/ae2fc/gui/MixinGuiFluidPatternTerminal.java renamed to src/main/java/com/circulation/random_complement/mixin/ae2fc/old/MixinGuiFluidPatternTerminal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.circulation.random_complement.mixin.ae2fc.gui;
1+
package com.circulation.random_complement.mixin.ae2fc.old;
22

33
import appeng.container.slot.SlotFake;
44
import com.circulation.random_complement.common.util.MEHandler;

src/main/java/com/circulation/random_complement/mixin/ae2fc/gui/MixinGuiWirelessFluidPatternTerminal.java renamed to src/main/java/com/circulation/random_complement/mixin/ae2fc/old/MixinGuiWirelessFluidPatternTerminal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.circulation.random_complement.mixin.ae2fc.gui;
1+
package com.circulation.random_complement.mixin.ae2fc.old;
22

33
import appeng.container.slot.SlotFake;
44
import com.circulation.random_complement.common.util.MEHandler;

src/main/java/com/circulation/random_complement/mixin/rcLateMixinLoader.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,11 @@ public class rcLateMixinLoader implements ILateMixinLoader {
7070
}
7171
addMixinCFG("mixins.random_complement.threng.json",
7272
() -> modLoaded("threng") && RCConfig.LazyAE.EnableRepair);
73-
addModdedMixinCFG("mixins.random_complement.ae2fc.json", "ae2fc");
73+
if (modLoaded("ae2fc")) {
74+
addMixinCFG("mixins.random_complement.ae2fc.json");
75+
addMixinCFG("mixins.random_complement.ae2fc.old.json", () -> isClassPresent("com.glodblock.github.common.tile.TileFluidLevelMaintainer"));
76+
addMixinCFG("mixins.random_complement.ae2fc.new.json", () -> !isClassPresent("com.glodblock.github.common.tile.TileFluidLevelMaintainer"));
77+
}
7478
addModdedMixinCFG("mixins.random_complement.ic2.json", "ic2");
7579
addModdedMixinCFG("mixins.random_complement.te5.json", "thermalexpansion");
7680
addModdedMixinCFG("mixins.random_complement.thaumicenergistics.json", "thaumicenergistics");

0 commit comments

Comments
 (0)