Use the Tool Trees to access and modify an entity's children and its descendants through the Material, Model, or Color Tree tools, with a familiar user interface.
This addon consists of three tools:
- Color Tree,
- Model Tree, and
- Material Tree.
The key feature of these three tools is the ability to access the hierarchy of an entity and modify its colors, skin, bodygroups, or (sub)materials.
This tool sets the colors of an entity and its descendants.
This attempts to support addons that manipulate material proxies, such as
The tool also supports submaterial colouring if the Advanced Colour Tool is installed. If it is installed, upon selecting an entity, the submaterial gallery from the Material Tree will pop up, allowing you to select a submaterial to modify its colors.
Unlike the Color Tool, which requires the user to click on the entity to change colors, copy colors, or reset colors, the Color Tree requires the user to click on the entity only once. Color changes to the entity will show when the user clicks on the color mixer. In addition, the color mixer will also update itself when the entity's color changes externally (either from another user or from an external process such as Stop Motion Helper playback).
This tool sets the skin, bodygroup, or model of the entity and its descendants.
Contrary to existing solutions (Composite Bonemerge Tool "injects" the bodygroups and skins to bonemerged entity), this tool gives direct access to the bonemerged entity, allowing you to set these properties directly, with no internal changes to the entity.
This tool sets the materials or submaterials of the entity and its descendants.
Unlike the submaterial tool, which lists the paths of the submaterials to modify and requires a scrolling input for navigation, this tool instead presents a submaterial gallery for the user to select a submaterial to modify. In addition, the user can set the material of multiple submaterials at once, without the need to scroll and click to find a submaterial.
These tools have no conflicts of interests with the tools that it supports. Support for the tools above has been achieved by downloading the aforementioned addons using gmpublisher and reading their source code. These tool trees interface with the addon tools (if they are installed) by calling their functions or setting networked variables.
This tool has been tested in singleplayer. Although this tool may function in multiplayer, please expect bugs and report any that you observe in the issue tracker.
When making a pull request, make sure to confine to the style seen throughout. Try to add types for new functions or data structures. I used the default StyLua formatting style.