BoundGamepad teleopGamepad = new BoundGamepad(new SDKGamepad(gamepad1));
BoundGamepad endgameGamepad = new BoundGamepad(new SDKGamepad(gamepad1));
Map<Layers, BoundGamepad> mercurialGamepadMap = new HashMap<Layers, BoundGamepad>(){{
put(Layers.TELEOP, teleopGamepad);
put(Layers.ENDGAME, endgameGamepad);
}};
MapLayeringSystem<Layers, BoundDoubleSupplier, BoundBooleanSupplier, BoundGamepad> enumLayeringSystem = new MapLayeringSystem<>(Layers.TELEOP, pasteurizedGamepadMap);
// LayeredGamepad takes a LayeringSystem and makes a gamepad from it
LayeredGamepad<BoundDoubleSupplier, BoundBooleanSupplier, BoundGamepad> layeredGamepad = new LayeredGamepad<>(enumLayeringSystem);
// now, modify teleop and endgame gamepads,
// then bind commands to them individually
// don't bind commands to the layered gamepad,
// as this will not do what you expect