diff --git a/src/main/java/assemblyline/common/AsseblyLinePeripheralProvider.java b/src/main/java/assemblyline/common/AsseblyLinePeripheralProvider.java new file mode 100644 index 0000000..19f2eba --- /dev/null +++ b/src/main/java/assemblyline/common/AsseblyLinePeripheralProvider.java @@ -0,0 +1,17 @@ +package assemblyline.common; + +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.peripheral.IPeripheralProvider; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class AsseblyLinePeripheralProvider implements IPeripheralProvider { + @Override + public IPeripheral getPeripheral(World world, int x, int y, int z, int side) { + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof IAssemblyLinePeripheral)) + return null; + + return (IPeripheral) te; + } +} diff --git a/src/main/java/assemblyline/common/AssemblyLine.java b/src/main/java/assemblyline/common/AssemblyLine.java index f15f23c..878804f 100644 --- a/src/main/java/assemblyline/common/AssemblyLine.java +++ b/src/main/java/assemblyline/common/AssemblyLine.java @@ -1,11 +1,8 @@ package assemblyline.common; import java.io.File; -import java.util.Arrays; import java.util.logging.Logger; -import assemblyline.common.CommonProxy; -import assemblyline.common.TabAssemblyLine; import assemblyline.common.block.BlockCrate; import assemblyline.common.block.BlockTurntable; import assemblyline.common.block.ItemBlockCrate; @@ -24,7 +21,6 @@ import assemblyline.common.machine.imprinter.ItemImprinter; import assemblyline.common.network.MessageEncoder; import assemblyline.common.network.MessageEncoderHandler; import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -37,6 +33,7 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; +import dan200.computercraft.api.ComputerCraftAPI; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -151,6 +148,8 @@ public class AssemblyLine { ); this.createStandardRecipes(); this.createUERecipes(); + + ComputerCraftAPI.registerPeripheralProvider(new AsseblyLinePeripheralProvider()); } private void createUERecipes() { diff --git a/src/main/java/assemblyline/common/IAssemblyLinePeripheral.java b/src/main/java/assemblyline/common/IAssemblyLinePeripheral.java new file mode 100644 index 0000000..b14e87c --- /dev/null +++ b/src/main/java/assemblyline/common/IAssemblyLinePeripheral.java @@ -0,0 +1,8 @@ +package assemblyline.common; + +import dan200.computercraft.api.peripheral.IPeripheral; + +/** + * Wrapper around IPeripheral + */ +public interface IAssemblyLinePeripheral extends IPeripheral {} diff --git a/src/main/java/assemblyline/common/machine/armbot/TileEntityArmbot.java b/src/main/java/assemblyline/common/machine/armbot/TileEntityArmbot.java index d554a0a..46f47d2 100644 --- a/src/main/java/assemblyline/common/machine/armbot/TileEntityArmbot.java +++ b/src/main/java/assemblyline/common/machine/armbot/TileEntityArmbot.java @@ -6,6 +6,7 @@ import java.util.List; import assemblyline.api.IArmbot; import assemblyline.common.AssemblyLine; +import assemblyline.common.IAssemblyLinePeripheral; import assemblyline.common.machine.TileEntityAssemblyNetwork; import assemblyline.common.machine.command.Command; import assemblyline.common.machine.command.CommandDrop; @@ -48,7 +49,8 @@ import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.multiblock.IMultiBlock; public class TileEntityArmbot extends TileEntityAssemblyNetwork - implements IMultiBlock, IInventory, IElectricityStorage, IArmbot, IPeripheral { + implements IMultiBlock, IInventory, IElectricityStorage, IArmbot, + IAssemblyLinePeripheral { private final CommandManager commandManager = new CommandManager(); private static final int PACKET_COMMANDS = 128; protected ItemStack disk = null;