/// <summary> /// This function loads pools from asset /// </summary> void LoadPools() { if (Application.isPlaying) { return; } pools.Clear(); F3DPoolManagerDB myManager = database as F3DPoolManagerDB; if (myManager != null) { databaseName = myManager.namer; menu.databaseName = databaseName; if (myManager.pools != null) { string[] poolNamesTemp = new string[myManager.pools.Count]; int n = 0; foreach (F3DPoolContainer cont in myManager.pools) { pools.Add(cont); poolNamesTemp[n] = cont.poolName; n++; } poolNames = poolNamesTemp; } } }
/// <summary> /// Saving current manager /// </summary> void SaveManager() { if (Application.isPlaying) { return; } F3DPoolManagerDB newManager = ScriptableObject.CreateInstance <F3DPoolManagerDB>(); newManager.pools = pools; if (databaseName == "") { databaseName = "DefaultDatabase"; } if (lastLoadedDatabaseName != "") { if (lastLoadedDatabaseName != databaseName) { AssetDatabase.DeleteAsset(assetPath + lastLoadedDatabaseName + ".asset"); } } newManager.namer = databaseName; AssetDatabase.CreateAsset(newManager, assetPath + databaseName + ".asset"); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); database = newManager; pools = newManager.pools; }
/// <summary> /// Updating local manager /// </summary> void LoadDatabase() { F3DPoolManagerDB newManager = Resources.Load("F3DPoolManagerCache/" + databaseName) as F3DPoolManagerDB; if (newManager != null) { database = newManager; databaseName = newManager.namer; lastLoadedDatabaseName = databaseName; menu.databaseName = databaseName; LoadPools(); UpdateHaveToShowArray(); LoadAllVariables(); } }
/// <summary> /// Creation of new database /// </summary> void CreateNewDatabasePressed() { if (Application.isPlaying) { return; } F3DPoolManagerDB newManager = ScriptableObject.CreateInstance <F3DPoolManagerDB>(); newManager.pools = new List <F3DPoolContainer>(); string namer = currentDatabaseName; if (namer == "") { namer = "GeneratedDataBase"; databaseName = namer; currentDatabaseName = namer; } if (AssetDatabase.LoadAssetAtPath(assetPath + namer + ".asset", typeof(ScriptableObject)) == null) { databaseName = namer; currentDatabaseName = namer; newManager.namer = databaseName; AssetDatabase.CreateAsset(newManager, assetPath + databaseName + ".asset"); AssetDatabase.SaveAssets(); pools = new List <F3DPoolContainer>(); database = newManager; LoadPools(); } else { int j = 0; string disNumberedName = namer; int toCut = 0; int endPos = 0; if (disNumberedName[disNumberedName.Length - 1] == ')') { while (disNumberedName[disNumberedName.Length - 1 - toCut] != '(') { toCut++; if (toCut <= 0) { toCut = -1; break; } } toCut++; if (toCut >= 0) { endPos = disNumberedName.Length - 1 - toCut; if (disNumberedName[endPos] == ' ') { } } else { endPos = disNumberedName.Length - 1; } disNumberedName = disNumberedName.Substring(0, endPos); } j = 0; while (AssetDatabase.LoadAssetAtPath(assetPath + disNumberedName + " (" + j.ToString() + ")" + ".asset", typeof(ScriptableObject)) != null) { j++; } databaseName = disNumberedName + " (" + j.ToString() + ")"; currentDatabaseName = databaseName; newManager.namer = databaseName; AssetDatabase.CreateAsset(newManager, assetPath + databaseName + ".asset"); AssetDatabase.SaveAssets(); pools = new List <F3DPoolContainer>(); database = newManager; LoadPools(); } }