using SPTarkov.Server.Core.Models.Enums;
using SPTarkov.Server.Core.Models.Logging;
using Version = SemanticVersioning.Version;
namespace SPTarkov.Server.Core.Utils;
public static partial class ProgramStatics
{
private static bool _debug;
private static bool _compiled;
private static bool _mods;
public static void Initialize()
{
switch (BuildType)
{
case EntryType.RELEASE:
_debug = false;
_compiled = true;
_mods = true;
break;
case EntryType.BLEEDINGEDGE:
_debug = true;
_compiled = true;
_mods = false;
break;
case EntryType.DEBUG:
case EntryType.BLEEDINGEDGEMODS:
_debug = true;
_compiled = true;
_mods = true;
break;
case EntryType.LOCAL:
default:
#if DEBUG
_debug = true;
#endif
_compiled = false;
_mods = true;
break;
}
#if DEBUG
Console.WriteLine($"SPTarkov.Server.Core: entrytype: {BuildType}");
Console.WriteLine($"SPTarkov.Server.Core: debug: {_debug}");
Console.WriteLine($"SPTarkov.Server.Core: compiled: {_compiled}");
Console.WriteLine($"SPTarkov.Server.Core: mods: {_mods}");
#endif
}
// Public Static Getters
///
/// What type of release is this
///
///
public static EntryType ENTRY_TYPE()
{
return BuildType;
}
///
/// Server is running in debug mode
///
///
public static bool DEBUG()
{
return _debug;
}
public static bool COMPILED()
{
return _compiled;
}
///
/// Are mods enable for the server
///
///
public static bool MODS()
{
return _mods;
}
public static Version SPT_VERSION()
{
return SptVersion;
}
public static string COMMIT()
{
return Commit;
}
///
/// Timestamp of server build date
///
///
public static double BUILD_TIME()
{
return BuildTime;
}
public static LogTextColor BUILD_TEXT_COLOR()
{
return BuildType switch
{
EntryType.RELEASE => LogTextColor.Yellow,
EntryType.LOCAL or EntryType.DEBUG => LogTextColor.Cyan,
EntryType.BLEEDINGEDGE or EntryType.BLEEDINGEDGEMODS => LogTextColor.Magenta,
_ => LogTextColor.Yellow,
};
}
}