package pneumaticCraft.api.universalSensor;
import java.util.List;
import net.minecraft.client.gui.FontRenderer;
import org.lwjgl.util.Rectangle;
public interface ISensorSetting{
/**
* Should return the button path the player has to follow in which this setting is stored.
* For instance, when the sensor should be located in player and is called speed, you should return "entityTracker/player/speed".
* "entityTracker" indicates that this sensor needs an Entity Tracker upgrade to run. You can choose from the following upgrades:
*
* -entityTracker
* -blockTracker
* -gpsTool (so you can use a certain coordinate (within range) to measure on)
* -volume
* -dispenser
* -speed
* -itemLife
* -itemSearch
* -coordinateTracker
* -range
* -security
*
* You can allow only sensors to work by more than one upgrade, by seperating the upgrades with a '_'. For example,
* "entityTracker_speed" will only let the sensor be chosen when both an Entity Tracker and a Speed Upgrade are inserted.
* @return
*/
public String getSensorPath();
/**
* When returned true, the GUI will enable the textbox writing, otherwise not.
* @return
*/
public boolean needsTextBox();
/**
* Called by GuiScreen#drawScreen this method can be used to render additional things like status/info text.
* @param fontRenderer
*/
public void drawAdditionalInfo(FontRenderer fontRenderer);
/**
* Should return the description of this sensor displayed in the GUI stat. Information should at least include
* when this sensor emits redstone and how (analog (1 through 15), or digital).
* @return
*/
public List<String> getDescription();
/**
* Not being used at the moment, I recommend returning null for now. It is going to be used to allow sensors to decide their
* status on a item which can be inserted in a slot in the GUI if this method returns a rectangle with the coordinates of
* the slot.
* @return
*/
public Rectangle needsSlot();
}