mod manifest loading
This commit is contained in:
@@ -31,7 +31,32 @@ namespace OpenRa.FileFormats
|
||||
{
|
||||
public string Map = "scm12ea.ini";
|
||||
public string[] Packages = {}; // filename:sha1 pairs.
|
||||
public string[] Mods = { "ra" }; // mod names
|
||||
public int OrderLatency = 3;
|
||||
}
|
||||
}
|
||||
|
||||
public class Manifest
|
||||
{
|
||||
public readonly string[] Packages = { };
|
||||
public readonly string[] LegacyRules = { };
|
||||
public readonly string[] Rules = { };
|
||||
public readonly string[] Sequences = { };
|
||||
public readonly string[] Assemblies = { };
|
||||
|
||||
public Manifest(string[] mods)
|
||||
{
|
||||
var yaml = mods
|
||||
.Select(m => MiniYaml.FromFile("mods/" + m + "/mod.yaml"))
|
||||
.Aggregate(MiniYaml.Merge);
|
||||
|
||||
Packages = YamlList(yaml, "Packages");
|
||||
LegacyRules = YamlList(yaml, "LegacyRules");
|
||||
Rules = YamlList(yaml, "Rules");
|
||||
Sequences = YamlList(yaml, "Sequences");
|
||||
Assemblies = YamlList(yaml, "Assemblies");
|
||||
}
|
||||
|
||||
static string[] YamlList(Dictionary<string, MiniYaml> ys, string key) { return ys[key].Nodes.Keys.ToArray(); }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user