Utility class for the in game menu. Provides functionality to retrieve the bounds of the info,
information pertaining to each menu action row and what entities are currently being
hovered over, as well as functionality to open/close the menu.
We as players only see 2 of the menu components when playing the game - The menu actions
and the options/targets. Internally, there is a lot more data. Each menu action is paired
with an opcode, and 3 arguments. The opcode is used as an identifier to know which type of
action it is - See
. The 3 arguments are used to identify the target.
Not all arguments are required to be used, in some cases an action requires 0 arguments,
sometimes 1 or 2 only. For entities on the scene graph, the other arguments generally contain
the entity id, along with its regional x and y position. For components, the other arguments
contain the component uid, subcomponent index and menu action index