Beispiel #1
0
        void MatchFormWithExistingEnum()
        {
            if (_list == null)
            {
                return;
            }
            if (currentEnum == null)
            {
                return;
            }
            if (currentEnumFileDetails != null)
            {
                return;
            }
            currentEnum.UpdateFilePath();

            string currentFilePath = currentEnum.filePath;

            foreach (KeyValuePair <string, EnumFileDetails> _item in _list)
            {
                if (_item.Key == currentFilePath)
                {
                    currentEnumFileDetails = _item.Value;
                    StartEditingExistingEnum(currentEnumFileDetails);
                    return;
                }
            }
        }
Beispiel #2
0
        void OnGUI_DoEditableEnumItem(string filePath, EnumFileDetails details)
        {
            GUILayout.BeginHorizontal("box", GUILayout.ExpandHeight(false));

            GUILayout.Label(details.nameSpace + "." + details.enumName);

            GUILayout.FlexibleSpace();

            if (GUILayout.Button("Select in Project", "MiniButton"))
            {
                var _object = AssetDatabase.LoadAssetAtPath("Assets/" + details.projectPath, typeof(UnityEngine.Object));

                EditorGUIUtility.PingObject(_object.GetInstanceID());
                Selection.activeInstanceID = _object.GetInstanceID();
            }

            if (currentEnumFileDetails == details)
            {
                Color _prev = GUI.color;
                GUI.color = Color.green;
                GUILayout.Button("Edit", "MiniButton");
                GUI.color = _prev;
            }
            else
            {
                if (GUILayout.Button("Edit", "MiniButton"))
                {
                    StartEditingExistingEnum(details);
                }
            }

            GUILayout.EndHorizontal();
        }
Beispiel #3
0
        void StartEditingNewEnum()
        {
            currentEnumFileDetails = null;
            currentEnum            = new EnumCreator.EnumDefinition();

            if (_list == null)
            {
                return;
            }
            if (currentEnum == null)
            {
                return;
            }

            currentEnum.UpdateFilePath();

            string currentFilePath = currentEnum.filePath;
        }
        void StartEditingNewEnum()
        {
            Debug.Log("start New Enum: ");
            allowReordering        = true;
            currentEnumFileDetails = null;
            currentEnum            = new EnumCreator.EnumDefinition();

            if (_list == null)
            {
                return;
            }
            if (currentEnum == null)
            {
                return;
            }

            currentEnum.UpdateFilePath();

            //	string currentFilePath = currentEnum.filePath;
        }
        public static Dictionary <string, EnumFileDetails> FindEnumFiles()
        {
            //Lookup enums in file names
            Dictionary <string, EnumFileDetails> enumDetailsList = new Dictionary <string, EnumFileDetails>();

            classFiles = new List <string>();
            FindAllCSharpScriptFiles(Application.dataPath);

            //Lookup class name in the class file text
            for (int i = 0; i < classFiles.Count; i++)
            {
                string filePath = classFiles[i];
                string codeFile = File.ReadAllText(filePath);

                if (codeFile.Contains("[" + "PLAYMAKER_ENUM]"))               // compose the tag to avoid this file to be found...
                {
                    // read all lines, we are going to parse data
                    string[] lines = File.ReadAllLines(filePath);

                    // safety precaution
                    if (lines.Length < 10)
                    {
                        continue;
                    }

                    string nameSpace = lines[5].Substring(10);
                    string enumName  = lines[7].Substring(13);

                    EnumFileDetails _details = new EnumFileDetails(
                        enumName,
                        nameSpace,
                        filePath,
                        File.GetLastWriteTimeUtc(filePath)
                        );

                    enumDetailsList.Add(filePath, _details);
                }
            }

            return(enumDetailsList);
        }
Beispiel #6
0
        void StartEditingExistingEnum(EnumFileDetails enumDetails)
        {
            allowReordering = false;
            //Debug.Log("startEditing: "+enumDetails.enumName);
            //Debug.Log(enumDetails);

            _sourceDetails = enumDetails;

            currentEnum = new EnumCreator.EnumDefinition();
            list        = null;

            currentEnumFileDetails = enumDetails;

            // nameSpace
            currentEnum.NameSpace = enumDetails.nameSpace;

            currentEnum.Name = enumDetails.enumName;

            Type _type = System.Type.GetType(currentEnum.NameSpace + "." + currentEnum.Name + ", Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null");

            currentEnum.entries = new List <string>();

            FieldInfo[] fields = _type.GetFields();

            foreach (var field in fields)
            {
                if (field.Name.Equals("value__"))
                {
                    continue;
                }

                currentEnum.entries.Add(field.Name);
                //Debug.Log(field.Name + ":" + field.GetRawConstantValue());
            }

            Repaint();
            ReBuildPreview = true;
            GUI.FocusControl(_unfocusControlName);
        }