public vItemAttribute GetItemAttribute(vItemAttributes attribute) { if (attributes != null) { return(attributes.Find(_attribute => _attribute.name == attribute)); } return(null); }
public static void CreateWindow() { if (instance == null) { var window = vItemEnumsWindow.GetWindow <vItemEnumsWindow>("Item Enums", true); instance = window; window.skin = Resources.Load("vSkin") as GUISkin; #region Get all vItemType values of current Enum try { window._itemTypeNames = Enum.GetNames(typeof(vItemType)).vToList(); for (int i = 0; i < window._itemTypeNames.Count; i++) { vItemType att = (vItemType)Enum.Parse(typeof(vItemType), (window._itemTypeNames[i])); window._itemTypeEnumFormats.Add(att.DisplayFormat()); } } catch { } #endregion #region Get all vItemAttributes values of current Enum try { window._itemAttributeNames = Enum.GetNames(typeof(vItemAttributes)).vToList(); for (int i = 0; i < window._itemAttributeNames.Count; i++) { vItemAttributes att = (vItemAttributes)Enum.Parse(typeof(vItemAttributes), (window._itemAttributeNames[i])); window._itemAttributesEnumFormats.Add(att.DisplayFormat()); } } catch { } #endregion window.datas = Resources.LoadAll <vItemEnumsList>(""); for (int i = 0; i < window.datas.Length; i++) { window.itemEnumEditorList.Add(DynamicEnum.vItemEnumsListEditor.CreateEditor(window.datas[i]) as DynamicEnum.vItemEnumsListEditor); } window.minSize = new Vector2(460, 600); } }
void DrawAttributes() { try { GUILayout.BeginVertical("box"); GUILayout.Box("Attributes", GUILayout.ExpandWidth(true)); EditorGUILayout.Space(); if (!inAddAttribute && GUILayout.Button("Add Attribute", EditorStyles.miniButton)) { inAddAttribute = true; } if (inAddAttribute) { GUILayout.BeginHorizontal("box"); attribute = (vItemAttributes)EditorGUILayout.EnumPopup(attribute); EditorGUILayout.LabelField("Value", GUILayout.MinWidth(60)); attributeValue = EditorGUILayout.IntField(attributeValue); GUILayout.EndHorizontal(); if (item.attributes != null && item.attributes.Contains(attribute)) { EditorGUILayout.HelpBox("This attribute already exist ", MessageType.Error); if (GUILayout.Button("Cancel", EditorStyles.miniButton, GUILayout.MinWidth(60))) { inAddAttribute = false; } } else { GUILayout.BeginHorizontal("box"); if (GUILayout.Button("Add", EditorStyles.miniButton, GUILayout.MinWidth(60))) { item.attributes.Add(new vItemAttribute(attribute, attributeValue)); attributeValue = 0; inAddAttribute = false; } if (GUILayout.Button("Cancel", EditorStyles.miniButton, GUILayout.MinWidth(60))) { attributeValue = 0; inAddAttribute = false; } GUILayout.EndHorizontal(); } } EditorGUILayout.Space(); for (int i = 0; i < item.attributes.Count; i++) { GUILayout.BeginHorizontal("box"); EditorGUILayout.LabelField(item.attributes[i].name.ToString(), GUILayout.MinWidth(60)); item.attributes[i].value = EditorGUILayout.IntField(item.attributes[i].value); EditorGUILayout.Space(); if (GUILayout.Button("x", GUILayout.MaxWidth(30))) { item.attributes.RemoveAt(i); GUILayout.EndHorizontal(); break; } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } catch { } }
public static vItemAttribute GetAttributeByType(this List <vItemAttribute> attributes, vItemAttributes name) { var attribute = attributes.Find(at => at.name == name); return(attribute); }
public static bool Contains(this List <vItemAttribute> attributes, vItemAttributes name) { var attribute = attributes.Find(at => at.name == name); return(attribute != null); }
public vItemAttribute(vItemAttributes name, int value) { this.name = name; this.value = value; }
bool ItemAttributesContainsDescription(string enumName, string description) { vItemAttributes e = enumName.ToEnum <vItemAttributes>(); return(e.DisplayFormat().Equals(description)); }
void DrawAttributes() { try { GUILayout.BeginVertical("box"); GUILayout.Box("Attributes", GUILayout.ExpandWidth(true)); EditorGUILayout.Space(); if (!inAddAttribute && GUILayout.Button("Add Attribute", EditorStyles.miniButton)) { inAddAttribute = true; } if (inAddAttribute) { GUILayout.BeginHorizontal("box"); attribute = (vItemAttributes)EditorGUILayout.EnumPopup(attribute); EditorGUILayout.LabelField("Value", GUILayout.MinWidth(60)); attributeValue = EditorGUILayout.IntField(attributeValue); GUILayout.EndHorizontal(); if (item.attributes != null && item.attributes.Contains(attribute)) { EditorGUILayout.HelpBox("This attribute already exist ", MessageType.Error); if (GUILayout.Button("Cancel", EditorStyles.miniButton, GUILayout.MinWidth(60))) { inAddAttribute = false; } } else { GUILayout.BeginHorizontal("box"); if (GUILayout.Button("Add", EditorStyles.miniButton, GUILayout.MinWidth(60))) { item.attributes.Add(new vItemAttribute(attribute, attributeValue)); attributeValue = 0; inAddAttribute = false; } if (GUILayout.Button("Cancel", EditorStyles.miniButton, GUILayout.MinWidth(60))) { attributeValue = 0; inAddAttribute = false; } GUILayout.EndHorizontal(); } } EditorGUILayout.Space(); var attributesProp = serializedObject.FindProperty("attributes"); for (int i = 0; i < item.attributes.Count; i++) { GUILayout.BeginHorizontal("box"); var attributeValue = attributesProp.GetArrayElementAtIndex(i).FindPropertyRelative("value"); attributeValue.serializedObject.Update(); EditorGUILayout.LabelField(item.attributes[i].name.ToString(), GUILayout.MinWidth(60)); EditorGUILayout.PropertyField(attributeValue, new GUIContent("")); //item.attributes[i].value = EditorGUILayout.IntField(item.attributes[i].value); EditorGUILayout.Space(); if (GUILayout.Button("x", GUILayout.MaxWidth(30))) { item.attributes.RemoveAt(i); GUILayout.EndHorizontal(); break; } attributeValue.serializedObject.ApplyModifiedProperties(); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } catch { } }
public virtual void DrawAttributes() { try { GUILayout.BeginVertical("box"); GUILayout.Box("Attributes", GUILayout.ExpandWidth(true)); EditorGUILayout.Space(); if (!inAddAttribute && GUILayout.Button("Add Attribute", EditorStyles.miniButton)) { inAddAttribute = true; } if (inAddAttribute) { GUILayout.BeginHorizontal("box"); attribute = (vItemAttributes)EditorGUILayout.EnumPopup(attribute); EditorGUILayout.LabelField("Value", GUILayout.MinWidth(60)); attributeValue = EditorGUILayout.IntField(attributeValue); GUILayout.EndHorizontal(); if (item.attributes != null && item.attributes.Contains(attribute)) { EditorGUILayout.HelpBox("This attribute already exist ", MessageType.Error); if (GUILayout.Button("Cancel", EditorStyles.miniButton, GUILayout.MinWidth(60))) { inAddAttribute = false; } } else { GUILayout.BeginHorizontal("box"); if (GUILayout.Button("Add", EditorStyles.miniButton, GUILayout.MinWidth(60))) { item.attributes.Add(new vItemAttribute(attribute, attributeValue)); attributeValue = 0; inAddAttribute = false; } if (GUILayout.Button("Cancel", EditorStyles.miniButton, GUILayout.MinWidth(60))) { attributeValue = 0; inAddAttribute = false; } GUILayout.EndHorizontal(); } } EditorGUILayout.Space(); for (int i = 0; i < item.attributes.Count; i++) { GUILayout.BeginVertical("box"); GUILayout.BeginHorizontal(); item.attributes[i].isOpen = EditorGUILayout.Foldout(item.attributes[i].isOpen, item.attributes[i].name.ToString()); item.attributes[i].value = EditorGUILayout.IntField(item.attributes[i].value); EditorGUILayout.Space(); if (GUILayout.Button("x", GUILayout.MaxWidth(30))) { item.attributes.RemoveAt(i); GUILayout.EndHorizontal(); break; } GUILayout.EndHorizontal(); if (item.attributes[i].isOpen) { EditorGUILayout.HelpBox("Open the ItemEnumsEditor to edit this format", MessageType.Info); string format = item.attributes[i].displayFormat; GUILayout.BeginHorizontal(); GUILayout.Label("Display format"); GUILayout.Label(format, EditorStyles.whiteBoldLabel); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } GUILayout.EndVertical(); } catch { Debug.Log("ERROR"); } }