@@ -16,7 +16,10 @@ public abstract class SelectableOpMode extends OpMode {
1616
1717 public SelectableOpMode (String name , Consumer <SelectScope <Supplier <OpMode >>> opModes ) {
1818 selector = Selector .create (name , opModes , MESSAGE );
19- selector .onSelect (opModeSupplier -> selectedOpMode = opModeSupplier .get ());
19+ selector .onSelect (opModeSupplier -> {
20+ selectedOpMode = opModeSupplier .get ();
21+ selectedOpMode .init ();
22+ });
2023 }
2124
2225 @ Override
@@ -25,14 +28,16 @@ public final void init() {
2528
2629 @ Override
2730 public final void init_loop () {
28- if (gamepad1 .dpad_up || gamepad2 .dpad_up ) selector .decrementSelected ();
29- else if (gamepad1 .dpad_down || gamepad2 .dpad_down ) selector .incrementSelected ();
30- else if (gamepad1 .right_bumper || gamepad2 .right_bumper ) selector .select ();
31- else if (gamepad1 .left_bumper || gamepad2 .left_bumper ) selector .goBack ();
32-
33- for (String line : selector .getLines ()) {
34- telemetry .addLine (line );
35- }
31+ if (selectedOpMode == null ) {
32+ if (gamepad1 .dpad_up || gamepad2 .dpad_up ) selector .decrementSelected ();
33+ else if (gamepad1 .dpad_down || gamepad2 .dpad_down ) selector .incrementSelected ();
34+ else if (gamepad1 .right_bumper || gamepad2 .right_bumper ) selector .select ();
35+ else if (gamepad1 .left_bumper || gamepad2 .left_bumper ) selector .goBack ();
36+
37+ for (String line : selector .getLines ()) {
38+ telemetry .addLine (line );
39+ }
40+ } else selectedOpMode .init_loop ();
3641 }
3742
3843 @ Override
0 commit comments