Example #1
0
        protected override void Enable(BaseMightyMember mightyMember, ScriptIconAttribute mightyAttribute)
        {
            if (!m_alreadyEnabled)
            {
                m_databaseDirectoryPath = Path.Combine(FileUtilities.GetAbsoluteScriptPathByType(typeof(MightyDrawersDatabase), false),
                                                       "ScriptIcons");
                m_databaseFilePath = Path.Combine(m_databaseDirectoryPath, "ScriptIconsDatabase.json");
            }

            if (!Directory.Exists(m_databaseDirectoryPath))
            {
                m_alreadyEnabled = false;
                Directory.CreateDirectory(m_databaseDirectoryPath);
            }

            if (!File.Exists(m_databaseFilePath))
            {
                m_alreadyEnabled = false;
                File.Create(m_databaseFilePath);
            }

            if (!m_alreadyEnabled)
            {
                m_database         = ReadDatabase();
                m_scriptIconByType = ExtractDatabase(m_database);
            }

            m_alreadyEnabled = true;
        }
Example #2
0
        private ScriptIconsDatabase ReadDatabase()
        {
            var database = new ScriptIconsDatabase();

            EditorJsonUtility.FromJsonOverwrite(File.ReadAllText(m_databaseFilePath), database);

            return(database);
        }
Example #3
0
        private Dictionary <Type, ScriptIcon> ExtractDatabase(ScriptIconsDatabase database)
        {
            var scriptIconByType = new Dictionary <Type, ScriptIcon>();

            if (database.scriptIcons == null)
            {
                return(scriptIconByType);
            }

            foreach (var icon in database.scriptIcons)
            {
                if (!TypeUtilities.GetTypeInAssembly(icon.GetTypeName(), icon.GetAssemblyName(), out var type))
                {
                    continue;
                }

                icon.SetType(type);
                scriptIconByType[type] = icon;
            }

            return(scriptIconByType);
        }
 private void WriteDatabase(ScriptIconsDatabase database) =>
 File.WriteAllText(DatabaseFilePath, EditorJsonUtility.ToJson(database, true));