59 lines
1.4 KiB
C#
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;
|
|
|
|
}
|
|
|
|
} |