@@ -17,36 +17,48 @@ public abstract class SelectableOpMode extends OpMode {
1717 public SelectableOpMode (String name , Consumer <SelectScope <Supplier <OpMode >>> opModes ) {
1818 selector = Selector .create (name , opModes , MESSAGE );
1919 selector .onSelect (opModeSupplier -> {
20+ onSelect ();
2021 selectedOpMode = opModeSupplier .get ();
22+ selectedOpMode .gamepad1 = gamepad1 ;
23+ selectedOpMode .gamepad2 = gamepad2 ;
24+ selectedOpMode .telemetry = telemetry ;
25+ selectedOpMode .hardwareMap = hardwareMap ;
2126 selectedOpMode .init ();
2227 });
2328 }
2429
30+ protected void onSelect () {
31+ }
32+
33+ protected void onLog (String line ) {
34+ }
35+
2536 @ Override
2637 public final void init () {
2738 }
2839
2940 @ Override
3041 public final void init_loop () {
3142 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 ();
43+ if (gamepad1 .dpadUpWasPressed () || gamepad2 .dpadUpWasPressed ())
44+ selector .decrementSelected ();
45+ else if (gamepad1 .dpadDownWasPressed () || gamepad2 .dpadDownWasPressed ())
46+ selector .incrementSelected ();
47+ else if (gamepad1 .rightBumperWasPressed () || gamepad2 .rightBumperWasPressed ())
48+ selector .select ();
49+ else if (gamepad1 .leftBumperWasPressed () || gamepad2 .leftBumperWasPressed ())
50+ selector .goBack ();
3651
3752 for (String line : selector .getLines ()) {
3853 telemetry .addLine (line );
54+ onLog (line );
3955 }
4056 } else selectedOpMode .init_loop ();
4157 }
4258
4359 @ Override
44- public void start () {
60+ public final void start () {
4561 if (selectedOpMode == null ) throw new RuntimeException ("No OpMode selected!" );
46- selectedOpMode .gamepad1 = gamepad1 ;
47- selectedOpMode .gamepad2 = gamepad2 ;
48- selectedOpMode .telemetry = telemetry ;
49- selectedOpMode .hardwareMap = hardwareMap ;
5062 selectedOpMode .start ();
5163 }
5264
0 commit comments