Update flatbuffers to match shooter logic

Gives more info about the state of the turret and sets up things needed
to make the turret not move until we're loaded.

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I34cd819bd076a2535acbbe4440e8d990c5554fb4
diff --git a/y2024/control_loops/superstructure/superstructure_goal.fbs b/y2024/control_loops/superstructure/superstructure_goal.fbs
index bb7b706..6ec954f 100644
--- a/y2024/control_loops/superstructure/superstructure_goal.fbs
+++ b/y2024/control_loops/superstructure/superstructure_goal.fbs
@@ -35,11 +35,25 @@
     RETRACT = 2,
 }
 
+table ShooterGoal {
+    catapult_goal:frc971.control_loops.catapult.CatapultGoal (id: 0);
+    fire: bool (id: 1);
+    // If true we ignore the other provided positions
+    auto_aim: bool (id: 2);
+
+    // Position for the turret when we aren't auto aiming
+    turret_position: frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 3);
+
+    // Position for the altitude when we aren't auto aiming
+    altitude_position: frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 4);
+}
+
 table Goal {
     intake_roller_goal:IntakeRollerGoal (id: 0);
     intake_pivot_goal:IntakePivotGoal (id: 1);
     catapult_goal:frc971.control_loops.catapult.CatapultGoal (id: 2);
     transfer_roller_goal:TransferRollerGoal (id: 3);
     climber_goal:ClimberGoal (id: 4);
+    shooter_goal:ShooterGoal (id: 5);
 }
 root_type Goal;
diff --git a/y2024/control_loops/superstructure/superstructure_position.fbs b/y2024/control_loops/superstructure/superstructure_position.fbs
index cd12da0..6f253b0 100644
--- a/y2024/control_loops/superstructure/superstructure_position.fbs
+++ b/y2024/control_loops/superstructure/superstructure_position.fbs
@@ -22,6 +22,9 @@
     // Values of the encoder and potentiometer at the climber.
     // Zero is fully retracted, positive is extended upward.
     climber:frc971.PotAndAbsolutePosition (id: 5);
+
+    // True if there is a game piece in the catapult
+    catapult_beam_break:bool (id: 6);
 }
 
 root_type Position;
diff --git a/y2024/control_loops/superstructure/superstructure_status.fbs b/y2024/control_loops/superstructure/superstructure_status.fbs
index cd727ac..40b792f 100644
--- a/y2024/control_loops/superstructure/superstructure_status.fbs
+++ b/y2024/control_loops/superstructure/superstructure_status.fbs
@@ -10,6 +10,15 @@
   INTAKING = 2,
 }
 
+enum CatapultStatus: ubyte {
+    // Means we are waiting for a game piece
+    IDLE = 0,
+    // Means we have a game piece
+    LOADED = 1,
+    // Means we are firing a game piece
+    FIRING = 2,
+}
+
 table ShooterStatus {
   // Estimated angle and angular velocitiy of the turret.
   turret_state:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 0);
@@ -19,6 +28,8 @@
 
   // Estimated angle and angular velocitiy of the altitude.
   altitude_state:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 2);
+
+  catapult_status: CatapultStatus (id: 3);
 }
 
 // Contains status of transfer rollers