void DisplayEditMainArea() { try { currentDatabase[selectedEvent].Key = EditorGUILayout.TextField(new GUIContent("Key: "), currentDatabase[selectedEvent].Key); _optionsScrollPos = EditorGUILayout.BeginScrollView(_optionsScrollPos, "box", GUILayout.ExpandHeight(true)); EditorStyles.textField.wordWrap = true; currentDatabase[selectedEvent].Text = EditorGUILayout.TextArea(currentDatabase[selectedEvent].Text, GUILayout.ExpandHeight(true)); EditorGUILayout.Space(); EditorGUILayout.PrefixLabel("Image: "); currentDatabase[selectedEvent].ImageId = EditorGUILayout.TextField(currentDatabase[selectedEvent].ImageId); EditorGUILayout.Space(); EditorGUILayout.PrefixLabel("Sounds: "); var si = currentDatabase[selectedEvent].SoundIds; var sv = currentDatabase[selectedEvent].SoundVolumes; for (int i = 0; i < si.Count; i++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { si.RemoveAt(i); EditorUtility.SetDirty(currentDatabase); return; } si[i] = GUILayout.TextField(si[i]); EditorGUILayout.EndHorizontal(); sv[i] = EditorGUILayout.Slider("Volume", sv[i], 0, 1); } if (GUILayout.Button("+", GUILayout.Width(100))) { si.Add(""); } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.PrefixLabel("Flags: "); var f1 = currentDatabase[selectedEvent].Flags; for (int i = 0; i < f1.Count; i++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { f1.RemoveAt(i); EditorUtility.SetDirty(currentDatabase); return; } f1[i] = GUILayout.TextField(f1[i]); EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("+", GUILayout.Width(100))) { currentDatabase[selectedEvent].Flags.Add(""); } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.PrefixLabel("Clear Flags: "); var cf = currentDatabase[selectedEvent].ClearFlags; for (int i = 0; i < cf.Count; i++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { cf.RemoveAt(i); EditorUtility.SetDirty(currentDatabase); return; } cf[i] = GUILayout.TextField(cf[i]); EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("+", GUILayout.Width(100))) { currentDatabase[selectedEvent].ClearFlags.Add(""); } EditorGUILayout.Space(); EditorGUILayout.PrefixLabel("Options:"); var o = currentDatabase[selectedEvent].Options; for (int i = 0; i < o.Count; i++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { o.RemoveAt(i); EditorUtility.SetDirty(currentDatabase); return; } o[i].Text = GUILayout.TextField(o[i].Text); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Targets:"); EditorGUILayout.BeginVertical(); var t = o[i].Targets; for (int j = 0; j < t.Count; j++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { t.RemoveAt(j); EditorUtility.SetDirty(currentDatabase); return; } t[j] = GUILayout.TextField(t[j]); if (GUILayout.Button("→", GUILayout.Width(25))) { selectedEvent = currentDatabase.IndexOf(t[j]); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("+", GUILayout.Width(100))) { o[i].Targets.Add(""); } EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Required Flags:"); EditorGUILayout.BeginVertical(); var rf = o[i].RequiredFlags; for (int j = 0; j < rf.Count; j++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { rf.RemoveAt(j); EditorUtility.SetDirty(currentDatabase); return; } rf[j] = GUILayout.TextField(rf[j]); if (GUILayout.Button("→", GUILayout.Width(25))) { selectedEvent = currentDatabase.IndexOf(rf[j]); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("+", GUILayout.Width(100))) { o[i].RequiredFlags.Add(""); } EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Not Allowed Flags:"); EditorGUILayout.BeginVertical(); var nf = o[i].NotAllowedFlags; for (int j = 0; j < nf.Count; j++) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("-", GUILayout.Width(25))) { nf.RemoveAt(j); EditorUtility.SetDirty(currentDatabase); return; } nf[j] = GUILayout.TextField(nf[j]); if (GUILayout.Button("→", GUILayout.Width(25))) { selectedEvent = currentDatabase.IndexOf(nf[j]); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("+", GUILayout.Width(100))) { o[i].NotAllowedFlags.Add(""); } EditorGUILayout.Space(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("+", GUILayout.Width(100))) { o.Add(new EventOption()); } EditorGUILayout.EndScrollView(); } catch (Exception exc) { Debug.LogError(exc, this); state = State.BLANK; } }