Skip to content

Commit 432ca73

Browse files
committed
move object index files into the editor settings folder
1 parent c3c43d9 commit 432ca73

File tree

2 files changed

+37
-4
lines changed

2 files changed

+37
-4
lines changed

Gui/EditorSettings.cs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System;
55
using System.Collections.Generic;
66
using System.IO;
7+
using System.Text;
78
using System.Text.Json;
89
using System.Text.Json.Serialization;
910

@@ -38,6 +39,7 @@ public HashSet<string> ObjDataDirectories
3839
//public string ServerEmail { get; set; }
3940
//public string ServerPassword { get; set; }
4041

42+
public string ObjectIndicesFolder { get; set; } = string.Empty;
4143
public string DownloadFolder { get; set; } = string.Empty;
4244

4345
public string AppDataObjDataFolder { get; set; } = string.Empty;
@@ -55,10 +57,13 @@ public string GetGameObjDataFolder(GameObjDataFolder folder)
5557

5658
[JsonIgnore]
5759
public string IndexFileName
58-
=> GetObjDataFullPath(ObjectIndex.DefaultIndexFileName);
59-
60-
public string GetObjDataFullPath(string fileName)
61-
=> Path.Combine(ObjDataDirectory, fileName);
60+
{
61+
get
62+
{
63+
var filename = Convert.ToBase64String(Encoding.UTF8.GetBytes(ObjDataDirectory));
64+
return Path.Combine(ObjectIndicesFolder, $"{filename}.json");
65+
}
66+
}
6267

6368
[JsonIgnore]
6469
public const string DefaultFileName = "settings.json"; // "settings-dev.json" for dev, "settings.json" for prod
@@ -116,6 +121,18 @@ public bool Validate(ILogger logger)
116121
return false;
117122
}
118123

124+
if (!Directory.Exists(DownloadFolder))
125+
{
126+
logger.Warning($"Invalid settings file: Directory \"{DownloadFolder}\" does not exist");
127+
return false;
128+
}
129+
130+
if (!Directory.Exists(ObjectIndicesFolder))
131+
{
132+
logger.Warning($"Invalid settings file: Directory \"{ObjectIndicesFolder}\" does not exist");
133+
return false;
134+
}
135+
119136
return true;
120137
}
121138
}

Gui/Models/ObjectEditorModel.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ public ObjectEditorModel()
7474
// settings must be loaded or else the rest of the app cannot start
7575
ArgumentNullException.ThrowIfNull(Settings);
7676

77+
InitialiseObjectIndiciesDirectory();
7778
InitialiseDownloadDirectory();
79+
7880
ObjectServiceClient = new(Settings, Logger);
7981
}
8082

@@ -129,6 +131,20 @@ void LoadSettings()
129131
}
130132
}
131133

134+
void InitialiseObjectIndiciesDirectory()
135+
{
136+
if (string.IsNullOrEmpty(Settings.ObjectIndicesFolder))
137+
{
138+
Settings.ObjectIndicesFolder = Path.Combine(ProgramDataPath, "objectIndices");
139+
}
140+
141+
if (!Directory.Exists(Settings.ObjectIndicesFolder))
142+
{
143+
Logger.Info($"Object indices folder doesn't exist; creating now at \"{Settings.ObjectIndicesFolder}\"");
144+
_ = Directory.CreateDirectory(Settings.ObjectIndicesFolder);
145+
}
146+
}
147+
132148
void InitialiseDownloadDirectory()
133149
{
134150
if (string.IsNullOrEmpty(Settings.DownloadFolder))

0 commit comments

Comments
 (0)