Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lrrp.compat.block;
- import cpw.mods.fml.common.registry.GameRegistry;
- import cpw.mods.fml.common.registry.LanguageRegistry;
- import lrrp.compat.tile.TileEntityCCRedNetInterface;
- import dan200.computercraft.api.ComputerCraftAPI;
- import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
- import net.minecraft.block.BlockContainer;
- import net.minecraft.block.material.Material;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.world.World;
- import net.minecraftforge.common.ForgeDirection;
- import powercrystals.minefactoryreloaded.api.rednet.IConnectableRedNet;
- import powercrystals.minefactoryreloaded.api.rednet.RedNetConnectionType;
- public class BlockCCRedNetInterface extends BlockContainer implements IConnectableRedNet, IBundledRedstoneProvider {
- public static final String BLOCK_NAME = "ccrednetinterface";
- public static int blockID;
- public BlockCCRedNetInterface(int blockID)
- {
- super(blockID, Material.wood);
- BlockCCRedNetInterface.blockID = blockID;
- setUnlocalizedName(BLOCK_NAME);
- setCreativeTab(CreativeTabs.tabBlock);
- setHardness(2.0f);
- setResistance(5.0f);
- setStepSound(soundWoodFootstep);
- GameRegistry.registerBlock (this, BLOCK_NAME);
- LanguageRegistry.addName (this, "CC/RedNet Interface");
- GameRegistry.registerTileEntity(TileEntityCCRedNetInterface.class, BLOCK_NAME + ":TileEntityCCRedNetInterface");
- ComputerCraftAPI.registerBundledRedstoneProvider(this);
- }
- @Override
- public TileEntity createNewTileEntity(World world)
- {
- return new TileEntityCCRedNetInterface();
- }
- /* MineFactoryReloaded API */
- @Override
- public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side)
- {
- return RedNetConnectionType.CableAll;
- }
- @Override
- public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side)
- {
- TileEntity te = world.getBlockTileEntity(x, y, z);
- if (!(te instanceof TileEntityCCRedNetInterface))
- return new int[16];
- return ((TileEntityCCRedNetInterface)te).getOutputValues();
- }
- @Override
- public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet)
- {
- TileEntity te = world.getBlockTileEntity(x, y, z);
- if (!(te instanceof TileEntityCCRedNetInterface))
- return 0;
- return ((TileEntityCCRedNetInterface)te).getOutputValue(subnet);
- }
- @Override
- public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues)
- {
- TileEntity te = world.getBlockTileEntity(x, y, z);
- if (!(te instanceof TileEntityCCRedNetInterface))
- return;
- ((TileEntityCCRedNetInterface)te).setOutputValues(inputValues);
- }
- @Override
- public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue)
- {
- /* not used as we are not in single mode */
- }
- /* ComputerCraft API */
- @Override
- public int getBundledRedstoneOutput(World world, int x, int y, int z, int side)
- {
- TileEntity te = world.getBlockTileEntity(x, y, z);
- if (!(te instanceof TileEntityCCRedNetInterface))
- return 0;
- int[] values = ((TileEntityCCRedNetInterface)te).getOutputValues();
- int output = 0;
- for(int i = 0; i < values.length; ++i)
- if (values[i] > 0)
- output |= 1 << i;
- return output;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment