public void OnEnable() { inited = false; if (!flagsTex) { flagsTex = (Texture2D)Resources.Load("EAdventureData/img/icons/flag16", typeof(Texture2D)); } if (!varTex) { varTex = (Texture2D)Resources.Load("EAdventureData/img/icons/vars", typeof(Texture2D)); } variablesAndFlagsList = new ColumnList(new List <int>(), typeof(int)) { RequestRepaint = Repaint, Columns = new List <ColumnList.Column>() { new ColumnList.Column(), new ColumnList.Column() { SizeOptions = new GUILayoutOption[] { GUILayout.Width(80) } } }, drawCell = (rect, row, column, isActive, isFocused) => { // The list is only storing indexes var index = (int)variablesAndFlagsList.list[row]; var elem = ""; switch (openedWindow) { case WindowType.FLAGS: elem = varFlagSummary.getFlag(index); break; case WindowType.VARS: elem = varFlagSummary.getVar(index); break; } switch (column) { case 0: EditorGUI.LabelField(rect, elem); break; case 1: object value = 0; if (Application.isPlaying) { switch (openedWindow) { case WindowType.FLAGS: value = Game.Instance.GameState.CheckFlag(elem) == 1 ? "inactive" : "active"; break; case WindowType.VARS: value = Game.Instance.GameState.GetVariable(elem); break; } } else { switch (openedWindow) { case WindowType.FLAGS: value = varFlagSummary.getFlagReferences(index); break; case WindowType.VARS: value = varFlagSummary.getVarReferences(index); break; } } EditorGUI.LabelField(rect, value.ToString()); break; } }, onRemoveCallback = OnDeleteClicked, onAddCallback = OnAddCliked, draggable = false }; }
public void OnEnable() { inited = false; if (!flagsTex) { flagsTex = (Texture2D)Resources.Load("EAdventureData/img/icons/flag16", typeof(Texture2D)); } if (!varTex) { varTex = (Texture2D)Resources.Load("EAdventureData/img/icons/vars", typeof(Texture2D)); } variablesAndFlagsList = new ColumnList(new List <int>(), typeof(int)) { RequestRepaint = Repaint, Columns = new List <ColumnList.Column>() { new ColumnList.Column(), new ColumnList.Column() { SizeOptions = new GUILayoutOption[] { GUILayout.Width(80) } } }, drawCell = (rect, row, column, isActive, isFocused) => { // The list is only storing indexes var index = (int)variablesAndFlagsList.list[row]; var elem = ""; switch (openedWindow) { case WindowType.FLAGS: elem = varFlagSummary.getFlag(index); break; case WindowType.VARS: elem = varFlagSummary.getVar(index); break; } switch (column) { case 0: if (Application.isPlaying || !isActive) { EditorGUI.LabelField(rect, elem); } else { EditorGUI.BeginChangeCheck(); var newName = EditorGUI.DelayedTextField(rect, elem); if (EditorGUI.EndChangeCheck()) { if (varFlagSummary.getVarsAndFlags().Any(s => s.Equals(newName, StringComparison.InvariantCultureIgnoreCase))) { Controller.Instance.ShowErrorDialog("VarFlag.Error.NameIsUsed.Title".Traslate(), "VarFlag.Error.NameIsUsed.Message".Traslate()); } else { EditorUtility.DisplayDialog("WIP", "Rename is WIP", "Ok"); } } } break; case 1: object value = 0; if (Application.isPlaying) { switch (openedWindow) { case WindowType.FLAGS: value = Game.Instance.GameState.CheckFlag(elem) == 1 ? "inactive" : "active"; break; case WindowType.VARS: value = Game.Instance.GameState.GetVariable(elem); break; } } else { switch (openedWindow) { case WindowType.FLAGS: value = varFlagSummary.getFlagReferences(index); break; case WindowType.VARS: value = varFlagSummary.getVarReferences(index); break; } } EditorGUI.LabelField(rect, value.ToString()); break; } }, onRemoveCallback = OnDeleteClicked, onAddCallback = OnAddCliked, draggable = false }; }