gizmodes 
You can imagine a /datum/gizmodes as remote and a TV The mode_controles is the remote. Maybe there's 9 buttons for 1-9, and pressing the buttons just goes to that channel! Maybe there's 10 buttons, 1-9 for selecting a channel and an extra for going to the selected channel Or maybe there's two buttons, one that cycles to the next number and one that then goes to that channel] The giz_pulse is essentually the TV. Generally the functioning of the TV is themed, happy image :) or sad image :(
Vars | |
| active_gizmodes | Instantiated active operating modes/gizpulses |
|---|---|
| cooldown_time | Time between pulses |
| current_active | The currently selected gizpulse |
| guaranteed_active_gizmodes | Guaranted operating modes/gizpulses types. use GIZMO_PICK_ONE with an associated list for more bespoke guaranteed picking |
| interface | Our paarent gizmo interface |
| max_modes | Max modes from possible_active_modes |
| min_modes | Min modes from possible_active_modes |
| mode_pulse | The selected mode controle |
| mode_pulses | Mode controles add signals that decide how gizpulses are activated Such as cycle to the next gizpulse, directly activate a gizpulse, or select a specific gizpulse Select mode, for example, adds a callback for every gizpulse + 1 for activating that Cycle mode activate adds only one callback, which cycles to the next one and then activates it |
| possible_active_modes | Random gizpulses we can have. PICKWEIGHTED SO GIVE IT A VALUE (/datum/gizpulse/milk_person = 1) |
Procs | |
| activate | Activate this gizmode which in turn activates the active gizpulse (you following me here?) |
| generate_modes | Pick the paths to generate and instantiate them |
Var Details
active_gizmodes 
Instantiated active operating modes/gizpulses
cooldown_time 
Time between pulses
current_active 
The currently selected gizpulse
guaranteed_active_gizmodes 
Guaranted operating modes/gizpulses types. use GIZMO_PICK_ONE with an associated list for more bespoke guaranteed picking
interface 
Our paarent gizmo interface
max_modes 
Max modes from possible_active_modes
min_modes 
Min modes from possible_active_modes
mode_pulse 
The selected mode controle
mode_pulses 
Mode controles add signals that decide how gizpulses are activated Such as cycle to the next gizpulse, directly activate a gizpulse, or select a specific gizpulse Select mode, for example, adds a callback for every gizpulse + 1 for activating that Cycle mode activate adds only one callback, which cycles to the next one and then activates it
possible_active_modes 
Random gizpulses we can have. PICKWEIGHTED SO GIVE IT A VALUE (/datum/gizpulse/milk_person = 1)
Proc Details
activate
Activate this gizmode which in turn activates the active gizpulse (you following me here?)
generate_modes
Pick the paths to generate and instantiate them