-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
16 changed files
with
407 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
using Newtonsoft.Json; | ||
using System; | ||
|
||
namespace ZenovaLauncher | ||
{ | ||
public class Mod | ||
{ | ||
public string NameId { get; set; } | ||
public string Name { get; set; } | ||
public string Description { get; set; } | ||
public Version Version { get; set; } | ||
public string MinVersion | ||
{ | ||
get { return MinMCVersion.InternalName; } | ||
set { MinMCVersion = VersionManager.instance.GetVersionFromString(value); } | ||
} | ||
public string MaxVersion | ||
{ | ||
get { return MaxMCVersion.InternalName; } | ||
set { MaxMCVersion = VersionManager.instance.GetVersionFromString(value); } | ||
} | ||
[JsonIgnore] | ||
public string ModDirectory { get; set; } | ||
[JsonIgnore] | ||
public MinecraftVersion MinMCVersion { get; set; } | ||
[JsonIgnore] | ||
public MinecraftVersion MaxMCVersion { get; set; } | ||
[JsonIgnore] | ||
public Version LatestSupported => MaxMCVersion.Version; | ||
|
||
public enum ModSortType | ||
{ | ||
ByLatestSupported, | ||
ByName | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
using Newtonsoft.Json; | ||
using Newtonsoft.Json.Serialization; | ||
using System; | ||
using System.Collections.ObjectModel; | ||
using System.Diagnostics; | ||
using System.IO; | ||
using System.Linq; | ||
using System.Windows; | ||
|
||
namespace ZenovaLauncher | ||
{ | ||
public class ModManager : ObservableCollection<Mod> | ||
{ | ||
public static ModManager instance; | ||
private static JsonSerializerSettings jsonSettings; | ||
|
||
private readonly string _modsFileName = "modinfo.json"; | ||
|
||
public string ModsDirectory { get; set; } | ||
|
||
public ModManager(string modsDir) | ||
{ | ||
ModsDirectory = modsDir; | ||
} | ||
|
||
public Mod GetModFromDirectory(string dir) | ||
{ | ||
return this.FirstOrDefault(m => m.ModDirectory == dir); | ||
} | ||
|
||
public void LoadMods() | ||
{ | ||
jsonSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; | ||
foreach (string dir in Directory.GetDirectories(ModsDirectory)) | ||
{ | ||
try | ||
{ | ||
if (File.Exists(Path.Combine(dir, _modsFileName))) | ||
{ | ||
Mod mod = JsonConvert.DeserializeObject<Mod>(File.ReadAllText(Path.Combine(dir, _modsFileName)), jsonSettings); | ||
mod.ModDirectory = dir; | ||
Add(mod); | ||
} | ||
} | ||
catch (Exception e) | ||
{ | ||
Trace.WriteLine("Mods JSON Deserialize Failed: " + e.ToString()); | ||
MessageBox.Show("Mods JSON Deserialize Failed: " + e.ToString()); | ||
} | ||
} | ||
} | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.