add a pure data export for non-spreadsheet applications

This commit is contained in:
Matthias Mailänder
2014-06-15 20:13:14 +02:00
parent 6d2dfabb41
commit 1d276e4186

View File

@@ -546,10 +546,11 @@ namespace OpenRA.Utility
Console.WriteLine(dest + " saved.");
}
[Desc("MOD", "Export the game rules into a CSV file to inspect in a spreadheet.")]
[Desc("MOD", "[--pure-data]", "Export the game rules into a CSV file for inspection.")]
public static void ExportCharacterSeparatedRules(string[] args)
{
var mod = args[1];
var pureData = args.Contains("--pure-data");
Game.modData = new ModData(mod);
var rules = Game.modData.RulesetCache.LoadDefaultRules();
@@ -568,6 +569,9 @@ namespace OpenRA.Utility
vsArmor = vsArmor + ";vs. " + armorType;
var dump = new StringBuilder();
if (pureData)
dump.AppendLine("Name;Faction;Health;Cost;Weapon;Damage;Burst;Delay;Rate of Fire");
else
dump.AppendLine("Name;Faction;Health;Cost;Weapon;Damage;Burst;Delay;Rate of Fire;Damage per Second" + vsArmor);
var line = 1;
@@ -625,6 +629,9 @@ namespace OpenRA.Utility
versus = versus + "=J{0}*{1};".F(line, vs);
}
if (pureData)
dump.Append(";{0};{1};{2};{3};{4}".F(weaponName, damage, burst, delay, rateOfFire));
else
dump.Append(";{0};{1};{2};{3};{4};{5};{6}".F(weaponName, damage, burst, delay, rateOfFire, damagePerSecond, versus));
}
}
@@ -634,7 +641,9 @@ namespace OpenRA.Utility
var filename = "{0}-mod-rules.csv".F(mod);
using (StreamWriter outfile = new StreamWriter(filename))
outfile.Write(dump.ToString());
Console.WriteLine("{0} has been saved.\nOpen in a spreadsheet application as values separated by semicolon.".F(filename));
Console.WriteLine("{0} has been saved.".F(filename));
if (!pureData)
Console.WriteLine("Open in a spreadsheet application as values separated by semicolon.");
}
}
}