Cleaned up computer integration

This commit is contained in:
aidancbrady 2015-11-27 23:19:29 -07:00
parent c2006d5e70
commit 21fa9fdb26
7 changed files with 32 additions and 106 deletions

View file

@ -1,13 +1,7 @@
package mekanism.common.block;
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;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.peripheral.IPeripheralProvider;
import mekanism.common.integration.CCPeripheral;
import mekanism.common.integration.IComputerIntegration;
import mekanism.common.tile.TileEntityAdvancedBoundingBlock;
import mekanism.common.tile.TileEntityBoundingBlock;
import net.minecraft.block.Block;
@ -22,8 +16,7 @@ import net.minecraft.world.World;
import java.util.Random;
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
public class BlockBounding extends Block implements IPeripheralProvider
public class BlockBounding extends Block
{
public BlockBounding()
{
@ -132,18 +125,4 @@ public class BlockBounding extends Block implements IPeripheralProvider
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 IComputerIntegration)
{
return new CCPeripheral((IComputerIntegration)te);
}
return null;
}
}

View file

@ -1,12 +1,8 @@
package mekanism.common.block;
import buildcraft.api.tools.IToolWrench;
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;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.peripheral.IPeripheralProvider;
import mekanism.api.energy.IEnergizedItem;
import mekanism.common.ItemAttacher;
import mekanism.common.Mekanism;
@ -14,8 +10,6 @@ import mekanism.common.MekanismBlocks;
import mekanism.common.Tier.EnergyCubeTier;
import mekanism.common.base.IEnergyCube;
import mekanism.common.base.ISustainedInventory;
import mekanism.common.integration.CCPeripheral;
import mekanism.common.integration.IComputerIntegration;
import mekanism.common.item.ItemBlockEnergyCube;
import mekanism.common.tile.TileEntityBasicBlock;
import mekanism.common.tile.TileEntityEnergyCube;
@ -50,8 +44,7 @@ import java.util.Random;
* @author AidanBrady
*
*/
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
public class BlockEnergyCube extends BlockContainer implements IPeripheralProvider
public class BlockEnergyCube extends BlockContainer
{
public BlockEnergyCube()
{
@ -332,18 +325,4 @@ public class BlockEnergyCube extends BlockContainer implements IPeripheralProvid
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 IComputerIntegration)
{
return new CCPeripheral((IComputerIntegration)te);
}
return null;
}
}

View file

@ -1,12 +1,8 @@
package mekanism.common.block;
import buildcraft.api.tools.IToolWrench;
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;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.peripheral.IPeripheralProvider;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.api.MekanismConfig.client;
@ -25,8 +21,6 @@ import mekanism.common.MekanismBlocks;
import mekanism.common.Tier.BaseTier;
import mekanism.common.base.*;
import mekanism.common.base.IFactory.RecipeType;
import mekanism.common.integration.CCPeripheral;
import mekanism.common.integration.IComputerIntegration;
import mekanism.common.item.ItemBlockMachine;
import mekanism.common.network.PacketElectricChest.ElectricChestMessage;
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
@ -104,8 +98,7 @@ import java.util.*;
* @author AidanBrady
*
*/
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
public class BlockMachine extends BlockContainer implements ISpecialBounds, IPeripheralProvider, IBlockCTM, ICustomBlockIcon
public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlockCTM, ICustomBlockIcon
{
public IIcon[][] icons = new IIcon[16][16];
public IIcon[][][] factoryIcons = new IIcon[4][16][16];
@ -1298,20 +1291,6 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
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 IComputerIntegration)
{
return new CCPeripheral((IComputerIntegration)te);
}
return null;
}
@Override
public ForgeDirection[] getValidRotations(World world, int x, int y, int z)
{

View file

@ -5,10 +5,14 @@ import dan200.computercraft.api.lua.ILuaContext;
import dan200.computercraft.api.lua.LuaException;
import dan200.computercraft.api.peripheral.IComputerAccess;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.peripheral.IPeripheralProvider;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
/**
* Created by aidancbrady on 7/20/15.
*/
@Optional.Interface(iface = "dan200.computercraft.api.peripheral.IPeripheral", modid = "ComputerCraft")
public class CCPeripheral implements IPeripheral
{
public IComputerIntegration computerTile;
@ -60,4 +64,20 @@ public class CCPeripheral implements IPeripheral
{
return this == other;
}
public static class CCPeripheralProvider 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 != null && te instanceof IComputerIntegration)
{
return new CCPeripheral((IComputerIntegration)te);
}
return null;
}
}
}

