using System.Reflection; using Core.Utils; using SptCommon.Annotations; namespace Core.Helpers { [Injectable] public class ModHelper { private readonly FileUtil _fileUtil; private readonly JsonUtil _jsonUtil; public ModHelper( FileUtil fileUtil, JsonUtil jsonUtil) { _fileUtil = fileUtil; _jsonUtil = jsonUtil; } public string GetAbsolutePathToModFolder(Assembly modAssembly) { // The full path to the mod folder return Path.GetDirectoryName(modAssembly.Location); } public T GetFileFromModFolder(string pathToFile, string fileName) { // Read the content of the config file as a string var rawContent = _fileUtil.ReadFile(Path.Combine(pathToFile, fileName)); // Take the string above and deserialise it into a config file with a type (defined between the diamond brackets) return _jsonUtil.Deserialize(rawContent); } } }