BrashMonkey.Spriter.Data.IO.SCMLParser.ReadMainline C# (CSharp) Method

ReadMainline() private method

private ReadMainline ( XmlElement element, SpriterAnimation animation ) : void
element System.Xml.XmlElement
animation BrashMonkey.Spriter.Data.ObjectModel.SpriterAnimation
return void
        void ReadMainline(XmlElement element, SpriterAnimation animation)
        {
            foreach(XmlElement child in element)
            {
                // key
                if (child.Name.Equals("key"))
                {
                    SpriterMainlineKey key = new SpriterMainlineKey();
                    animation.mainline.keys.Add(key);

                    foreach(XmlAttribute attribute in child.Attributes)
                    {
                        // id
                        if (attribute.Name.Equals("id"))
                            key.ID = int.Parse(attribute.Value);

                        // time
                        else if (attribute.Name.Equals("time"))
                            key.time = int.Parse(attribute.Value);
                    }

                    foreach(XmlElement child2 in child)
                    {
                        // meta_data
                        if (child2.Name.Equals("meta_data"))
                            ReadMetaData(child2, key.metaData);

                        // hierarchy
                        else if (child2.Name.Equals("hierarchy"))
                            ReadHierarchy(child2, key.hierarchy);

                        // object
                        else if (child2.Name.Equals("object"))
                            ReadMainlineObject(child2, key);

                        // object_ref
                        else if (child2.Name.Equals("object_ref"))
                            ReadMainlineObjectRef(child2, key);

                        // Spriter doesn't always output files to the spec;
                        // check for bones here too
                        // bone
                        else if (child2.Name.Equals("bone"))
                        {
                            ReadBone(key.hierarchy, child2);
                        }

                        // bone_ref
                        else if (child2.Name.Equals("bone_ref"))
                        {
                            ReadBoneRef(key.hierarchy, child2);
                        }
                    }
                }
            }
        }