Rework mod enumeration / caching.

- Replaced ModMetadata.AllMods with Game.Mods.
- Store / reference mod Manifest instead of ModMetadata.
- Removes engine dependency on ModContent class.
This commit is contained in:
Paul Chote
2016-08-05 17:07:04 +01:00
parent 45a596953e
commit 3df9efb95d
33 changed files with 301 additions and 219 deletions

View File

@@ -132,13 +132,13 @@ namespace OpenRA.Network
case "HandshakeRequest":
{
// Switch to the server's mod if we need and are able to
var mod = Game.ModData.Manifest.Mod;
var mod = Game.ModData.Manifest;
var request = HandshakeRequest.Deserialize(order.TargetString);
ModMetadata serverMod;
Manifest serverMod;
if (request.Mod != mod.Id &&
ModMetadata.AllMods.TryGetValue(request.Mod, out serverMod) &&
serverMod.Version == request.Version)
Game.Mods.TryGetValue(request.Mod, out serverMod) &&
serverMod.Mod.Version == request.Version)
{
var replay = orderManager.Connection as ReplayConnection;
var launchCommand = replay != null ?
@@ -170,7 +170,7 @@ namespace OpenRA.Network
{
Client = info,
Mod = mod.Id,
Version = mod.Version,
Version = mod.Mod.Version,
Password = orderManager.Password
};