From 91dbb7fcd69d42625948c1e977bc099f827106a3 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Thu, 7 Aug 2014 17:17:11 +0100 Subject: [PATCH] Add CC IPeripheralProvider to Bounding, EnergyCube and Generator blocks --- .../mekanism/common/block/BlockBounding.java | 26 ++++++++++++++++--- .../common/block/BlockEnergyCube.java | 21 ++++++++++++++- .../common/block/BlockGenerator.java | 14 ++++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) diff --git a/src/main/java/mekanism/common/block/BlockBounding.java b/src/main/java/mekanism/common/block/BlockBounding.java index 94f7f6a84..9276a4100 100644 --- a/src/main/java/mekanism/common/block/BlockBounding.java +++ b/src/main/java/mekanism/common/block/BlockBounding.java @@ -13,10 +13,16 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import cpw.mods.fml.common.Optional.Interface; +import cpw.mods.fml.common.Optional.Method; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class BlockBounding extends Block +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.peripheral.IPeripheralProvider; + +@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft") +public class BlockBounding extends Block implements IPeripheralProvider { public BlockBounding() { @@ -52,11 +58,11 @@ public class BlockBounding extends Block } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { try { TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z); - return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).removedByPlayer(world, player, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ); + return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).removedByPlayer(world, player, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, willHarvest); } catch(Exception e) { return false; } @@ -122,4 +128,18 @@ public class BlockBounding extends Block return null; } + + @Override + @Method(modid = "ComputerCraft") + public IPeripheral getPeripheral(World world, int x, int y, int z, int side) + { + TileEntity te = world.getTileEntity(x, y, z); + + if(te != null && te instanceof IPeripheral) + { + return (IPeripheral)te; + } + + return null; + } } diff --git a/src/main/java/mekanism/common/block/BlockEnergyCube.java b/src/main/java/mekanism/common/block/BlockEnergyCube.java index f3863a5c8..ba43cd3e3 100644 --- a/src/main/java/mekanism/common/block/BlockEnergyCube.java +++ b/src/main/java/mekanism/common/block/BlockEnergyCube.java @@ -33,8 +33,12 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import buildcraft.api.tools.IToolWrench; +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.peripheral.IPeripheralProvider; import cpw.mods.fml.common.ModAPIManager; +import cpw.mods.fml.common.Optional.Interface; +import cpw.mods.fml.common.Optional.Method; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -46,7 +50,8 @@ import cpw.mods.fml.relauncher.SideOnly; * @author AidanBrady * */ -public class BlockEnergyCube extends BlockContainer +@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft") +public class BlockEnergyCube extends BlockContainer implements IPeripheralProvider { public IIcon[][] icons = new IIcon[256][256]; @@ -354,4 +359,18 @@ public class BlockEnergyCube extends BlockContainer } return false; } + + @Override + @Method(modid = "ComputerCraft") + public IPeripheral getPeripheral(World world, int x, int y, int z, int side) + { + TileEntity te = world.getTileEntity(x, y, z); + + if(te != null && te instanceof IPeripheral) + { + return (IPeripheral)te; + } + + return null; + } } diff --git a/src/main/java/mekanism/generators/common/block/BlockGenerator.java b/src/main/java/mekanism/generators/common/block/BlockGenerator.java index 2d1a80dba..d2f6af17d 100644 --- a/src/main/java/mekanism/generators/common/block/BlockGenerator.java +++ b/src/main/java/mekanism/generators/common/block/BlockGenerator.java @@ -647,4 +647,18 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP } return false; } + + @Override + @Method(modid = "ComputerCraft") + public IPeripheral getPeripheral(World world, int x, int y, int z, int side) + { + TileEntity te = world.getTileEntity(x, y, z); + + if(te != null && te instanceof IPeripheral) + { + return (IPeripheral)te; + } + + return null; + } }