void Awake()
 {
     MainDictionary = Resources.LoadAll <ScriptableObjectDictionary>("").First();
     RefreshModDictionary();
     ModManager.instance.ModLoaded   += OnModLoaded;
     ModManager.instance.ModUnloaded += OnModUnloaded;
 }
示例#2
0
 public void SetUp()
 {
     objDictionary            = ScriptableObject.CreateInstance <ScriptableObjectDictionary>();
     objDictionary.Dictionary = new List <ScriptableObjectDictionary.ScriptableObjectEntry>();
     scriptObj1 = ScriptableObject.CreateInstance <ScriptableObject>();
     scriptObj2 = ScriptableObject.CreateInstance <ScriptableObject>();
 }
 /// <summary>
 /// Refreshes the <see cref="ScriptableObjectDictionary"/> reference of the currently loaded mod.
 /// </summary>
 public void RefreshModDictionary()
 {
     foreach (var mod in ModManager.instance.mods)
     {
         if (mod.loadState == ResourceLoadState.Loaded)
         {
             ModDictionary = mod.GetAsset <ModInfo>("modinfo").ScriptableObjectDictionary;
             break;
         }
     }
     Debug.Log("No Mod SO dictionary found.");
 }
示例#4
0
        /// <summary>
        /// Finds or creates the scriptable object dictionary for this mod.
        /// </summary>
        /// <returns></returns>
        public static ScriptableObjectDictionary GetScriptableObjectDictionary()
        {
            var assetPath = "Assets/Resources/SODictionary.asset";

            var dir = Path.GetDirectoryName(assetPath);

            if (dir != null)
            {
                Directory.CreateDirectory(dir);
            }

            ScriptableObjectDictionary asset = AssetDatabase.LoadAssetAtPath <ScriptableObjectDictionary>(assetPath);

            if (asset == null)
            {
                asset = Create <ScriptableObjectDictionary>(assetPath);
            }

            return(asset);
        }
 private void OnModUnloaded(Mod mod)
 {
     ModDictionary = null;
 }
 private void OnModLoaded(Mod mod)
 {
     ModDictionary = mod.GetAsset <ModInfo>("modinfo").ScriptableObjectDictionary;
 }