package zmaster587.advancedRocketry.block; import java.util.Random; import zmaster587.advancedRocketry.tile.multiblock.TileSpaceLaser; import zmaster587.libVulpes.block.multiblock.BlockMultiblockMachine; import zmaster587.libVulpes.inventory.GuiHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.world.World; public class BlockLaser extends BlockMultiblockMachine { public BlockLaser() { super(TileSpaceLaser.class, (int)GuiHandler.guiId.MODULAR.ordinal()); setTickRandomly(true).setBlockName("spaceLaser"); } //can happen when lever is flipped... Update the state of the tile @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { super.onNeighborBlockChange(world, x, y, z, block); ((TileSpaceLaser)world.getTileEntity(x, y, z)).checkCanRun(); } @Override public void onBlockPreDestroy(World world, int x, int y, int z, int meta) { super.onBlockPreDestroy(world, x, y, z, meta); ((TileSpaceLaser)world.getTileEntity(x, y, z)).onDestroy(); } @SideOnly(Side.CLIENT) @Override public void registerBlockIcons(IIconRegister icon) { this.top = icon.registerIcon("libvulpes:machineGeneric"); this.sides = icon.registerIcon("advancedRocketry:MonitorSide"); this.bottom = icon.registerIcon("advancedRocketry:laserBottom"); this.front = icon.registerIcon("advancedRocketry:LaserFront"); this.rear = this.sides; } //To check if the laser is jammed @Override public void updateTick(World world, int x, int y, int z, Random random) { TileSpaceLaser tile = (TileSpaceLaser)world.getTileEntity(x, y, z); if(tile.isJammed()) tile.attempUnjam(); else if(!tile.isRunning() && !tile.isFinished()) { tile.checkCanRun(); } } }