Skip to content
This repository was archived by the owner on Sep 21, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/CacheClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static class CacheClient
static CacheClient()
{
PluginSettings.Data settings = PluginSettings.data;
CacheClient.cacheDirectory = settings.cacheDirectory;
CacheClient.cacheDirectory = settings.CacheDirectory;
}

// ---------[ GAME PROFILE ]---------
Expand Down
4 changes: 2 additions & 2 deletions src/ModManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ private struct PersistentData
static ModManager()
{
PluginSettings.Data settings = PluginSettings.data;
ModManager.installationDirectory = settings.installationDirectory;
ModManager.PERSISTENTDATA_FILEPATH = IOUtilities.CombinePath(settings.cacheDirectory, PERSISTENTDATA_FILENAME);
ModManager.installationDirectory = settings.InstallationDirectory;
ModManager.PERSISTENTDATA_FILEPATH = IOUtilities.CombinePath(settings.CacheDirectory, PERSISTENTDATA_FILENAME);

if(!IOUtilities.TryReadJsonObjectFile(PERSISTENTDATA_FILEPATH, out ModManager.m_data))
{
Expand Down
106 changes: 63 additions & 43 deletions src/PluginSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,74 @@ public struct Data
// ---------[ FIELDS ]---------
[Tooltip("API URL to use when making requests")]
public string apiURL;

[Tooltip("Game Id assigned to your game profile")]
public int gameId;

[Tooltip("API Key assigned to your game profile")]
public string gameAPIKey;

[Tooltip("Directory to use for mod installations")]
public string installationDirectory;
[SerializeField]
// Use InstallationDirectory instead!
private string installationDirectory;
private string installationDirectoryCached;
public string InstallationDirectory
{
set { installationDirectory = value; }
get
{
if (installationDirectoryCached == null)
{
installationDirectoryCached = ReplaceKeywords(installationDirectory);
}

return installationDirectoryCached;
}
}

[Tooltip("Directory to use for cached server data")]
public string cacheDirectory;
[SerializeField]
// Use CacheDirectory instead!
private string cacheDirectory;
private string cacheDirectoryCached;
public string CacheDirectory
{
set { cacheDirectory = value; }
get
{
if (cacheDirectoryCached == null)
{
cacheDirectoryCached = ReplaceKeywords(cacheDirectory);
}

return cacheDirectoryCached;
}
}

[Tooltip("Log all web requests made to using Debug.Log")]
public bool logAllRequests;

private string ReplaceKeywords(string input)
{
if(input != null)
{
string[] cacheDirParts = input.Split(System.IO.Path.AltDirectorySeparatorChar,
System.IO.Path.DirectorySeparatorChar);
for(int i = 0; i < cacheDirParts.Length; ++i)
{
if(cacheDirParts[i].ToUpper().Equals("$PERSISTENT_DATA_PATH$"))
{
cacheDirParts[i] = Application.persistentDataPath;
}

cacheDirParts[i] = cacheDirParts[i].Replace("$GAME_ID$", gameId.ToString());
}
input = IOUtilities.CombinePath(cacheDirParts);
}

return input;
}
}

// ---------[ CONSTANTS & STATICS ]---------
Expand Down Expand Up @@ -75,46 +133,8 @@ private static void LoadDataInstance()
}
else
{
Data settings = wrapper.m_data;

// - Path variable replacement -
// cachedir
if(settings.cacheDirectory != null)
{
string[] cacheDirParts = settings.cacheDirectory.Split(System.IO.Path.AltDirectorySeparatorChar,
System.IO.Path.DirectorySeparatorChar);
for(int i = 0; i < cacheDirParts.Length; ++i)
{
if(cacheDirParts[i].ToUpper().Equals("$PERSISTENT_DATA_PATH$"))
{
cacheDirParts[i] = Application.persistentDataPath;
}

cacheDirParts[i] = cacheDirParts[i].Replace("$GAME_ID$", settings.gameId.ToString());
}
settings.cacheDirectory = IOUtilities.CombinePath(cacheDirParts);
}

// installdir
if(settings.installationDirectory != null)
{
string[] installDirParts = settings.installationDirectory.Split(System.IO.Path.AltDirectorySeparatorChar,
System.IO.Path.DirectorySeparatorChar);
for(int i = 0; i < installDirParts.Length; ++i)
{
if(installDirParts[i].ToUpper().Equals("$PERSISTENT_DATA_PATH$"))
{
installDirParts[i] = Application.persistentDataPath;
}

installDirParts[i] = installDirParts[i].Replace("$GAME_ID$", settings.gameId.ToString());
}

settings.installationDirectory = IOUtilities.CombinePath(installDirParts);
}

// apply to data instance
PluginSettings._dataInstance = settings;
PluginSettings._dataInstance = wrapper.m_data;
}

PluginSettings._loaded = true;
Expand Down Expand Up @@ -144,8 +164,8 @@ private static PluginSettings InitializeAsset()
apiURL = APIClient.API_URL_PRODUCTIONSERVER + APIClient.API_VERSION,
gameId = 0,
gameAPIKey = string.Empty,
cacheDirectory = "$PERSISTENT_DATA_PATH$/modio-$GAME_ID$",
installationDirectory = "$PERSISTENT_DATA_PATH$/modio-$GAME_ID$/_installedMods",
CacheDirectory = "$PERSISTENT_DATA_PATH$/modio-$GAME_ID$",
InstallationDirectory = "$PERSISTENT_DATA_PATH$/modio-$GAME_ID$/_installedMods",
logAllRequests = false,
};

Expand Down
4 changes: 2 additions & 2 deletions src/UI/ModBrowser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ private void Start()
this.gameObject.SetActive(false);
return;
}
if(String.IsNullOrEmpty(settings.cacheDirectory))
if(String.IsNullOrEmpty(settings.CacheDirectory))
{
Debug.LogError("[mod.io] Cache Directory is missing from the Plugin Settings.\n"
+ "This must be configured by selecting the mod.io > Edit Settings menu"
Expand All @@ -172,7 +172,7 @@ private void Start()
this.gameObject.SetActive(false);
return;
}
if(String.IsNullOrEmpty(settings.installationDirectory))
if(String.IsNullOrEmpty(settings.InstallationDirectory))
{
Debug.LogError("[mod.io] Mod Installation Directory is missing from the Plugin Settings.\n"
+ "This must be configured by selecting the mod.io > Edit Settings menu"
Expand Down
2 changes: 1 addition & 1 deletion src/UserAuthenticationData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public struct UserAuthenticationData
};

/// <summary>Location of the settings file.</summary>
public static readonly string FILE_LOCATION = IOUtilities.CombinePath(PluginSettings.data.cacheDirectory,
public static readonly string FILE_LOCATION = IOUtilities.CombinePath(PluginSettings.data.CacheDirectory,
"user.data");

// ---------[ FIELDS ]---------
Expand Down