* Optimizations with private, params, and isEqualType
* Fixed tab being used instead of space
* Fixed tabs inserted by notepad++
* More usage of new private syntax and params
- changed a few checks for an array being empty to `_arr isEqualTo []`
rather than `count _arr == 0`
- added more uses of `private` on the same line as the variable is
declared
- added more uses of params to assign variables passed as parameters
- removed unnecessary parentheses
- removed several unnecessary variable declarations with private array
syntax
* clean up and formatting
- Children positions are calculated directly on screen space
- Saves a lot of worldToScreen, ATLtoASL, etc calls
- Selector is now a control instead of a 3D icon
- The action tree of each interaction point is parsed before drawing, pruning inactive actions
- Parent actions without statements or active children are not drawn, in order to reduce clutter
- Renamed the base menu "SelfActions" to "ACE_SelfActions"
- Limit the amount of objects the player is shown interactions with. This are the 3 nearest objects which have active action points visible on screen.
- Cull action points that are not visible, to far away, etc before checking if they are active.
- Store only one compiled menu per class
- Actions added through apis for invidual objects stored on the object separately
- Replaced the concept of uids by paths. This allows adding/removing actions inside other actions loaded from config seamlessly.
- Temporarily removed caching of nearby actions (probe). We may go back to that if needed pretty easily. This allows the player to move freely with the interaction menu opened.