Instead of reanalizing every frame which actions points should be rendered based on distance, that job is now done only 5 times per second.
The rest of the frames the action points from the last frame are rerendered..
Close#434
- 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
- Reordering of action members
- Removed full path from actions, so they can be mounted under different paths if needed
- Added api for creating actions
- Api for adding actions for objects or classes
- Submenu scale as a function of the number of children
- Added menu expansion animation to better communicate where the options come from
- Unused action point are faded as soon as the user hovers a certain action point
- 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
- 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.