blob: 709ed0d6646d867988ecc1f4b469744cbb0c6ab1 [file] [log] [blame] [raw]
package mekanism.common.base;
import mekanism.common.util.LangUtils;
public interface IRedstoneControl
{
public static enum RedstoneControl
{
DISABLED("control.disabled"),
HIGH("control.high"),
LOW("control.low"),
PULSE("control.pulse");
private String display;
public String getDisplay()
{
return LangUtils.localize(display);
}
private RedstoneControl(String s)
{
display = s;
}
}
/**
* Gets the RedstoneControl type from this block.
* @return this block's RedstoneControl type
*/
public RedstoneControl getControlType();
/**
* Sets this block's RedstoneControl type to a new value.
* @param type - RedstoneControl type to set
*/
public void setControlType(RedstoneControl type);
/**
* If the block is getting powered or not by redstone (indirectly).
* @return if the block is getting powered indirectly
*/
public boolean isPowered();
/**
* If the block was getting powered or not by redstone, last tick.
* Used for PULSE mode.
*/
public boolean wasPowered();
/**
* If the machine can be pulsed.
*/
public boolean canPulse();
}