Merge pull request #9187 from RoosterDragon/field-saver-culture
Fix culture in FieldSaver for collections
This commit is contained in:
@@ -66,11 +66,13 @@ namespace OpenRA
|
|||||||
return new MiniYamlNode(field, FormatValue(o, o.GetType().GetField(field)));
|
return new MiniYamlNode(field, FormatValue(o, o.GetType().GetField(field)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string FormatValue(object v, Type t)
|
public static string FormatValue(object v)
|
||||||
{
|
{
|
||||||
if (v == null)
|
if (v == null)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
|
var t = v.GetType();
|
||||||
|
|
||||||
// Color.ToString() does the wrong thing; force it to format as an array
|
// Color.ToString() does the wrong thing; force it to format as an array
|
||||||
if (t == typeof(Color))
|
if (t == typeof(Color))
|
||||||
{
|
{
|
||||||
@@ -81,14 +83,6 @@ namespace OpenRA
|
|||||||
((int)c.B).Clamp(0, 255));
|
((int)c.B).Clamp(0, 255));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't save using country-specific decimal separators which can be misunderstood as group seperators.
|
|
||||||
if (t == typeof(float))
|
|
||||||
return ((float)v).ToString(CultureInfo.InvariantCulture);
|
|
||||||
if (t == typeof(decimal))
|
|
||||||
return ((decimal)v).ToString(CultureInfo.InvariantCulture);
|
|
||||||
if (t == typeof(double))
|
|
||||||
return ((double)v).ToString(CultureInfo.InvariantCulture);
|
|
||||||
|
|
||||||
if (t == typeof(ImageFormat))
|
if (t == typeof(ImageFormat))
|
||||||
{
|
{
|
||||||
return ((ImageFormat)v).ToString();
|
return ((ImageFormat)v).ToString();
|
||||||
@@ -102,12 +96,12 @@ namespace OpenRA
|
|||||||
|
|
||||||
if (t.IsArray && t.GetArrayRank() == 1)
|
if (t.IsArray && t.GetArrayRank() == 1)
|
||||||
{
|
{
|
||||||
return ((Array)v).Cast<object>().JoinWith(", ");
|
return ((Array)v).Cast<object>().Select(FormatValue).JoinWith(", ");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(HashSet<>))
|
if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(HashSet<>))
|
||||||
{
|
{
|
||||||
return ((System.Collections.IEnumerable)v).Cast<object>().JoinWith(", ");
|
return ((System.Collections.IEnumerable)v).Cast<object>().Select(FormatValue).JoinWith(", ");
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is only for documentation generation
|
// This is only for documentation generation
|
||||||
@@ -153,7 +147,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
public static string FormatValue(object o, FieldInfo f)
|
public static string FormatValue(object o, FieldInfo f)
|
||||||
{
|
{
|
||||||
return FormatValue(f.GetValue(o), f.FieldType);
|
return FormatValue(f.GetValue(o));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user