using System; namespace ShiftOS { public class OSInfo { /// /// System directory separator charactor. /// public static string DirectorySeparator { get { switch(GetPlatformID()) { case "microsoft": return "\\"; default: return "/"; } } } /// /// Selects a default, monospace font name from the OS. This is typically used for creating ingame terminals. /// /// The monospace font. public static string GetMonospaceFont() { string fname = null; switch (GetPlatformID ()) { case "microsoft": fname = "Lucida Console"; break; case "unix": fname = "Monospace"; break; case "macosx": fname = "Menlo"; break; } return fname; } /// /// This refers to the Home directory of the current user. For example, if the user's name is 'Michael', and the user is on Windows Vista/7/8/10, this value would be 'C:\Users\Michael'. /// public static string homePath () { return (Environment.OSVersion.Platform == PlatformID.Unix || Environment.OSVersion.Platform == PlatformID.MacOSX) ? Environment.GetEnvironmentVariable ("HOME") : Environment.ExpandEnvironmentVariables ("%HOMEDRIVE%%HOMEPATH%"); } /// /// Is it Linux? Is it Mac OS? Did Microsoft make it? /// /// The platform ID. public static string GetPlatformID() { switch (Environment.OSVersion.Platform) { case PlatformID.Unix: return "unix"; case PlatformID.MacOSX: return "macosx"; default: return "microsoft"; } } } }