Skip to content

Commit 2ca3cc8

Browse files
authored
Merge pull request #295 from MCTian-mi/storage-scanner
Dep cleanup && Stop storage scanners from recognizing item pipes as inventories
2 parents 4330370 + be34eea commit 2ca3cc8

18 files changed

+157
-262
lines changed

dependencies.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ dependencies {
5555
implementation rfg.deobf("curse.maven:modularui-624243:5153413")
5656

5757
compileOnly rfg.deobf("curse.maven:ynet-an-xnet-fork-999559:5243319") // XNet-1.8.3-ynet
58-
implementation rfg.deobf("curse.maven:rftools-224641:2861573") // RFTools 7.73
59-
implementation rfg.deobf("curse.maven:mcjtylib-233105:2745846")
58+
compileOnly rfg.deobf("curse.maven:rftools-224641:2861573") // RFTools 7.73
59+
compileOnly rfg.deobf("curse.maven:mcjtylib-233105:2745846")
6060
compileOnly rfg.deobf("curse.maven:redstone-flux-270789:2920436")
6161
compileOnly rfg.deobf("curse.maven:tesla-244651:2487959")
6262
compileOnly rfg.deobf("curse.maven:hwyla-253449:2568751")
6363

64-
implementation rfg.deobf("curse.maven:barrels-drums-storage-more-319404:2708193")
64+
compileOnly rfg.deobf("curse.maven:barrels-drums-storage-more-319404:2708193")
6565
}

src/main/java/supersymmetry/Supersymmetry.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import supersymmetry.common.covers.SuSyCoverBehaviors;
2121
import supersymmetry.common.item.SuSyMetaItems;
2222
import supersymmetry.common.metatileentities.SuSyMetaTileEntities;
23-
import supersymmetry.integration.bdsandm.BDSAndMModule;
2423
import supersymmetry.loaders.SuSyIRLoader;
2524

