using System; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEditor; using TapjoyUnity.Internal; namespace TapjoyEditor { public static class TapjoySettingsEditor { private const string TAPJOY_SETTINGS_DIRECTORY = "Assets/Settings/"; private const string ASSETS_DIRECTORY = "Assets"; private const string SETTINGS = "TapjoySettings.asset"; public static TapjoySettings CreateEmptySettings() { TapjoySettings settings = (ScriptableObject.CreateInstance(typeof(TapjoySettings)) as TapjoySettings); try { Debug.Log("Creating new Settings.asset"); string assetPath = String.Format("{0}{1}", TAPJOY_SETTINGS_DIRECTORY,SETTINGS); AssetDatabase.CreateAsset(settings, assetPath); settings = (AssetDatabase.LoadAssetAtPath(assetPath, typeof(TapjoySettings)) as TapjoySettings); } catch (UnityException) { Debug.LogError("Failed to create the Tapjoy Settings asset."); } return settings; } public static TapjoySettings Load() { // Ensure the TapjoySDK directory exists if (!Directory.Exists(TAPJOY_SETTINGS_DIRECTORY)) { Debug.Log("TapjoySDK directory does not exist. Creating it now."); Directory.CreateDirectory(TAPJOY_SETTINGS_DIRECTORY); AssetDatabase.Refresh(); // Refresh the asset database to recognize the new directory } //Search for Tapjoy Settings.asset folders in order. Returns GUID's string[] results = AssetDatabase.FindAssets("Settings", new string[] { TAPJOY_SETTINGS_DIRECTORY, ASSETS_DIRECTORY }); TapjoySettings settings = null; foreach (string guid in results) { string path = AssetDatabase.GUIDToAssetPath(guid); //Check if asset is Tapjoy Settings.asset settings = (AssetDatabase.LoadAssetAtPath(path, typeof(TapjoySettings)) as TapjoySettings); if (settings != null) { Debug.Log("Using Tapjoy Settings: " + path); break; } } if (settings == null) { settings = CreateEmptySettings(); } return settings; } public static void Save(TapjoySettings settings) { EditorUtility.SetDirty(settings); AssetDatabase.SaveAssets(); settings.Dirty = false; } } }