OSDN Git Service

rename var v to refvs.
[tdcgexplorer/tso2mqo.git] / MqxReader.cs
1 using System;
2 using System.Collections.Generic;
3 using System.IO;
4 using System.Text;
5 using System.Xml;
6
7 namespace Tso2MqoGui
8 {
9     /// MqxFileを読み込みます。
10     public class MqxReader
11     {
12         // mqo path
13         //todo: rename to MqoPath
14         public string MqoFile;
15
16         string GetMqxPath()
17         {
18             return Path.ChangeExtension(MqoFile, ".mqx");
19         }
20
21         // ボーン配列 [out]
22         public MqoBone[] bones;
23
24         // MqxFileを読み込む。
25         public void Read()
26         {
27             XmlReader reader = XmlReader.Create(GetMqxPath());
28             reader.Read();
29
30             reader.ReadStartElement("MetasequoiaDocument");
31
32             reader.ReadStartElement("IncludedBy");
33             string mqo_file = reader.ReadString();
34             Console.WriteLine(mqo_file);
35             reader.ReadEndElement();//IncludedBy
36
37             reader.ReadStartElement("Plugin.56A31D20.71F282AB");
38             reader.ReadStartElement("BoneSet");
39             int len = 255;
40             bones = new MqoBone[len];
41             int i = 0;
42             while (reader.IsStartElement("Bone"))
43             {
44                 MqoBone bone = new MqoBone();
45                 bone.Read(reader);
46                 this.bones[i++] = bone;
47             }
48             reader.ReadEndElement();//BoneSet
49
50             while (reader.IsStartElement("Obj"))
51             {
52                 Console.WriteLine("Obj");
53                 Console.WriteLine("  id:{0}", reader.GetAttribute("id"));
54                 reader.Read();//Obj
55             }
56
57             while (reader.IsStartElement("Poses"))
58             {
59                 Console.WriteLine("Poses");
60                 Console.WriteLine("  isExist:{0}", reader.GetAttribute("isExist"));
61                 bool empty = reader.IsEmptyElement;
62                 reader.Read();//Poses
63                 if (empty)
64                     continue;
65                 while (reader.IsStartElement("Pose"))
66                 {
67                     Console.WriteLine("Pose");
68                     Console.WriteLine("  id:{0}", reader.GetAttribute("id"));
69                     reader.Read();//Pose
70                 }
71                 reader.ReadEndElement();//Poses
72             }
73             reader.ReadEndElement();//Plugin.56A31D20.71F282AB
74             reader.ReadEndElement();//MetasequoiaDocument
75
76             reader.Close();
77         }
78     }
79 }