add a pure data export for non-spreadsheet applications
This commit is contained in:
@@ -546,10 +546,11 @@ namespace OpenRA.Utility
|
|||||||
Console.WriteLine(dest + " saved.");
|
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)
|
public static void ExportCharacterSeparatedRules(string[] args)
|
||||||
{
|
{
|
||||||
var mod = args[1];
|
var mod = args[1];
|
||||||
|
var pureData = args.Contains("--pure-data");
|
||||||
Game.modData = new ModData(mod);
|
Game.modData = new ModData(mod);
|
||||||
var rules = Game.modData.RulesetCache.LoadDefaultRules();
|
var rules = Game.modData.RulesetCache.LoadDefaultRules();
|
||||||
|
|
||||||
@@ -568,7 +569,10 @@ namespace OpenRA.Utility
|
|||||||
vsArmor = vsArmor + ";vs. " + armorType;
|
vsArmor = vsArmor + ";vs. " + armorType;
|
||||||
|
|
||||||
var dump = new StringBuilder();
|
var dump = new StringBuilder();
|
||||||
dump.AppendLine("Name;Faction;Health;Cost;Weapon;Damage;Burst;Delay;Rate of Fire;Damage per Second" + vsArmor);
|
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;
|
var line = 1;
|
||||||
foreach (var actorInfo in rules.Actors.Values)
|
foreach (var actorInfo in rules.Actors.Values)
|
||||||
@@ -625,7 +629,10 @@ namespace OpenRA.Utility
|
|||||||
versus = versus + "=J{0}*{1};".F(line, vs);
|
versus = versus + "=J{0}*{1};".F(line, vs);
|
||||||
}
|
}
|
||||||
|
|
||||||
dump.Append(";{0};{1};{2};{3};{4};{5};{6}".F(weaponName, damage, burst, delay, rateOfFire, damagePerSecond, versus));
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dump.AppendLine();
|
dump.AppendLine();
|
||||||
@@ -634,7 +641,9 @@ namespace OpenRA.Utility
|
|||||||
var filename = "{0}-mod-rules.csv".F(mod);
|
var filename = "{0}-mod-rules.csv".F(mod);
|
||||||
using (StreamWriter outfile = new StreamWriter(filename))
|
using (StreamWriter outfile = new StreamWriter(filename))
|
||||||
outfile.Write(dump.ToString());
|
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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user