Rename Manifest.Mod -> Metadata.

This commit is contained in:
Paul Chote
2016-08-05 19:00:36 +01:00
parent 3df9efb95d
commit bf4867909f
23 changed files with 45 additions and 59 deletions

View File

@@ -306,7 +306,7 @@ namespace OpenRA
Mods = new InstalledMods();
Console.WriteLine("Available mods:");
foreach (var mod in Mods)
Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Mod.Title, mod.Value.Mod.Version);
Console.WriteLine("\t{0}: {1} ({2})", mod.Key, mod.Value.Metadata.Title, mod.Value.Metadata.Version);
InitializeMod(Settings.Game.Mod, args);
}
@@ -319,7 +319,7 @@ namespace OpenRA
public static bool IsModInstalled(KeyValuePair<string, string> mod)
{
return Mods.ContainsKey(mod.Key)
&& Mods[mod.Key].Mod.Version == mod.Value
&& Mods[mod.Key].Metadata.Version == mod.Value
&& IsModInstalled(mod.Key);
}
@@ -471,7 +471,7 @@ namespace OpenRA
ThreadPool.QueueUserWorkItem(_ =>
{
var mod = ModData.Manifest.Mod;
var mod = ModData.Manifest.Metadata;
var directory = Platform.ResolvePath("^", "Screenshots", ModData.Manifest.Id, mod.Version);
Directory.CreateDirectory(directory);

View File

@@ -31,12 +31,21 @@ namespace OpenRA
}
}
public class ModMetadata
{
public string Title;
public string Description;
public string Version;
public string Author;
public bool Hidden;
}
/// <summary> Describes what is to be loaded in order to run a mod. </summary>
public class Manifest
{
public readonly string Id;
public readonly IReadOnlyPackage Package;
public readonly ModMetadata Mod;
public readonly ModMetadata Metadata;
public readonly string[]
Rules, ServerTraits,
Sequences, VoxelSequences, Cursors, Chrome, Assemblies, ChromeLayout,
@@ -70,7 +79,7 @@ namespace OpenRA
Package = package;
yaml = new MiniYaml(null, MiniYaml.FromStream(package.GetStream("mod.yaml"), "mod.yaml")).ToDictionary();
Mod = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
Metadata = FieldLoader.Load<ModMetadata>(yaml["Metadata"]);
// TODO: Use fieldloader
MapFolders = YamlDictionary(yaml, "MapFolders");

View File

@@ -1,22 +0,0 @@
#region Copyright & License Information
/*
* Copyright 2007-2016 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
namespace OpenRA
{
public class ModMetadata
{
public string Title;
public string Description;
public string Version;
public string Author;
public bool Hidden;
}
}

View File

@@ -44,8 +44,8 @@ namespace OpenRA.Network
{
ModId = modVersion[0];
ModVersion = modVersion[1];
ModLabel = "{0} ({1})".F(mod.Mod.Title, modVersion[1]);
IsCompatible = Game.Settings.Debug.IgnoreVersionMismatch || ModVersion == mod.Mod.Version;
ModLabel = "{0} ({1})".F(mod.Metadata.Title, modVersion[1]);
IsCompatible = Game.Settings.Debug.IgnoreVersionMismatch || ModVersion == mod.Metadata.Version;
}
else
ModLabel = "Unknown mod: {0}".F(Mods);

View File

@@ -45,7 +45,7 @@ namespace OpenRA.Network
{
var filename = chooseFilename();
var mod = Game.ModData.Manifest;
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Mod.Version);
var dir = Platform.ResolvePath("^", "Replays", mod.Id, mod.Metadata.Version);
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);

View File

@@ -96,7 +96,7 @@ namespace OpenRA.Network
{
if (r.Frame == frame)
{
var mod = Game.ModData.Manifest.Mod;
var mod = Game.ModData.Manifest.Metadata;
Log.Write("sync", "Player: {0} ({1} {2} {3})", Game.Settings.Player.Name, Platform.CurrentPlatform, Environment.OSVersion, Platform.RuntimeVersion);
Log.Write("sync", "Game ID: {0} (Mod: {1} at Version {2})", orderManager.LobbyInfo.GlobalSettings.GameUid, mod.Title, mod.Version);
Log.Write("sync", "Sync for net frame {0} -------------", r.Frame);

View File

@@ -138,7 +138,7 @@ namespace OpenRA.Network
Manifest serverMod;
if (request.Mod != mod.Id &&
Game.Mods.TryGetValue(request.Mod, out serverMod) &&
serverMod.Mod.Version == request.Version)
serverMod.Metadata.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.Mod.Version,
Version = mod.Metadata.Version,
Password = orderManager.Password
};

View File

@@ -204,7 +204,6 @@
<Compile Include="Traits\Player\FixedColorPalette.cs" />
<Compile Include="Primitives\ReadOnlyDictionary.cs" />
<Compile Include="Primitives\ReadOnlyList.cs" />
<Compile Include="ModMetadata.cs" />
<Compile Include="GameRules\Ruleset.cs" />
<Compile Include="Support\MersenneTwister.cs" />
<Compile Include="GameInformation.cs" />

View File

@@ -263,7 +263,7 @@ namespace OpenRA.Server
var request = new HandshakeRequest
{
Mod = ModData.Manifest.Id,
Version = ModData.Manifest.Mod.Version,
Version = ModData.Manifest.Metadata.Version,
Map = LobbyInfo.GlobalSettings.Map
};
@@ -337,7 +337,7 @@ namespace OpenRA.Server
return;
}
if (ModData.Manifest.Mod.Version != handshake.Version && !LobbyInfo.GlobalSettings.AllowVersionMismatch)
if (ModData.Manifest.Metadata.Version != handshake.Version && !LobbyInfo.GlobalSettings.AllowVersionMismatch)
{
Log.Write("server", "Rejected connection from {0}; Not running the same version.",
newConn.Socket.RemoteEndPoint);

View File

@@ -52,7 +52,7 @@ namespace OpenRA
if (Game.ModData != null)
{
var mod = Game.ModData.Manifest.Mod;
var mod = Game.ModData.Manifest.Metadata;
Log.Write("exception", "{0} Mod at Version {1}", mod.Title, mod.Version);
}

View File

@@ -177,7 +177,7 @@ namespace OpenRA
gameInfo = new GameInformation
{
Mod = Game.ModData.Manifest.Id,
Version = Game.ModData.Manifest.Mod.Version,
Version = Game.ModData.Manifest.Metadata.Version,
MapUid = Map.Uid,
MapTitle = Map.Title