| package universalelectricity.prefab; | |
| import net.minecraft.src.BlockContainer; | |
| import net.minecraft.src.Material; | |
| import net.minecraft.src.TileEntity; | |
| import net.minecraft.src.World; | |
| import net.minecraftforge.common.ForgeDirection; | |
| public abstract class BlockConductor extends BlockContainer | |
| { | |
| public BlockConductor(int id, Material material) | |
| { | |
| super(id, material); | |
| } | |
| /** | |
| * Called whenever the block is added into the world. Args: world, x, y, z | |
| */ | |
| @Override | |
| public void onBlockAdded(World world, int x, int y, int z) | |
| { | |
| super.onBlockAdded(world, x, y, z); | |
| this.updateConductorTileEntity(world, x, y, z); | |
| } | |
| /** | |
| * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are | |
| * their own) Args: x, y, z, neighbor blockID | |
| */ | |
| @Override | |
| public void onNeighborBlockChange(World world, int x, int y, int z, int blockID) | |
| { | |
| this.updateConductorTileEntity(world, x, y, z); | |
| world.markBlockNeedsUpdate(x, y, z); | |
| } | |
| public static void updateConductorTileEntity(World world, int x, int y, int z) | |
| { | |
| TileEntity tileEntity = world.getBlockTileEntity(x, y, z); | |
| if (tileEntity != null) | |
| { | |
| for (byte i = 0; i < 6; i++) | |
| { | |
| TileEntityConductor conductorTileEntity = (TileEntityConductor)tileEntity; | |
| conductorTileEntity.updateConnection(Vector3.getConnectorFromSide(world, new Vector3(x, y, z), ForgeDirection.getOrientation(i)), ForgeDirection.getOrientation(i)); | |
| } | |
| } | |
| } | |
| } |