@@ -0,0 +1,1758 @@
+package com.edinarobotics.utils.autonomous;%0A%0A/**%0A * An autonomous step that allows multiple substeps to be run in parallel.%0A * It simulates %0A */%0Apublic class ParallelAutonomousStepGroup extends AutonomousStep%7B%0A    private AutonomousStep%5B%5D steps;%0A    %0A    /**%0A     * Constructs a ParallelAutonomousStepGroup that will run the given steps%0A     * in parallel.%0A     * @param steps the steps to be run in parallel. %0A     */%0A    public ParallelAutonomousStepGroup(AutonomousStep%5B%5D steps)%7B%0A        this.steps = steps;%0A    %7D%0A    %0A    /**%0A     * Calls %7B@link AutonomousStep#start()%7D on all the %7B@link AutonomousStep%7D%0A     * objects contained by this ParallelAutonomousStepGroup.%0A     */%0A    public void start()%7B%0A        for(int i=0; i%3Csteps.length; i++)%7B%0A            steps%5Bi%5D.start();%0A        %7D%0A    %7D%0A    %0A    /**%0A     * Calls %7B@link AutonomousStep#run()%7D on all steps that are not yet%0A     * finished. This simulates running them in parallel.%0A     */%0A    public void run()%7B%0A        for(int i=0; i%3Csteps.length; i++)%7B%0A            if(!steps%5Bi%5D.isFinished())%7B%0A                steps%5Bi%5D.run();%0A            %7D%0A        %7D%0A    %7D%0A    %0A    /**%0A     * Calls %7B@link AutonomousStep#stop()%7D on all the steps in this%0A     * ParallelAutonomousStepGroup.%0A     */%0A    public void stop()%7B%0A        for(int i=0; i%3Csteps.length; i++)%7B%0A            steps%5Bi%5D.stop();%0A        %7D%0A    %7D%0A    %0A    /**%0A     * Returns whether or not all steps in this in ParallelAutonomousStepGroup%0A     * are finished.%0A     * @return %7B@code true%7D if all steps have finished running, %7B@code false%7D%0A     * otherwise.%0A     */%0A    public boolean isFinished()%7B%0A        boolean result = true;%0A        for(int i=0; i%3Csteps.length; i++)%7B%0A            result &= steps%5Bi%5D.isFinished();%0A        %7D%0A        return result;%0A    %7D%0A%7D%0A

Add ParallelAutonomousStepGroup to handle simultaneous autonomous steps.