diff --git a/common/mekanism/common/block/BlockMachine.java b/common/mekanism/common/block/BlockMachine.java index 402587873..e77481fe0 100644 --- a/common/mekanism/common/block/BlockMachine.java +++ b/common/mekanism/common/block/BlockMachine.java @@ -84,6 +84,8 @@ import net.minecraftforge.common.ForgeDirection; import buildcraft.api.tools.IToolWrench; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.peripheral.IPeripheralProvider; /** * Block class for handling multiple machine block IDs. @@ -117,7 +119,7 @@ import cpw.mods.fml.relauncher.SideOnly; * @author AidanBrady * */ -public class BlockMachine extends BlockContainer implements ISpecialBounds +public class BlockMachine extends BlockContainer implements ISpecialBounds, IPeripheralProvider { public Icon[][] icons = new Icon[16][16]; public Random machineRand = new Random(); @@ -1230,4 +1232,17 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds { return false; } + + @Override + public IPeripheral getPeripheral(World world, int x, int y, int z, int side) { + + TileEntity te = world.getBlockTileEntity(x, y, z); + + if(te != null && te instanceof IPeripheral) + { + return (IPeripheral) te; + } + + return null; + } } diff --git a/common/mekanism/common/integration/MekanismHooks.java b/common/mekanism/common/integration/MekanismHooks.java index c4dc833df..913444040 100644 --- a/common/mekanism/common/integration/MekanismHooks.java +++ b/common/mekanism/common/integration/MekanismHooks.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Map; import mekanism.common.Mekanism; +import mekanism.common.block.BlockMachine; import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler.Recipe; import mekanism.common.util.MekanismUtils; @@ -19,6 +20,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.event.FMLInterModComms; +import dan200.computercraft.api.ComputerCraftAPI; /** * Hooks for Mekanism. Use to grab items or blocks out of different mods. @@ -36,6 +38,7 @@ public final class MekanismHooks public boolean BasicComponentsLoaded = false; public boolean BuildCraftLoaded = false; public boolean TELoaded = false; + public boolean CCLoaded = false; public boolean MetallurgyCoreLoaded = false; public boolean MetallurgyBaseLoaded = false; @@ -47,6 +50,7 @@ public final class MekanismHooks if(Loader.isModLoaded("BasicComponents")) BasicComponentsLoaded = true; if(Loader.isModLoaded("BuildCraft|Energy")) BuildCraftLoaded = true; if(Loader.isModLoaded("ThermalExpansion")) TELoaded = true; + if(Loader.isModLoaded("ComputerCraft")) CCLoaded = true; if(Loader.isModLoaded("Metallurgy3Core")) { @@ -133,6 +137,14 @@ public final class MekanismHooks { System.out.println("[Mekanism] Hooked into BuildCraft successfully."); } + + if(CCLoaded) + { + try { + ComputerCraftAPI.registerPeripheralProvider((BlockMachine)Mekanism.MachineBlock); + } catch(Exception ex) {} + } + } public void addPulverizerRecipe(ItemStack input, ItemStack output, int energy)