From 5041d69716d6f24ba6cc599474721e117f45ad85 Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Mon, 20 Feb 2017 00:14:21 +0100 Subject: [PATCH] Fix dependency issue on MCMP --- build.gradle | 2 +- .../com/raoulvdberge/refinedstorage/RS.java | 2 +- .../integration/mcmp/IntegrationMCMP.java | 34 +++++++++++++++++++ .../integration/mcmp/PartCable.java | 2 -- .../refinedstorage/tile/TileCable.java | 21 ------------ 5 files changed, 36 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index b13cda0ec..fc8ed9fb9 100755 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ dependencies { deobfCompile "net.darkhax.tesla:Tesla:1.11-1.3.0.51" deobfCompile "org.cyclops.cyclopscore:CyclopsCore:1.11.2-0.9.2-483" deobfCompile "org.cyclops.commoncapabilities:CommonCapabilities:1.11.2-1.3.1-95" - deobfCompile "MCMultiPart2:MCMultiPart-exp:2.0.0_13" + deobfCompile "MCMultiPart2:MCMultiPart-exp:2.0.0_16" } processResources { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index f91f67916..d81952d4d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -23,7 +23,7 @@ public final class RS { public static final String ID = "refinedstorage"; public static final String VERSION = "1.4.1"; - public static final String DEPENDENCIES = "required-after:forge@[13.19.1.2188,);after:commoncapabilities@[1.3.1,);"; + public static final String DEPENDENCIES = "required-after:forge@[13.19.1.2188,);after:commoncapabilities@[1.3.1,);before:mcmultipart;"; public static final String GUI_FACTORY = "com.raoulvdberge.refinedstorage.gui.config.ModGuiFactory"; @SidedProxy(clientSide = "com.raoulvdberge.refinedstorage.proxy.ProxyClient", serverSide = "com.raoulvdberge.refinedstorage.proxy.ProxyCommon") diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/IntegrationMCMP.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/IntegrationMCMP.java index e6d12a953..14e08f2a2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/IntegrationMCMP.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/IntegrationMCMP.java @@ -4,13 +4,47 @@ import com.raoulvdberge.refinedstorage.RSBlocks; import mcmultipart.api.addon.IMCMPAddon; import mcmultipart.api.addon.MCMPAddon; import mcmultipart.api.multipart.IMultipartRegistry; +import mcmultipart.api.ref.MCMPCapabilities; import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.event.AttachCapabilitiesEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; @MCMPAddon public class IntegrationMCMP implements IMCMPAddon { @Override public void registerParts(IMultipartRegistry registry) { + MinecraftForge.EVENT_BUS.register(this); + registry.registerPartWrapper(RSBlocks.CABLE, new PartCable()); registry.registerStackWrapper(Item.getItemFromBlock(RSBlocks.CABLE), s -> true, RSBlocks.CABLE); } + + @SubscribeEvent + public void onAttachCapability(AttachCapabilitiesEvent e) { + e.addCapability(new ResourceLocation("refinedstorage:cable"), new ICapabilityProvider() { + @Override + public boolean hasCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) { + return capability == MCMPCapabilities.MULTIPART_TILE; + } + + @Nullable + @Override + public T getCapability(@Nonnull Capability capability, @Nullable EnumFacing facing) { + if (capability == MCMPCapabilities.MULTIPART_TILE) { + return MCMPCapabilities.MULTIPART_TILE.cast(new PartCableTile(e.getObject())); + } + + return null; + } + }); + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/PartCable.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/PartCable.java index 6f1327003..0ba271a66 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/PartCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/mcmp/PartCable.java @@ -27,6 +27,4 @@ public class PartCable implements IMultipart { public Block getBlock() { return RSBlocks.CABLE; } - - } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java index 22955304b..d06eebad5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileCable.java @@ -1,34 +1,13 @@ package com.raoulvdberge.refinedstorage.tile; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCable; -import com.raoulvdberge.refinedstorage.integration.mcmp.PartCableTile; -import mcmultipart.api.ref.MCMPCapabilities; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; import javax.annotation.Nonnull; -import javax.annotation.Nullable; public class TileCable extends TileNode { - private PartCableTile part = new PartCableTile(this); - @Override @Nonnull public NetworkNodeCable createNode() { return new NetworkNodeCable(this); } - - @Override - public boolean hasCapability(Capability capability, @Nullable EnumFacing side) { - return super.hasCapability(capability, side) || capability == MCMPCapabilities.MULTIPART_TILE; - } - - @Override - public T getCapability(Capability capability, @Nullable EnumFacing side) { - if (capability == MCMPCapabilities.MULTIPART_TILE) { - return (T) part; - } - - return super.getCapability(capability, side); - } }