TrackFlow Pro Documentation 1
Generate roller coasters, railroads, conveyors and more with a physics aware spline and meshing system.
Loading...
Searching...
No Matches
TrackFlowPro.Editor.SerializeReferenceListField Class Reference

Generic [SerializeReference] list UI for polymorphic managed objects. More...

Public Member Functions

 SerializeReferenceListField (SerializedProperty listProperty, Type baseType, string header="Constraints")

Private Member Functions

VisualElement MakeItem ()
void BindItem (VisualElement row, int index)
void ShowAddMenu ()
void AddOfType (Type typeToCreate)
void OnRemoveClicked ()
void OnItemsRemoved (IEnumerable< int > _)
List< int > Indices ()
void Rebuild (bool selectLast=false)
List< Type > GetConcreteTypes ()

Private Attributes

readonly SerializedProperty _listProp
readonly Type _baseType
readonly ListView _listView
readonly Button _addButton
readonly Button _removeButton

Detailed Description

Generic [SerializeReference] list UI for polymorphic managed objects.

  • Adds new items by selecting a derived type from a GenericMenu and setting managedReferenceValue
  • Lets per-type PropertyDrawers render the body
  • Keeps itemsSource in sync with the array size

Constructor & Destructor Documentation

◆ SerializeReferenceListField()

TrackFlowPro.Editor.SerializeReferenceListField.SerializeReferenceListField ( SerializedProperty listProperty,
Type baseType,
string header = "Constraints" )

Member Function Documentation

◆ AddOfType()

void TrackFlowPro.Editor.SerializeReferenceListField.AddOfType ( Type typeToCreate)
private

◆ BindItem()

void TrackFlowPro.Editor.SerializeReferenceListField.BindItem ( VisualElement row,
int index )
private

◆ GetConcreteTypes()

List< Type > TrackFlowPro.Editor.SerializeReferenceListField.GetConcreteTypes ( )
private

◆ Indices()

List< int > TrackFlowPro.Editor.SerializeReferenceListField.Indices ( )
private

◆ MakeItem()

VisualElement TrackFlowPro.Editor.SerializeReferenceListField.MakeItem ( )
private

◆ OnItemsRemoved()

void TrackFlowPro.Editor.SerializeReferenceListField.OnItemsRemoved ( IEnumerable< int > _)
private

◆ OnRemoveClicked()

void TrackFlowPro.Editor.SerializeReferenceListField.OnRemoveClicked ( )
private

◆ Rebuild()

void TrackFlowPro.Editor.SerializeReferenceListField.Rebuild ( bool selectLast = false)
private

◆ ShowAddMenu()

void TrackFlowPro.Editor.SerializeReferenceListField.ShowAddMenu ( )
private

Member Data Documentation

◆ _addButton

readonly Button TrackFlowPro.Editor.SerializeReferenceListField._addButton
private

◆ _baseType

readonly Type TrackFlowPro.Editor.SerializeReferenceListField._baseType
private

◆ _listProp

readonly SerializedProperty TrackFlowPro.Editor.SerializeReferenceListField._listProp
private

◆ _listView

readonly ListView TrackFlowPro.Editor.SerializeReferenceListField._listView
private

◆ _removeButton

readonly Button TrackFlowPro.Editor.SerializeReferenceListField._removeButton
private

The documentation for this class was generated from the following file: