void Awake() { MainDictionary = Resources.LoadAll <ScriptableObjectDictionary>("").First(); RefreshModDictionary(); ModManager.instance.ModLoaded += OnModLoaded; ModManager.instance.ModUnloaded += OnModUnloaded; }
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."); }
/// <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; }