package pneumaticCraft.api.client.pneumaticHelmet; import java.util.List; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public interface IBlockTrackEntry{ /** * This method should return true if the coordinate checked is one that * should be tracked. Most entries will just return true when the blockID is * the one that they track. * * @param world * The world that is examined. * @param x * The x coordinate of the block examined. * @param y * The y coordinate of the block examined. * @param z * The z coordinate of the block examined. * @param block * The block of the current coordinate. This will save you a * call to World.getBlock(). * @param te The TileEntity at this x,y,z. * @return true if the coordinate should be tracked by this BlockTrackEntry. */ public boolean shouldTrackWithThisEntry(IBlockAccess world, int x, int y, int z, Block block, TileEntity te); /** * This method defines if the block should be updated by the server (each 5 * seconds). This is specifically aimed at Tile Entities, as the server will * send an NBT packet. This method returns true at for instance Chests and * Mob Spawners, to get the inventory at the client side and the time to the * next spawn respectively. * @param te The TileEntity at the currently checked location. * * @return true if the Tile Entity should be updated, or false when it * doesn't have to. */ public boolean shouldBeUpdatedFromServer(TileEntity te); /** * The return of this method defines at how many tracked blocks of this type * the HUD should stop displaying text at the tracked blocks of this type. * * @return amount of blocks the HUD should stop displaying the block info. */ public int spamThreshold(); /** * This method is called each render tick to retrieve the blocks additional * information. The method behaves the same as the addInformation method in * the Item class. This method only will be called if * shouldTrackWithThisEntry() returned true and the player hovers over the * coordinate. * * @param world * The world the block is in. * @param x * The x coordinate the block is at. * @param y * The y coordinate the block is at. * @param z * The z coordinate the block is at. * @param te The TileEntity at the x,y,z. * @param infoList * The list of lines to display. */ public void addInformation(World world, int x, int y, int z, TileEntity te, List<String> infoList); /** * This method is called when displaying the currently tracked blocks. * Will be tried to be mapped to the localization file first. * @return the name of the group of this entry. */ public String getEntryName(); }