Files
RobustToolbox/Robust.Client/Utility/UserDataDir.cs

45 lines
1.3 KiB
C#

using System;
using System.IO;
using JetBrains.Annotations;
using Robust.Shared.ContentPack;
using Robust.Shared.Utility;
namespace Robust.Client.Utility
{
internal static class UserDataDir
{
[Pure]
public static string GetUserDataDir(IGameControllerInternal gameController)
{
return Path.Combine(GetRootUserDataDir(gameController), "data");
}
[Pure]
public static string GetRootUserDataDir(IGameControllerInternal gameController)
{
string appDataDir;
#if LINUX
var xdgDataHome = Environment.GetEnvironmentVariable("XDG_DATA_HOME");
if (xdgDataHome == null)
{
appDataDir = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".local", "share");
}
else
{
appDataDir = xdgDataHome;
}
#elif MACOS
appDataDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
"Library", "Application Support");
#else
appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
#endif
return PathHelpers.SafeGetResourcePath(appDataDir, new ResPath(gameController.Options.UserDataDirectoryName));
}
}
}