Files
SPT-Server-Build/Libraries/Core/Helpers/ModHelper.cs
T
Archangel d3990c1219 Use file streams to deserialize files
- Improves load speed
- Lowers memory overhead
2025-02-14 12:52:18 +01:00

37 lines
1.0 KiB
C#

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<T>(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 file with a type (defined between the diamond brackets)
return _jsonUtil.DeserializeFromFile<T>(rawContent);
}
}
}