-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTriggerButton.java
50 lines (39 loc) · 1.32 KB
/
TriggerButton.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package frc.robot.commons;
import java.util.function.DoubleSupplier;
public class TriggerButton {
private final DoubleSupplier trigger;
private boolean pressed = false;
public TriggerButton(DoubleSupplier trigger) {
this.trigger = trigger;
}
// Returns whether the trigger was pressed
public boolean whenPressed() {
boolean rPressed = pressed;
pressed = false;
return rPressed;
}
// Returns whether the trigger was pressed
public boolean whilePressed() {
boolean rPressed = pressed;
pressed = false;
return rPressed;
}
// Returns the current value of the trigger if its being pressed
public double whileTrue(double deadzone) {
double triggerVal = trigger.getAsDouble();
if (triggerVal < deadzone) return 0;
else return triggerVal;
}
// Returns the current value of the trigger if its being pressed
public double whenTrue(double deadzone) {
double triggerVal = trigger.getAsDouble();
if (triggerVal < deadzone) return 0;
else return triggerVal;
}
/** This method must be called periodically for the trigger to work as intended */
public void onLoop() {
if (!pressed && trigger.getAsDouble() > 0.1) {
pressed = true;
}
}
}