Replaced manual rect parsing in a bunch of places with an extension method
This commit is contained in:
@@ -1591,29 +1591,11 @@ namespace Barotrauma
|
||||
}
|
||||
|
||||
public static void Load(XElement element, Submarine submarine)
|
||||
{
|
||||
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||
string[] rectValues = rectString.Split(',');
|
||||
Rectangle rect = Rectangle.Empty;
|
||||
if (rectValues.Length==4)
|
||||
{
|
||||
rect = new Rectangle(
|
||||
int.Parse(rectValues[0]),
|
||||
int.Parse(rectValues[1]),
|
||||
int.Parse(rectValues[2]),
|
||||
int.Parse(rectValues[3]));
|
||||
}
|
||||
else
|
||||
{
|
||||
rect = new Rectangle(
|
||||
int.Parse(rectValues[0]),
|
||||
int.Parse(rectValues[1]),
|
||||
0, 0);
|
||||
}
|
||||
|
||||
{
|
||||
Rectangle rect = element.GetAttributeRect("rect", Rectangle.Empty);
|
||||
|
||||
string name = element.Attribute("name").Value;
|
||||
|
||||
|
||||
foreach (MapEntityPrefab ep in MapEntityPrefab.list)
|
||||
{
|
||||
ItemPrefab ip = ep as ItemPrefab;
|
||||
@@ -1621,7 +1603,7 @@ namespace Barotrauma
|
||||
|
||||
if (ip.Name != name && (ip.Aliases == null || !ip.Aliases.Contains(name))) continue;
|
||||
|
||||
if (rect.Width==0 && rect.Height==0)
|
||||
if (rect.Width == 0 && rect.Height == 0)
|
||||
{
|
||||
rect.Width = (int)ip.Size.X;
|
||||
rect.Height = (int)ip.Size.Y;
|
||||
|
||||
@@ -654,17 +654,11 @@ namespace Barotrauma
|
||||
|
||||
if (element.Attribute("rect") != null)
|
||||
{
|
||||
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||
string[] rectValues = rectString.Split(',');
|
||||
|
||||
rect = new Rectangle(
|
||||
int.Parse(rectValues[0]),
|
||||
int.Parse(rectValues[1]),
|
||||
int.Parse(rectValues[2]),
|
||||
int.Parse(rectValues[3]));
|
||||
rect = element.GetAttributeRect("rect", Rectangle.Empty);
|
||||
}
|
||||
else
|
||||
{
|
||||
//backwards compatibility
|
||||
rect = new Rectangle(
|
||||
int.Parse(element.Attribute("x").Value),
|
||||
int.Parse(element.Attribute("y").Value),
|
||||
|
||||
@@ -708,20 +708,13 @@ namespace Barotrauma
|
||||
public static void Load(XElement element, Submarine submarine)
|
||||
{
|
||||
Rectangle rect = Rectangle.Empty;
|
||||
|
||||
if (element.Attribute("rect") != null)
|
||||
{
|
||||
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||
string[] rectValues = rectString.Split(',');
|
||||
|
||||
rect = new Rectangle(
|
||||
int.Parse(rectValues[0]),
|
||||
int.Parse(rectValues[1]),
|
||||
int.Parse(rectValues[2]),
|
||||
int.Parse(rectValues[3]));
|
||||
rect = element.GetAttributeRect("rect", Rectangle.Empty);
|
||||
}
|
||||
else
|
||||
{
|
||||
//backwards compatibility
|
||||
rect = new Rectangle(
|
||||
int.Parse(element.Attribute("x").Value),
|
||||
int.Parse(element.Attribute("y").Value),
|
||||
|
||||
@@ -824,14 +824,7 @@ namespace Barotrauma
|
||||
|
||||
public static void Load(XElement element, Submarine submarine)
|
||||
{
|
||||
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||
string[] rectValues = rectString.Split(',');
|
||||
|
||||
Rectangle rect = new Rectangle(
|
||||
int.Parse(rectValues[0]),
|
||||
int.Parse(rectValues[1]),
|
||||
int.Parse(rectValues[2]),
|
||||
int.Parse(rectValues[3]));
|
||||
Rectangle rect = element.GetAttributeRect("rect", Rectangle.Empty);
|
||||
|
||||
string name = element.Attribute("name").Value;
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ namespace Barotrauma
|
||||
propertyInfo.SetValue(obj, XMLExtensions.ParseColor(value));
|
||||
break;
|
||||
case "rectangle":
|
||||
propertyInfo.SetValue(obj, XMLExtensions.ParseRect(value));
|
||||
propertyInfo.SetValue(obj, XMLExtensions.ParseRect(value, true));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -213,6 +213,15 @@ namespace Barotrauma
|
||||
return ParseVector4(val);
|
||||
}
|
||||
|
||||
public static Rectangle GetAttributeRect(this XElement element, string name, Rectangle defaultValue)
|
||||
{
|
||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
||||
|
||||
string val = element.Attribute(name).Value;
|
||||
|
||||
return ParseRect(val, false);
|
||||
}
|
||||
|
||||
public static string ElementInnerText(this XElement el)
|
||||
{
|
||||
StringBuilder str = new StringBuilder();
|
||||
@@ -337,13 +346,13 @@ namespace Barotrauma
|
||||
|
||||
return new Color(components[0], components[1], components[2], components[3]);
|
||||
}
|
||||
|
||||
public static Rectangle ParseRect(string stringColor, bool errorMessages = true)
|
||||
|
||||
public static Rectangle ParseRect(string stringRect, bool requireSize, bool errorMessages = true)
|
||||
{
|
||||
string[] strComponents = stringColor.Split(',');
|
||||
if (strComponents.Length < 3)
|
||||
string[] strComponents = stringRect.Split(',');
|
||||
if ((strComponents.Length < 3 && requireSize) || strComponents.Length < 2)
|
||||
{
|
||||
if (errorMessages) DebugConsole.ThrowError("Failed to parse the string \"" + stringColor + "\" to Color");
|
||||
if (errorMessages) DebugConsole.ThrowError("Failed to parse the string \"" + stringRect + "\" to Rectangle");
|
||||
return new Rectangle(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user