package pneumaticCraft.api.universalSensor;
import java.util.List;
import java.util.Set;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkPosition;
import org.lwjgl.util.Rectangle;
import cpw.mods.fml.common.eventhandler.Event;
public interface IBlockAndCoordinateEventSensor{
/**
* See {@link ISensorSetting#getSensorPath()}
* @return
*/
public String getSensorPath();
/**
* Extended version of the normal emitRedstoneOnEvent. This method will only invoke with a valid GPS tool, and when all the coordinates are within range.
* @param event
* @param sensor
* @param range
* @param positions When only one GPS Tool is inserted this contains the position of just that tool. If two GPS Tools are inserted, These are both corners of a box, and every coordinate in this box is added to the positions argument.
* @return
*/
public int emitRedstoneOnEvent(Event event, TileEntity sensor, int range, Set<ChunkPosition> positions);
/**
* See {@link IEventSensorSetting#getRedstonePulseLength()}
* @return
*/
public int getRedstonePulseLength();
/**
* See {@link ISensorSetting#needsTextBox()}
* @return
*/
public boolean needsTextBox();
/**
* See {@link ISensorSetting#needsSlot()}
*/
public Rectangle needsSlot();
/**
* See {@link ISensorSetting#getDescription()}
* @return
*/
public List<String> getDescription();
/**
* Called by GuiScreen#drawScreen this method can be used to render additional things like status/info text.
* @param fontRenderer
*/
public void drawAdditionalInfo(FontRenderer fontRenderer);
}