Files

59 lines
1.4 KiB
C#

using System;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.IO;
using Barotrauma;
using HarmonyLib;
using Microsoft.Xna.Framework;
namespace QuickInteractions
{
public class ModPaths
{
private string modName; public string ModName
{
get => modName;
set
{
modName = value;
FindModDir();
}
}
private string modDir = "";
public string ModDir
{
get => modDir;
set
{
modDir = value;
AssetsFolder = Path.Combine(ModDir, "Assets");
Data = Path.Combine(ModDir, "Data");
DataUI = Path.Combine(Data, "UI");
IsInLocalMods = modDir.Contains("LocalMods");
}
}
public string AssetsFolder { get; set; }
public string Data { get; set; }
public string DataUI { get; set; }
public bool IsInLocalMods { get; set; }
public override string ToString() => $"ModDir: {ModDir}\nAssetsFolder: {AssetsFolder}\nData: {Data}\nDataUI: {DataUI}\nIsInLocalMods: {IsInLocalMods}";
public void FindModDir()
{
ContentPackage package = ContentPackageManager.EnabledPackages.All.ToList().Find(
p => p.Name.Contains(ModName)
);
if (package != null) ModDir = Path.GetFullPath(package.Dir);
}
public ModPaths() { }
public ModPaths(string modName) => ModName = modName;
}
}