104 lines
2.7 KiB
C#
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; }
|
|
}
|
|
}
|