public vItemAttribute GetItemAttribute(vItemAttributes attribute)
 {
     if (attributes != null)
     {
         return(attributes.Find(_attribute => _attribute.name == attribute));
     }
     return(null);
 }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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 { }
        }
Beispiel #4
0
        public static vItemAttribute GetAttributeByType(this List <vItemAttribute> attributes, vItemAttributes name)
        {
            var attribute = attributes.Find(at => at.name == name);

            return(attribute);
        }
Beispiel #5
0
        public static bool Contains(this List <vItemAttribute> attributes, vItemAttributes name)
        {
            var attribute = attributes.Find(at => at.name == name);

            return(attribute != null);
        }
Beispiel #6
0
 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));
        }
Beispiel #8
0
        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");
            }
        }