using OWML.Common;
namespace QSB.Utility;
///
/// purely organizational class to store all debug settings
///
public class DebugSettings
{
public bool DebugMode;
private bool _logQSBMessages;
public bool LogQSBMessages => DebugMode && _logQSBMessages;
private bool _instanceIdInLogs;
public bool InstanceIDInLogs => DebugMode && _instanceIdInLogs;
private bool _hookDebugLogs;
public bool HookDebugLogs => DebugMode && _hookDebugLogs;
private bool _avoidTimeSync;
public bool AvoidTimeSync => DebugMode && _avoidTimeSync;
private bool _autoStart;
public bool AutoStart => DebugMode && _autoStart;
private int _latencySimulation;
public int LatencySimulation => DebugMode ? _latencySimulation : 0;
private bool _drawGUI;
public bool DrawGUI => DebugMode && _drawGUI;
private bool _drawLines;
public bool DrawLines => DebugMode && _drawLines;
private bool _drawLabels;
public bool DrawLabels => DebugMode && _drawLabels;
private bool _greySkybox;
public bool GreySkybox => DebugMode && _greySkybox;
private string _steamTestIpAddress;
public string SteamTestIpAddress => DebugMode ? _steamTestIpAddress : null;
private bool _steamFakeNetworkErrors;
public bool SteamFakeNetworkErrors => DebugMode && _steamFakeNetworkErrors;
public void Update(IModConfig config)
{
DebugMode = config.GetSettingsValue("debugMode");
_instanceIdInLogs = config.GetSettingsValue("instanceIdInLogs");
_hookDebugLogs = config.GetSettingsValue("hookDebugLogs");
_avoidTimeSync = config.GetSettingsValue("avoidTimeSync");
_autoStart = config.GetSettingsValue("autoStart");
_drawGUI = config.GetSettingsValue("drawGui");
_drawLines = config.GetSettingsValue("drawLines");
_drawLabels = config.GetSettingsValue("drawLabels");
_greySkybox = config.GetSettingsValue("greySkybox");
_latencySimulation = config.GetSettingsValue("latencySimulation");
_logQSBMessages = config.GetSettingsValue("logQSBMessages");
_steamTestIpAddress = config.GetSettingsValue("steamTestIpAddress");
_steamFakeNetworkErrors = config.GetSettingsValue("steamFakeNetworkErrors");
}
}