Files
2025-03-31 13:19:47 +02:00

94 lines
3.1 KiB
C#

using System;
using System.IO;
using System.Xml.Linq;
using Barotrauma;
using Barotrauma.Networking;
namespace BetterHealthUI
{
partial class BetterHealthUIMod : ACsMod
{
public static bool DisableHeartbeatSound { get; private set; } = false;
public static bool DisableHeartbeatBar { get; private set; } = false;
private const string ConfigFolderName = "BHUConfig";
private const string ConfigFileName = "BetterHealthUIConfig.xml";
public BetterHealthUIMod()
{
LuaCsSetup.PrintCsMessage("BetterHealthUIMod initialized.");
EnsureConfigExists();
LoadConfig();
#if CLIENT
InitClient();
#endif
}
private void EnsureConfigExists()
{
string gameDirectory = Directory.GetCurrentDirectory();
string configFolderPath = Path.Combine(gameDirectory, ConfigFolderName);
string configFilePath = Path.Combine(configFolderPath, ConfigFileName);
if (!Directory.Exists(configFolderPath))
{
Directory.CreateDirectory(configFolderPath);
LuaCsSetup.PrintCsMessage($"Created config folder at: {configFolderPath}");
}
if (!File.Exists(configFilePath))
{
XDocument defaultConfig = new XDocument(
new XElement("Config",
new XElement("DisableHeartbeatSound", false),
new XElement("DisableHeartbeatBar", false)
)
);
defaultConfig.Save(configFilePath);
LuaCsSetup.PrintCsMessage($"Created default config file at: {configFilePath}");
}
}
private void LoadConfig()
{
string gameDirectory = Directory.GetCurrentDirectory();
string configFilePath = Path.Combine(gameDirectory, ConfigFolderName, ConfigFileName);
if (!File.Exists(configFilePath))
{
LuaCsSetup.PrintCsMessage($"Config file not found: {configFilePath}");
return;
}
try
{
var doc = XDocument.Load(configFilePath);
var root = doc.Root;
if (root == null)
{
LuaCsSetup.PrintCsMessage("Config file has no root element.");
return;
}
bool.TryParse(root.Element("DisableHeartbeatSound")?.Value, out bool disableSound);
bool.TryParse(root.Element("DisableHeartbeatBar")?.Value, out bool disableBar);
DisableHeartbeatSound = disableSound;
DisableHeartbeatBar = disableBar;
LuaCsSetup.PrintCsMessage($"Config loaded: DisableHeartbeatSound={disableSound}, DisableHeartbeatBar={disableBar}");
}
catch (Exception ex)
{
LuaCsSetup.PrintCsMessage($"Error loading config file: {ex.Message}");
}
}
public override void Stop()
{
LuaCsSetup.PrintCsMessage("BetterHealthUIMod stopped.");
}
}
}