OSDN Git Service

refactored. GetHashCode
[tdcgexplorer/tso2mqo.git] / RDBBonFile.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.IO;\r
4 using System.Text;\r
5 \r
6 namespace Tso2MqoGui\r
7 {\r
8     public class RDBJoint\r
9     {\r
10         public int      No;\r
11         public string   Name;\r
12 \r
13         public RDBJoint(int no, string name)\r
14         {\r
15             No  = no;\r
16             Name= name;\r
17         }\r
18 \r
19         public override string ToString()\r
20         {\r
21             return No.ToString().PadLeft(4, '0') + ":" + Name;\r
22         }\r
23     }\r
24 \r
25     public class RDBBone\r
26     {\r
27         public int      Begin;\r
28         public int      End;\r
29 \r
30         public RDBBone(int begin, int end)\r
31         {\r
32             Begin   = begin;\r
33             End     = end;\r
34         }\r
35 \r
36         public override string ToString()\r
37         {\r
38             return "0003," + Begin.ToString().PadLeft(4, '0')\r
39                      + "," + End  .ToString().PadLeft(4, '0');\r
40         }\r
41     }\r
42 \r
43     public class RDBBonFile\r
44     {\r
45         public int                          no      = 0;\r
46         public List<RDBJoint>               joints  = new List<RDBJoint>();\r
47         public Dictionary<string, RDBJoint> jointmap= new Dictionary<string, RDBJoint>();\r
48         public List<RDBBone>                bones   = new List<RDBBone>();\r
49 \r
50         public void AddJoint(string name)\r
51         {\r
52             RDBJoint    j   = new RDBJoint(no++, name);\r
53             joints.Add(j);\r
54             jointmap.Add(name, j);\r
55         }\r
56 \r
57         public void AddBone(int begin, int end)\r
58         {\r
59             bones.Add(new RDBBone(begin, end));\r
60         }\r
61 \r
62         public void Save(string file)\r
63         {\r
64             StringBuilder   sb  = new StringBuilder();\r
65 \r
66             sb.AppendLine("BoneFile : type separated : ver1001")\r
67               .AppendLine("")\r
68               .AppendLine("NAMEPART_START");\r
69 \r
70             foreach(RDBJoint i in joints)\r
71                 sb.AppendLine(i.ToString());\r
72 \r
73             sb.AppendLine("NAMEPART_END")\r
74               .AppendLine("")\r
75               .AppendLine("")\r
76               .AppendLine("TREEPART_START")\r
77               .AppendLine("");\r
78 \r
79             foreach(RDBBone i in bones)\r
80                 sb.AppendLine(i.ToString());\r
81             \r
82             sb.AppendLine("TREEPART_END");\r
83 \r
84             File.WriteAllText(file, sb.ToString(), Encoding.Default);\r
85         }\r
86     }\r
87 }\r