package com.edinarobotics.zephyr.autonomous;

import com.edinarobotics.utils.autonomous.AutonomousStep;
import com.edinarobotics.zephyr.Zephyr;
import com.edinarobotics.zephyr.parts.CollectorComponents;

/**
 * An autonomous step that can be used to control the internal conveyor belt
 * on Zephyr. This step can be used to load balls into the shooter for firing.
 */
public class SetConveyorStep extends AutonomousStep{
    private boolean conveyorOn;
    private Zephyr robot;
    
    /**
     * Constructs a new SetConveyorStep that sets the internal conveyor to the
     * given state, {@code conveyorOn}.
     * @param conveyorOn The state to which the conveyor will be set.
     * {@code true} activates the conveyor {@code false} stops it.
     * @param robot The {@link Zephyr} object that is used to control the
     * conveyor.
     */
    public SetConveyorStep(boolean conveyorOn, Zephyr robot){
        this.conveyorOn = conveyorOn;
        this.robot = robot;
    }
    
    /**
     * Sets the conveyor to the requested state, {@code conveyorOn}.
     */
    public void start(){
        robot.convMove = (conveyorOn?CollectorComponents.CONVEYOR_UP:CollectorComponents.CONVEYOR_STOP);
        robot.mechanismSet();
    }
    
    /**
     * Always returns {@code true}. This step is always done.
     * @return {@code true}.
     */
    public boolean isFinished(){
        return true;
    }
}

@@ -426,23 +426,19 @@
 private 
-boolean
+int
  conveyo
@@ -434,26 +434,29 @@
 int conveyor
-On
+State
 ;%0A    privat
@@ -913,17 +913,18 @@
     this
-.
+((
 conveyor
@@ -929,21 +929,588 @@
 orOn
- = conveyorOn
+?CollectorComponents.CONVEYOR_UP:CollectorComponents.CONVEYOR_STOP), robot);%0A    %7D%0A    %0A    /**%0A     * Constructs a new SetConveyorStep that sets the internal conveyor to the%0A     * given state, %7B@code conveyorState%7D.%0A     * @param conveyorState The state to which the conveyor will be set.%0A     * One of: %7B@link CollectorComponents#CONVEYOR_DOWN%7D,%0A     * %7B@link CollectorComponents#CONVEYOR_UP%7D or%0A     * %7B@link CollectorComponents#CONVEYOR_STOP%7D%0A     * @param robot %0A     */%0A    public SetConveyorStep(int conveyorState, Zephyr robot)%7B%0A        this.conveyorState = conveyorState
 ;%0A  
@@ -1681,25 +1681,24 @@
 vMove = 
-(
 conveyor
 On?Colle
@@ -1693,77 +1693,13 @@
 eyor
-On?CollectorComponents.CONVEYOR_UP:CollectorComponents.CONVEYOR_STOP)
+State
 ;%0A  

Change SetConveyorStep to allow reversing the collector.