| 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(); |
| } |