package com.team.futurecraft.block;
import java.util.ArrayList;
import com.team.futurecraft.FutureCraft;
import com.team.futurecraft.tileentity.TileEntityWire;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class BlockWire extends BlockContainer implements IElectric {
public BlockWire(String name) {
super(Material.cloth);
this.setUnlocalizedName(name);
this.setCreativeTab(FutureCraft.tabFutureCraft);
this.setStepSound(soundTypeCloth);
GameRegistry.registerBlock(this, name);
}
@Override
public int getRenderType() {
return 1000;
}
public boolean isOpaqueCube() {
return false;
}
public boolean canConnectTo(IBlockAccess world, BlockPos pos, EnumFacing side) {
if (world.getBlockState(pos.offset(side)).getBlock() instanceof IElectric) return true;
else return false;
}
@Override
public int onPowered(World world, BlockPos pos, int amount, EnumFacing side) {
return ((TileEntityWire)world.getTileEntity(pos)).power(amount);
}
/**
* Returns the <code>EnumFacing</code> equivelants of
* the connected blocks.
*
* @param world
* @param x
* @param y
* @param z
* @return
*/
public Object[] getConnectedBlocks(World world, BlockPos pos) {
ArrayList<EnumFacing> sides = new ArrayList<EnumFacing>();
if (this.canConnectTo(world, pos, EnumFacing.NORTH)) sides.add(EnumFacing.NORTH);
if (this.canConnectTo(world, pos, EnumFacing.SOUTH)) sides.add(EnumFacing.SOUTH);
if (this.canConnectTo(world, pos, EnumFacing.EAST)) sides.add(EnumFacing.EAST);
if (this.canConnectTo(world, pos, EnumFacing.WEST)) sides.add(EnumFacing.WEST);
if (this.canConnectTo(world, pos, EnumFacing.UP)) sides.add(EnumFacing.UP);
if (this.canConnectTo(world, pos, EnumFacing.DOWN)) sides.add(EnumFacing.DOWN);
sides.trimToSize();
return sides.toArray();
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityWire(100, this);
}
@Override
public int getEnergy(World world, BlockPos pos) {
return ((TileEntityWire)world.getTileEntity(pos)).getEnergy();
}
}