View file

@ -8,10 +8,8 @@ import ic2.api.recipe.*;
import li.cil.oc.api.Driver;
import mekanism.api.transmitters.TransmissionType;
import mekanism.common.Mekanism;
import mekanism.common.MekanismBlocks;
import mekanism.common.MekanismItems;
import mekanism.common.Resource;
import mekanism.common.block.BlockMachine;
import mekanism.common.multipart.TransmitterType;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.util.MekanismUtils;
@ -127,7 +125,7 @@ public final class MekanismHooks
public void loadCCPeripheralProviders()
{
try {
ComputerCraftAPI.registerPeripheralProvider((BlockMachine)MekanismBlocks.MachineBlock);
ComputerCraftAPI.registerPeripheralProvider(new CCPeripheral.CCPeripheralProvider());
} catch(Exception e) {}
}

View file

@ -1,19 +1,13 @@
package mekanism.generators.common.block;
import buildcraft.api.tools.IToolWrench;
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;
import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.peripheral.IPeripheralProvider;
import mekanism.api.MekanismConfig.general;
import mekanism.api.energy.IEnergizedItem;
import mekanism.common.ItemAttacher;
import mekanism.common.Mekanism;
import mekanism.common.base.*;
import mekanism.common.integration.CCPeripheral;
import mekanism.common.integration.IComputerIntegration;
import mekanism.common.tile.TileEntityBasicBlock;
import mekanism.common.tile.TileEntityElectricBlock;
import mekanism.common.util.LangUtils;
@ -53,8 +47,7 @@ import java.util.Random;
* @author AidanBrady
*
*/
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
public class BlockGenerator extends BlockContainer implements ISpecialBounds, IPeripheralProvider
public class BlockGenerator extends BlockContainer implements ISpecialBounds
{
public Random machineRand = new Random();
@ -638,18 +631,4 @@ 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 IComputerIntegration)
{
return new CCPeripheral((IComputerIntegration)te);
}
return null;
}
}

View file

@ -1,28 +1,20 @@
package mekanism.generators.common.block;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import buildcraft.api.tools.IToolWrench;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.Coord4D;
import mekanism.common.CTMData;
import mekanism.common.ItemAttacher;
import mekanism.common.Mekanism;
import mekanism.common.base.IBlockCTM;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.tile.TileEntityBasicBlock;
import mekanism.common.tile.TileEntityElectricBlock;
import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
import mekanism.generators.common.GeneratorsBlocks;
import mekanism.generators.common.MekanismGenerators;
import mekanism.generators.common.tile.reactor.TileEntityReactorController;
import mekanism.generators.common.tile.reactor.TileEntityReactorFrame;
import mekanism.generators.common.tile.reactor.TileEntityReactorGlass;
import mekanism.generators.common.tile.reactor.TileEntityReactorLaserFocusMatrix;
import mekanism.generators.common.tile.reactor.TileEntityReactorLogicAdapter;
import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture;
import mekanism.generators.common.tile.reactor.TileEntityReactorPort;
import mekanism.generators.common.tile.reactor.*;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
@ -37,9 +29,9 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.api.tools.IToolWrench;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Arrays;
import java.util.List;
public class BlockReactor extends BlockContainer implements IBlockCTM
{