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