Files
SPT-Server-Build/Core/Utils/ProgramStatics.cs
T
2025-01-17 12:35:51 +00:00

104 lines
2.7 KiB
C#

namespace Server
{
public static class ProgramStatics
{
private static EntryType _entryType;
private static bool _debug;
private static bool _compiled;
private static bool _mods;
private static string _sptVersion;
private static string _commit;
private static double _buildTime;
private static BuildInfo buildInfo; // TODO get from buildinfo.json
public static void Initialize()
{
buildInfo = new BuildInfo();
ProgramStatics._entryType = buildInfo.entryType.GetValueOrDefault(EntryType.LOCAL);
switch (ProgramStatics._entryType)
{
case EntryType.RELEASE:
_debug = false;
_compiled = true;
_mods = true;
break;
case EntryType.BLEEDING_EDGE:
_debug = true;
_compiled = true;
_mods = false;
break;
case EntryType.DEBUG:
case EntryType.BLEEDING_EDGE_MODS:
_debug = true;
_compiled = true;
_mods = true;
break;
case EntryType.LOCAL:
default: // EntryType.LOCAL
_debug = true;
_compiled = false;
_mods = true;
break;
}
}
// Public Static Getters
public static EntryType ENTRY_TYPE()
{
return _entryType;
}
public static bool DEBUG()
{
return ProgramStatics._debug;
}
public static bool COMPILED()
{
return ProgramStatics._compiled;
}
public static bool MODS()
{
return ProgramStatics._mods;
}
public static string SPT_VERSION()
{
return ProgramStatics._sptVersion;
}
public static string COMMIT()
{
return ProgramStatics._commit;
}
public static double BUILD_TIME()
{
return ProgramStatics._buildTime;
}
}
public enum EntryType
{
LOCAL,
DEBUG,
RELEASE,
BLEEDING_EDGE,
BLEEDING_EDGE_MODS
}
public class BuildInfo
{
public BuildInfo()
{
sptVersion = "";
commit = "";
buildTime = 0;
}
public EntryType? entryType { get; set; }
public string? sptVersion { get; set; }
public string? commit { get; set; }
public double? buildTime { get; set; }
}
}