Fix dependency issue on MCMP

This commit is contained in:
raoulvdberge
2017-02-20 00:14:21 +01:00
parent 4ec342fceb
commit 5041d69716
5 changed files with 36 additions and 25 deletions

View File

@@ -56,7 +56,7 @@ dependencies {
deobfCompile "net.darkhax.tesla:Tesla:1.11-1.3.0.51" 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.cyclopscore:CyclopsCore:1.11.2-0.9.2-483"
deobfCompile "org.cyclops.commoncapabilities:CommonCapabilities:1.11.2-1.3.1-95" 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 { processResources {

View File

@@ -23,7 +23,7 @@ public final class RS {
public static final String ID = "refinedstorage"; public static final String ID = "refinedstorage";
public static final String VERSION = "1.4.1"; 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"; 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") @SidedProxy(clientSide = "com.raoulvdberge.refinedstorage.proxy.ProxyClient", serverSide = "com.raoulvdberge.refinedstorage.proxy.ProxyCommon")

View File

@@ -4,13 +4,47 @@ import com.raoulvdberge.refinedstorage.RSBlocks;
import mcmultipart.api.addon.IMCMPAddon; import mcmultipart.api.addon.IMCMPAddon;
import mcmultipart.api.addon.MCMPAddon; import mcmultipart.api.addon.MCMPAddon;
import mcmultipart.api.multipart.IMultipartRegistry; import mcmultipart.api.multipart.IMultipartRegistry;
import mcmultipart.api.ref.MCMPCapabilities;
import net.minecraft.item.Item; 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 @MCMPAddon
public class IntegrationMCMP implements IMCMPAddon { public class IntegrationMCMP implements IMCMPAddon {
@Override @Override
public void registerParts(IMultipartRegistry registry) { public void registerParts(IMultipartRegistry registry) {
MinecraftForge.EVENT_BUS.register(this);
registry.registerPartWrapper(RSBlocks.CABLE, new PartCable()); registry.registerPartWrapper(RSBlocks.CABLE, new PartCable());
registry.registerStackWrapper(Item.getItemFromBlock(RSBlocks.CABLE), s -> true, RSBlocks.CABLE); registry.registerStackWrapper(Item.getItemFromBlock(RSBlocks.CABLE), s -> true, RSBlocks.CABLE);
} }
@SubscribeEvent
public void onAttachCapability(AttachCapabilitiesEvent<TileEntity> 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> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
if (capability == MCMPCapabilities.MULTIPART_TILE) {
return MCMPCapabilities.MULTIPART_TILE.cast(new PartCableTile(e.getObject()));
}
return null;
}
});
}
} }

View File

@@ -27,6 +27,4 @@ public class PartCable implements IMultipart {
public Block getBlock() { public Block getBlock() {
return RSBlocks.CABLE; return RSBlocks.CABLE;
} }
} }

View File

@@ -1,34 +1,13 @@
package com.raoulvdberge.refinedstorage.tile; package com.raoulvdberge.refinedstorage.tile;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCable; 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.Nonnull;
import javax.annotation.Nullable;
public class TileCable extends TileNode<NetworkNodeCable> { public class TileCable extends TileNode<NetworkNodeCable> {
private PartCableTile part = new PartCableTile(this);
@Override @Override
@Nonnull @Nonnull
public NetworkNodeCable createNode() { public NetworkNodeCable createNode() {
return new NetworkNodeCable(this); 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> T getCapability(Capability<T> capability, @Nullable EnumFacing side) {
if (capability == MCMPCapabilities.MULTIPART_TILE) {
return (T) part;
}
return super.getCapability(capability, side);
}
} }