2625
@Mod(name = Supersymmetry.NAME, modid = Supersymmetry.MODID, version = Tags.VERSION, dependencies = GTInternalTags.DEP_VERSION_STRING + ";required-after:gcym;after:immersiverailroading")
@@ -62,8 +61,6 @@ public void onPreInit(@NotNull FMLPreInitializationEvent event) {
6261
public void onInit(@NotNull FMLInitializationEvent event) {
6362
proxy.load();
6463
SuSyCoverBehaviors.init();
65-
66-
BDSAndMModule.init();
6764
}
6865

6966
@Mod.EventHandler

src/main/java/supersymmetry/integration/bdsandm/BDSAndMModule.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,32 @@
22

33
import funwayguy.bdsandm.blocks.tiles.TileEntityBarrel;
44
import funwayguy.bdsandm.core.BDSM;
5+
import gregtech.api.GTValues;
56
import gregtech.api.cover.CoverRayTracer;
7+
import gregtech.api.modules.GregTechModule;
68
import gregtech.common.items.tool.rotation.CustomBlockRotations;
79
import gregtech.common.items.tool.rotation.ICustomRotationBehavior;
10+
import gregtech.integration.IntegrationSubmodule;
811
import net.minecraft.block.BlockDirectional;
912
import net.minecraft.nbt.NBTTagCompound;
1013
import net.minecraft.util.EnumFacing;
14+
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
15+
import supersymmetry.modules.SuSyModules;
1116

1217
import java.util.Objects;
1318

14-
public class BDSAndMModule {
19+
@GregTechModule(
20+
moduleID = SuSyModules.MODULE_BDSAndM,
21+
containerID = GTValues.MODID,
22+
modDependencies = "bdsandm",
23+
name = "SuSy BDSAndM Integration",
24+
description = "BDSAndM Integration Module")
25+
public class BDSAndMModule extends IntegrationSubmodule {
1526

1627
public static final ICustomRotationBehavior BDSAndM_BARREL_BEHAVIOR = (state, world, pos, hitResult) -> {
1728
EnumFacing gridSide = CoverRayTracer.determineGridSideHit(hitResult);
1829
if (gridSide == null) return false;
19-
gridSide = gridSide.getOpposite(); // idk what's happening here, blame the original author
30+
gridSide = gridSide.getOpposite(); // IDK what's happening here, blame the original author
2031
if (gridSide != state.getValue(BlockDirectional.FACING)) {
2132
TileEntityBarrel barrel = ((TileEntityBarrel) world.getTileEntity(pos));
2233
if (barrel != null) {
@@ -30,7 +41,9 @@ public class BDSAndMModule {
3041
return false;
3142
};
3243

33-
public static void init() {
44+
@Override
45+
public void init(FMLInitializationEvent event) {
46+
getLogger().info("BDSAndM found. Enabling integration...");
3447
CustomBlockRotations.registerCustomRotation(BDSM.blockMetalBarrel, BDSAndM_BARREL_BEHAVIOR);
3548
CustomBlockRotations.registerCustomRotation(BDSM.blockWoodBarrel, BDSAndM_BARREL_BEHAVIOR);
3649
}
Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
package supersymmetry.mixins;
22

3+
import com.google.common.collect.ImmutableList;
4+
import net.minecraftforge.fml.common.Loader;
35
import zone.rong.mixinbooter.ILateMixinLoader;
46

5-
import java.util.Arrays;
67
import java.util.List;
8+
import java.util.stream.Collectors;
79

8-
@SuppressWarnings("unused")
910
public class SuSyLateMixinLoader implements ILateMixinLoader {
1011

12+
public static final List<String> modMixins = ImmutableList.of("bdsandm", "gregtech", "mcjtylib_ng", "xnet");
13+
1114
@Override
1215
public List<String> getMixinConfigs() {
13-
String[] configs = {"mixins.susy.late.json"};
14-
return Arrays.asList(configs);
16+
return modMixins.stream().map(mod -> "mixins.susy." + mod + ".json").collect(Collectors.toList());
17+
}
18+
19+
@Override
20+
public boolean shouldMixinConfigQueue(String mixinConfig) {
21+
String[] parts = mixinConfig.split("\\.");
22+
return parts.length != 4 || shouldEnableModMixin(parts[2]);
23+
}
24+
25+
public static boolean shouldEnableModMixin(String mod) {
26+
return Loader.isModLoaded(mod);
1527
}
1628
}

src/main/java/supersymmetry/mixins/bdsandm/BlockBarrelBaseMixin.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@
55
import org.spongepowered.asm.mixin.injection.At;
66
import org.spongepowered.asm.mixin.injection.Redirect;
77

8-
@Mixin(BlockBarrelBase.class)
8+
@Mixin(value = BlockBarrelBase.class, remap = false)
99
public class BlockBarrelBaseMixin {
1010

1111
@Redirect(method = "withdrawItem",
12-
remap = false,
13-
at = @At(value = "INVOKE",
14-
target = "Ljava/lang/Math;min(II)I",
15-
ordinal = 0))
12+
at = @At(value = "INVOKE",
13+
target = "Ljava/lang/Math;min(II)I",
14+
ordinal = 0))
1615
private int redirectMin(int a, int b) {
1716
return b;
1817
}
19-
2018
}

src/main/java/supersymmetry/mixins/bdsandm/ItemBarrelMixin.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
import org.spongepowered.asm.mixin.injection.Inject;
1313
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1414

15-
@Mixin(ItemBarrel.class)
15+
@Mixin(value = ItemBarrel.class, remap = false)
1616
public class ItemBarrelMixin extends ItemBlock {
17-
//Need to extend ItemBlock to use super.getNBTShareTag
17+
18+
// Need to extend ItemBlock to use super.getNBTShareTag
1819
public ItemBarrelMixin(Block block) {
1920
super(block);
2021
}
@@ -28,14 +29,12 @@ public ItemBarrelMixin(Block block) {
2829
// fire from the network handler for a given player and kick them.
2930
// This hack reduces the scope of the bug to incorrect (not present) barrel metadata on the client.
3031
@Inject(method = "getNBTShareTag",
31-
remap = false,
3232
at = @At(value = "INVOKE",
33-
target = "Lfunwayguy/bdsandm/inventory/capability/CapabilityBarrel;serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;"),
33+
target = "Lfunwayguy/bdsandm/inventory/capability/CapabilityBarrel;serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;"),
3434
cancellable = true)
3535
public void returnIfNull(ItemStack stack, CallbackInfoReturnable<NBTTagCompound> cir, @Local CapabilityBarrel barrel) {
3636
if (barrel == null) {
3737
cir.setReturnValue(super.getNBTShareTag(stack));
38-
cir.cancel();
3938
}
4039
}
4140
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package supersymmetry.mixins.mcjtylib;
2+
3+
import gregtech.common.pipelike.itempipe.net.ItemNetHandler;
4+
import mcjty.lib.container.InventoryHelper;
5+
import net.minecraft.tileentity.TileEntity;
6+
import net.minecraftforge.items.CapabilityItemHandler;
7+
import net.minecraftforge.items.IItemHandler;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
12+
13+
@Mixin(value = InventoryHelper.class, remap = false)
14+
public class InventoryHelperMixin {
15+
16+
@Inject(method = "isInventory",
17+
at = @At(
18+
value = "RETURN",
19+
ordinal = 0),
20+
cancellable = true)
21+
private static void checkIsEmpty(TileEntity te, CallbackInfoReturnable<Boolean> cir) {
22+
IItemHandler inventory = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
23+
cir.setReturnValue(inventory != null && !(inventory instanceof ItemNetHandler));
24+
}
25+
}

src/main/java/supersymmetry/mixins/rftools/GuiStorageScannerMixin.java

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

src/main/java/supersymmetry/mixins/rftools/InventoryInfoMixin.java

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

src/main/java/supersymmetry/mixins/rftools/PacketGetInventoryInfoMixin.java

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

0 commit comments

Comments
 (0)