Exemplo n.º 1
0
        public static Database GetDB(bool production = false)
        {
            var currentDBName = production ? DatabaseSettings.Settings.databaseName : DatabaseSettings.Settings.ViewingDatabase;

            if (databaseCache.ContainsKey(currentDBName) && !NeedRefresh(databaseCache[currentDBName]))
            {
                return(databaseCache[currentDBName]);
            }

            var newDb = Database.EditorLoad(production);

            if (newDb != null)
            {
                AddToCache(currentDBName, newDb);
                return(databaseCache[currentDBName]);
            }
            else
            {
                var fullPath   = DatabaseSettings.GetFullPath(currentDBName);
                var fileExists = UnityEditor.AssetDatabase.LoadAssetAtPath <TextAsset>(fullPath);
                if (fileExists == null)
                {
                    newDb = new Database();
                    Database.Save(newDb);
                    AddToCache(currentDBName, newDb);
                    return(databaseCache[currentDBName]);
                }

                return(null);
            }
        }