| package li.cil.oc.api; |
| |
| import java.util.EnumSet; |
| |
| /** |
| * Implemented on machines that have an "working" state. |
| * <p/> |
| * This is similar to BuildCraft's <tt>IHasWork</tt> interface. |
| * <p/> |
| * This can also be implemented on {@link li.cil.oc.api.component.RackMountable}s |
| * to indicate a working state, which is used when checking for redstone cards |
| * in them, for example (only active mountables will be used). |
| */ |
| public interface StateAware { |
| /** |
| * Get the current work state (usually a <tt>TileEntity</tt>. |
| * <p/> |
| * An empty set indicates that no work can be performed. |
| * |
| * @return the current state. |
| */ |
| EnumSet<State> getCurrentState(); |
| |
| /** |
| * Possible work states. |
| */ |
| enum State { |
| None, |
| |
| /** |
| * Indicates that some work can be performed / energy can be consumed, |
| * but that the current state is being idle. |
| */ |
| CanWork, |
| |
| /** |
| * Indicates that some work is currently being performed / some energy |
| * is currently being consumed. |
| */ |
| IsWorking |
| } |
| } |