diff --git a/src/reactor_sim/dashboard.py b/src/reactor_sim/dashboard.py index 15b79fd..2300ec9 100644 --- a/src/reactor_sim/dashboard.py +++ b/src/reactor_sim/dashboard.py @@ -57,6 +57,7 @@ class ReactorDashboard: DashboardKey("r", "Reset & clear state"), DashboardKey("a", "Toggle auto rod control"), DashboardKey("+/-", "Withdraw/insert rods"), + DashboardKey("1-9", "Set rods to 0.1 … 0.9 (manual)"), DashboardKey("[/]", "Adjust consumer demand −/+50 MW"), DashboardKey("s/d", "Setpoint −/+250 MW"), DashboardKey("p", "Maintain core (shutdown required)"), @@ -84,7 +85,7 @@ class ReactorDashboard: "Turbines / Grid", [ DashboardKey("t", "Toggle turbine bank"), - DashboardKey("1/2/3", "Toggle turbine units 1-3"), + DashboardKey("Shift+1/2/3", "Toggle turbine units 1-3"), DashboardKey("y/u/i", "Maintain turbine 1/2/3"), DashboardKey("c", "Toggle consumer"), ], @@ -173,8 +174,15 @@ class ReactorDashboard: elif ch in (ord("t"), ord("T")): self._queue_command(ReactorCommand(turbine_on=not self.reactor.turbine_active)) elif ord("1") <= ch <= ord("9"): - idx = ch - ord("1") - self._toggle_turbine_unit(idx) + target = (ch - ord("0")) / 10.0 + self._queue_command(ReactorCommand(rod_position=target, rod_manual=True)) + elif ch in (ord("!"), ord("@"), ord("#"), ord("$"), ord("%"), ord("^"), ord("&"), ord("*"), ord("(")): + idx = ch - ord("!") + if 0 <= idx < len(self.reactor.turbines): + self._toggle_turbine_unit(idx) + elif curses.KEY_F1 <= ch <= curses.KEY_F9: + target = (ch - curses.KEY_F1 + 1) / 10.0 + self._queue_command(ReactorCommand(rod_position=target, rod_manual=True)) elif ch in (ord("+"), ord("=")): # Insert rods (increase fraction) self._queue_command(ReactorCommand(rod_position=self._clamped_rod(constants.ROD_MANUAL_STEP)))