void ReadEntity(XmlElement element)
{
foreach(XmlAttribute attribute in element.Attributes)
{
// id
if (attribute.Name.Equals("id"))
m_Data.entity.ID = int.Parse(attribute.Value);
// name
else if (attribute.Name.Equals("name"))
m_Data.entity.name = attribute.Value;
}
if (m_Data.entity.name.Length == 0)
m_Data.entity.name = "noname";
foreach(XmlElement child in element)
{
// meta_data
if (child.Name.Equals("meta_data"))
ReadMetaData(child, m_Data.entity.metaData);
// animation
else if (child.Name.Equals("animation"))
{
SpriterAnimation animation = new SpriterAnimation();
m_Data.entity.animations.Add(animation);
foreach(XmlAttribute attribute in child.Attributes)
{
// id
if (attribute.Name.Equals("id"))
animation.ID = int.Parse(attribute.Value);
// name
else if (attribute.Name.Equals("name"))
animation.name = attribute.Value;
// length
else if (attribute.Name.Equals("length"))
animation.length = int.Parse(attribute.Value);
// looping
else if (attribute.Name.Equals("looping"))
{
animation.playbackTypeRaw = attribute.Value;
animation.playbackType = SpriterDataHelpers.ParseSpriterEnum<PlaybackType>(animation.playbackTypeRaw);
}
// loop_to
else if (attribute.Name.Equals("loop_to"))
animation.loopTo = int.Parse(attribute.Value);
}
foreach(XmlElement child2 in child)
{
// meta_data
if (child2.Name.Equals("meta_data"))
ReadMetaData(child2, animation.metaData);
// mainline
else if (child2.Name.Equals("mainline"))
ReadMainline(child2, animation);
// timeline
else if (child2.Name.Equals("timeline"))
ReadTimeline(child2, animation);
}
}
}
}