public static DataProvider CreateDataprovider(Type t, string ident, bool isSetter) { plyEdUtil.CheckPath(BloxEdGlobal.ProvidersPath); string str = plyEdUtil.GenerateUniqueFileGUID("", BloxEdGlobal.ProvidersPath, ".asset"); DataProvider dataProvider = (DataProvider)plyEdUtil.LoadOrCreateAsset(t, BloxEdGlobal.ProvidersPath + str + ".asset", false); dataProvider.ident = ident; dataProvider.isSetter = isSetter; dataProvider.OnCreated(); EditorUtility.SetDirty(dataProvider); AssetDatabase.SaveAssets(); if (!string.IsNullOrEmpty(ident)) { DataProviderEd.LoadDefinedProviders(); if (isSetter) { DataProviderEd.setterProviders.Add(dataProvider); } else { DataProviderEd.getterProviders.Add(dataProvider); } DataProviderEd.UpdateProviderLabels(); } return(dataProvider); }
public static void DataBindingField(GUIContent label, DataBinding bind, UnityEngine.Object bindOwner, bool isForSetter, Type[] limitTypes = null) { DataProviderEd.LoadDefinedProviders(); int selectedIndex = (!((UnityEngine.Object)bind.dataprovider == (UnityEngine.Object)null)) ? (isForSetter ? DataProviderEd.setterProviders.IndexOf(bind.dataprovider) : DataProviderEd.getterProviders.IndexOf(bind.dataprovider)) : 0; EditorGUILayout.BeginHorizontal(); if ((UnityEngine.Object)bind.dataprovider != (UnityEngine.Object)null && string.IsNullOrEmpty(bind.dataprovider.ident)) { if (label == null) { if (GUILayout.Button(DataProviderEd.GetDataBindingLabel(bind.dataprovider), plyEdGUI.Styles.MiniButtonLeft)) { DataBindingWindow.Show_DataBindingWindow(bind, bindOwner, isForSetter, limitTypes); } } else if (plyEdGUI.LabelButton(label, DataProviderEd.GetDataBindingLabel(bind.dataprovider), plyEdGUI.Styles.MiniButtonLeft)) { DataBindingWindow.Show_DataBindingWindow(bind, bindOwner, isForSetter, limitTypes); } } else { EditorGUI.BeginChangeCheck(); selectedIndex = ((label != null) ? EditorGUILayout.Popup(label, selectedIndex, isForSetter ? DataProviderEd.setterProviderLabels : DataProviderEd.getterProviderLabels, plyEdGUI.Styles.MiniButtonLeft) : EditorGUILayout.Popup(selectedIndex, isForSetter ? DataProviderEd.setterProviderLabels : DataProviderEd.getterProviderLabels, plyEdGUI.Styles.MiniButtonLeft)); if (EditorGUI.EndChangeCheck()) { bind.dataprovider = (isForSetter ? DataProviderEd.setterProviders[selectedIndex] : DataProviderEd.getterProviders[selectedIndex]); } } if (GUILayout.Button(DataProviderEd.GC_EdButton, plyEdGUI.Styles.MiniButtonRight, GUILayout.Width(25f))) { DataBindingWindow.Show_DataBindingWindow(bind, bindOwner, isForSetter, limitTypes); } EditorGUILayout.EndHorizontal(); }
public static void UpdateProviderLabels() { DataProviderEd.LoadDefinedProviders(); DataProviderEd.getterProviders.Sort(delegate(DataProvider a, DataProvider b) { if (!((UnityEngine.Object)a == (UnityEngine.Object)null)) { if (!((UnityEngine.Object)b == (UnityEngine.Object)null)) { return(a.ident.CompareTo(b.ident)); } return(1); } return(-1); }); DataProviderEd.setterProviders.Sort(delegate(DataProvider a, DataProvider b) { if (!((UnityEngine.Object)a == (UnityEngine.Object)null)) { if (!((UnityEngine.Object)b == (UnityEngine.Object)null)) { return(a.ident.CompareTo(b.ident)); } return(1); } return(-1); }); DataProviderEd.getterProviderLabels = new GUIContent[DataProviderEd.getterProviders.Count]; DataProviderEd.setterProviderLabels = new GUIContent[DataProviderEd.setterProviders.Count]; for (int i = 0; i < DataProviderEd.getterProviders.Count; i++) { if ((UnityEngine.Object)DataProviderEd.getterProviders[i] == (UnityEngine.Object)null) { DataProviderEd.getterProviderLabels[i] = new GUIContent("None"); } else { DataProviderEd.getterProviderLabels[i] = new GUIContent(DataProviderEd.getterProviders[i].ident); } } for (int j = 0; j < DataProviderEd.setterProviders.Count; j++) { if ((UnityEngine.Object)DataProviderEd.setterProviders[j] == (UnityEngine.Object)null) { DataProviderEd.setterProviderLabels[j] = new GUIContent("None"); } else { DataProviderEd.setterProviderLabels[j] = new GUIContent(DataProviderEd.setterProviders[j].ident); } } }
private bool NameIsUniqueInDefined(string s) { DataProviderEd.LoadDefinedProviders(); for (int i = 0; i < DataProviderEd.getterProviders.Count; i++) { if (!((UnityEngine.Object)DataProviderEd.getterProviders[i] == (UnityEngine.Object)null) && s.Equals(DataProviderEd.getterProviders[i].ident)) { return(false); } } for (int j = 0; j < DataProviderEd.setterProviders.Count; j++) { if (!((UnityEngine.Object)DataProviderEd.setterProviders[j] == (UnityEngine.Object)null) && s.Equals(DataProviderEd.setterProviders[j].ident)) { return(false); } } return(true); }
public static void DestroyDataprovider(DataProvider p) { if (!((UnityEngine.Object)p == (UnityEngine.Object)null)) { DataProviderEd.LoadDefinedProviders(); List <DataProvider> dataProvidersForDestruction = p.GetDataProvidersForDestruction(); dataProvidersForDestruction.Add(p); for (int i = 0; i < dataProvidersForDestruction.Count; i++) { if (dataProvidersForDestruction[i].isSetter) { DataProviderEd.setterProviders.Remove(dataProvidersForDestruction[i]); } else { DataProviderEd.getterProviders.Remove(dataProvidersForDestruction[i]); } plyEdUtil.DeleteAsset(dataProvidersForDestruction[i]); } DataProviderEd.UpdateProviderLabels(); } }