void AddControl <T1>(TextInputBaseField <T1> field, NodeSlot slot)
 {
     if (slot is IHasValue <T1> value)
     {
         field.value = value.value;
     }
     field.RegisterValueChangedCallback(OnValueChange);
     Add(field);
 }
 private TextInputBaseField <T> AddControl <T>(AbstractNode node, TextInputBaseField <T> field, ReflectionProperty property)
 {
     field.value = (T)property.GetValue(node);
     field.RegisterValueChangedCallback(e =>
     {
         node.owner.owner.RegisterCompleteObjectUndo(typeof(T).Name + " Change");
         property.SetValue(node, e.newValue);
         node.Dirty(ModificationScope.Node);
     });
     return(field);
 }