evershade/Packages/super-tiled2unity.v2.2.0/Editor/Loaders/CustomPropertyLoader.cs

54 lines
1.6 KiB
C#

using System.Collections.Generic;
using System.Xml.Linq;
namespace SuperTiled2Unity.Editor
{
public static class CustomPropertyLoader
{
public static List<CustomProperty> LoadCustomPropertyList(XElement xProperties)
{
List<CustomProperty> properties = new List<CustomProperty>();
if (xProperties != null)
{
foreach (var xProperty in xProperties.Elements("property"))
{
var property = LoadCustomProperty(xProperty);
if (!property.IsEmpty)
{
properties.Add(property);
}
}
}
return properties;
}
public static CustomProperty LoadCustomProperty(XElement xProperty)
{
CustomProperty property = new CustomProperty();
property.m_Name = xProperty.GetAttributeAs("name", "");
property.m_Type = xProperty.GetAttributeAs("type", "string");
// In some cases, value may be in the default attribute
property.m_Value = xProperty.GetAttributeAs("default", "");
// A value attribute overrides a default attribute
if (!string.IsNullOrEmpty(xProperty.Value))
{
// Using inner text
property.m_Value = xProperty.Value;
}
else
{
// Using value attribute
property.m_Value = xProperty.GetAttributeAs<string>("value", property.m_Value);
}
return property;
}
}
}