For certain modding scenarios, one might want to give the user different selection options for choosing one or multiple types of implementation or configuration. They need to share a common base class in order to have more than one option for the attribute. This, however, leads to the problem that, the base class (even if it's just acting as an interface) is currently always selectable. This can have undesirable effects.
class EL_TestComponentClass : ScriptComponentClass { } class EL_TestComponent : ScriptComponent { [Attribute(desc: "Filtered selection test")] ref array<ref EL_SelectionBase> m_aSelections; } [BaseContainerProps(visible: false, insertable: false)] class EL_SelectionBase { } [BaseContainerProps()] class EL_SelectionEntryA : EL_SelectionBase { } [BaseContainerProps()] class EL_SelectionEntryB : EL_SelectionBase { }
So what I would like to have is an option to hide a BaseContainerProps decorated class from the selection. In the example above, only EL_SelectionEntryA and EL_SelectionEntryB should be select-able.
I was hoping that the BaseContainerProps parameters visible and or insertable would have control over this, but they seem to be for unrelated things. But maybe this could be a viable solution how to implement this change. Simply check in the workbench if the decorations have them turned off and if so exclude them from the dropdown list.