electrodynamics/electrical/src/main/scala/resonantinduction/electrical/encoder/coding/ILogicTask.java
2014-03-23 17:19:47 +08:00

33 lines
1,020 B
Java

package resonantinduction.electrical.encoder.coding;
import java.util.List;
import universalelectricity.api.vector.Vector2;
/**
* Task in which it doesn't go right to the next task in the row. In this case the task will store
* the entry point, and exit points. As well handle anything in between. Examples are IF statements
* and loops. Do your logic in the refresh method as it should be called each time a new task is
* selected.
*
* @author DarkGuardsman
*/
public interface ILogicTask extends ITask
{
/**
* There is always only one exit though you can do logic to pick from all your exit points. Exit
* is the next task rather than the exit of the statement. Use #IRedirectTask to force the logic
* back to this task.
*/
public ITask getExitPoint();
public List<Vector2> getExits();
/** Mainly used by the encoder to understand the limit on connections */
public int getMaxExitPoints();
/** Adds a possible exit point to the split off */
public void setExitPoint(int i, ITask task);
}