@@ -0,0 +1,1171 @@
+package com.edinarobotics.zephyr.autonomous;%0A%0Aimport com.edinarobotics.utils.autonomous.*;%0Aimport com.edinarobotics.zephyr.Zephyr;%0A%0A/**%0A *%0A */%0Apublic class AutonomousStepFactory %7B%0A    private Zephyr robot;%0A    %0A    public AutonomousStepFactory(Zephyr robot)%7B%0A        this.robot = robot;%0A    %7D%0A    %0A    public AutonomousStep getShooterFireStep(double shooterSpeed, int numShots)%7B%0A        //Steps to bring the piston up and down%0A        AutonomousStep%5B%5D fireSteps = new AutonomousStep%5B4%5D;%0A        fireSteps%5B0%5D = new ShooterPistonControlStep(true, robot);%0A        fireSteps%5B1%5D = new IdleWaitStep(0.5, robot);%0A        fireSteps%5B2%5D = new ShooterPistonControlStep(false, robot);%0A        fireSteps%5B3%5D = new IdleWaitStep(0.5, robot);%0A        %0A        AutonomousStep%5B%5D steps = new AutonomousStep%5B3%5D;%0A        //Start the shooter%0A        steps%5B0%5D = new SetShooterSpeedStep(shooterSpeed, robot);%0A        //Fire the piston several times%0A        steps%5B1%5D = new ForLoopStep(new SequentialAutonomousStepGroup(fireSteps), numShots);%0A        //Stop the shooter%0A        steps%5B2%5D = new SetShooterSpeedStep(0, robot);%0A        %0A        return new SequentialAutonomousStepGroup(steps);%0A    %7D%0A%7D%0A

Add AutonomousStepFactory to create larger AutonomousStep objects