public void AddMetaDataForProp(string parentTypeName, string propertyName, string metadataKey, object metadataValue) { ListMetaData md = new ListMetaData(); md.a1 = parentTypeName; md.a2 = propertyName; md.a3 = metadataKey; md.o1 = metadataValue; mMetadata.Add(md); }
private static bool enter_HeaderPart <T>(this ListMetaData meta, ref List <T> list, ref bool entered, bool showLabelIfTrue = false) { int tmpEntered = entered ? 1 : -1; var ret = meta.enter_HeaderPart(ref list, ref tmpEntered, 1, showLabelIfTrue); entered = tmpEntered == 1; return(ret); }
public static bool enter_List <T>(this ListMetaData meta, ref List <T> list, ref int enteredOne, int thisOne, Func <T, T> lambda) where T : new() { var changed = false; if (meta.enter_HeaderPart(ref list, ref enteredOne, thisOne)) { meta.label.edit_List(ref list, lambda).nl(ref changed); } return(changed); }
public static bool enter_List_SO <T>(this ListMetaData meta, ref List <T> list, ref int enteredOne, int thisOne) where T : ScriptableObject { var changed = false; if (meta.enter_HeaderPart(ref list, ref enteredOne, thisOne).changes(ref changed)) { meta.edit_List_SO(ref list).nl(ref changed); } return(changed); }
public static bool enter_List_UObj <T>(this ListMetaData meta, ref List <T> list, ref int enteredOne, int thisOne, List <T> selectFrom = null) where T : UnityEngine.Object { var changed = false; if (meta.enter_HeaderPart(ref list, ref enteredOne, thisOne).changes(ref changed)) { meta.edit_List_UObj(ref list, selectFrom).nl(ref changed); } return(changed); }
public static bool enter_List <T>(this ListMetaData meta, ref List <T> list, ref int enteredOne, int thisOne) { var changed = false; if (meta.enter_HeaderPart(ref list, ref enteredOne, thisOne)) { meta.edit_List(ref list).nl(ref changed); } return(changed); }
public static bool enter_Dictionary <G, T>(this ListMetaData meta, Dictionary <G, T> dictionary, ref int enteredOne, int thisOne) { var changed = false; if (meta.label.AddCount(dictionary).enter(ref enteredOne, thisOne, false)) { meta.edit_Dictionary_Values(dictionary).nl(ref changed); } return(changed); }
static ReorderableList GetReordable <T>(this List <T> list, ListMetaData metaDatas) { ReorderableList rl; ReorderableList.TryGetValue(list, out rl); if (rl != null) { return(rl); } rl = new ReorderableList(list, typeof(T), metaDatas == null || metaDatas.allowReorder, true, false, metaDatas == null || metaDatas.allowDelete); ReorderableList.Add(list, rl); rl.drawHeaderCallback += DrawHeader; rl.drawElementCallback += DrawElement; rl.onRemoveCallback += RemoveItem; return(rl); }
public static bool conditional_enter_List <T>(this ListMetaData meta, bool canEnter, ref List <T> list, ref int enteredOne, int thisOne) { var changed = false; if (!canEnter && enteredOne == thisOne) { enteredOne = -1; } if (canEnter) { meta.enter_List(ref list, ref enteredOne, thisOne).changes(ref changed); } else { ef.isFoldedOutOrEntered = false; } return(changed); }
public static bool reorder_List <T>(List <T> l, ListMetaData metas) { _listMetaData = metas; EditorGUI.BeginChangeCheck(); if (_currentReorderedList != l) { _currentReorderedListTypes = typeof(T).TryGetDerivedClasses(); if (_currentReorderedListTypes == null) { _currentTaggedTypes = typeof(T).TryGetTaggedClasses(); if (_currentTaggedTypes != null) { _currentReorderedListTypes = _currentTaggedTypes.Types; } } else { _currentTaggedTypes = null; } _currentReorderedType = typeof(T); _currentReorderedList = l; if (metas == null) { pegi.selectedEls.Clear(); } } l.GetReordable(metas).DoLayoutList(); return(EditorGUI.EndChangeCheck()); }
private static bool enter_HeaderPart <T>(this ListMetaData meta, ref List <T> list, ref int enteredOne, int thisOne, bool showLabelIfTrue = false) { if (collectionInspector.listIsNull(ref list)) { if (enteredOne == thisOne) { enteredOne = -1; } return(false); } var entered = enteredOne == thisOne; var ret = meta.icon.enter(meta.label.AddCount(list, entered), ref enteredOne, thisOne, showLabelIfTrue, list.Count == 0 ? PEGI_Styles.ClippingText : null); if (!entered && ret) { meta.inspected = -1; } ret |= list.enter_DirectlyToElement(ref meta.inspected, ref enteredOne, thisOne); return(ret); }
public static T enter_List <T>(this ListMetaData meta, ref List <T> list, ref bool entered, TaggedTypesCfg types, ref bool changed) => meta.enter_HeaderPart(ref list, ref entered) ? meta.edit_List(ref list, types, ref changed) : default(T);
public PoolSimple(string name) { activeList = new ListMetaData(name, true, true, showAddButton: false); }
public static bool TryInspect <T>(this ListMetaData ld, ref T obj, int ind) where T : Object { var el = ld.TryGetElement(ind); return(el?.PEGI_inList_Obj(ref obj) ?? edit(ref obj)); }