internal void Init(Metadata metadata) { int rectX = 0;int rectY = 0;int rectW = 0;int rectH = 0; bool isRotated = false; switch (metadata.GetFormat()) { case 0: /* <key>width</key> <integer>211</integer> <key>height</key> <integer>167</integer> <key>originalWidth</key> <integer>211</integer> <key>originalHeight</key> <integer>167</integer> <key>x</key> <integer>544</integer> <key>y</key> <integer>436</integer> <key>offsetX</key> <real>0</real> <key>offsetY</key> <real>0</real> */ int.TryParse(this.X, out rectX); int.TryParse(this.Y, out rectY); int.TryParse(this.Width, out rectW); int.TryParse(this.Height, out rectH); break; case 1: case 2: /* <key>frame</key> <string>{{902,131},{108,125}}</string> <key>offset</key> <string>{0,0}</string> <key>rotated</key> <false/> <key>sourceColorRect</key> <string>{{1,4},{108,125}}</string> <key>sourceSize</key> <string>{110,133}</string> */ bool.TryParse(Rotated, out isRotated); MatchCollection mathchs = Regex.Matches(Frame, @"\d+"); int.TryParse(mathchs[0].ToString(), out rectX); int.TryParse(mathchs[1].ToString(), out rectY); int.TryParse(mathchs[2].ToString(), out rectW); int.TryParse(mathchs[3].ToString(), out rectH); break; case 3: //{{104, 242}, {24, 32}} bool.TryParse(TextureRotated, out isRotated); mathchs = Regex.Matches(TextureRect, @"\d+"); int.TryParse(mathchs[0].ToString(), out rectX); int.TryParse(mathchs[1].ToString(), out rectY); int.TryParse(mathchs[2].ToString(), out rectW); int.TryParse(mathchs[3].ToString(), out rectH); break; } this.textureRect.X = rectX; this.textureRect.Y = rectY; this.textureRect.Width = rectW; this.textureRect.Height = rectH; IsRotated = isRotated; }
public PlistData CreatePlistData() { PlistData plistData = new PlistData(); foreach (DataType item in DataList) { if (item.DataName == "frames") { List<DataType> children = GetDataType(item.childrenID); foreach (DataType child in children) { FrameData frameData = new FrameData(); frameData.PngName = child.DataName; Type type = frameData.GetType(); List<DataType> frameDataList = GetDataType(child.childrenID); foreach (DataType data in frameDataList) { System.Reflection.PropertyInfo propertyInfo = type.GetProperty(StringHelper.ToTitleCase(data.DataName)); if (propertyInfo != null) { propertyInfo.SetValue(frameData, data.Value); } else { Logger.Wran(type.ToString() + "不包含属性:" + data.DataName); } } plistData.Frames.Add(frameData); } } else if (item.DataName == "metadata") { Metadata metadata = new Metadata(); List<DataType> children = GetDataType(item.childrenID); foreach (DataType child in children) { Type type = metadata.GetType(); System.Reflection.PropertyInfo propertyInfo = type.GetProperty(StringHelper.ToTitleCase(child.DataName)); if (propertyInfo != null) { propertyInfo.SetValue(metadata, child.Value); } else { Logger.Wran(type.ToString() + "不包含属性:" + child.DataName); } } plistData.Metadata = metadata; } } plistData.Init(); return plistData; }
internal void Init(Metadata metadata) { int rectX = 0; int rectY = 0; int rectW = 0; int rectH = 0; bool isRotated = false; switch (metadata.GetFormat()) { case 0: /* * <key>width</key> * <integer>211</integer> * <key>height</key> * <integer>167</integer> * <key>originalWidth</key> * <integer>211</integer> * <key>originalHeight</key> * <integer>167</integer> * <key>x</key> * <integer>544</integer> * <key>y</key> * <integer>436</integer> * <key>offsetX</key> * <real>0</real> * <key>offsetY</key> * <real>0</real> */ int.TryParse(this.X, out rectX); int.TryParse(this.Y, out rectY); int.TryParse(this.Width, out rectW); int.TryParse(this.Height, out rectH); break; case 1: case 2: /* * <key>frame</key> * <string>{{902,131},{108,125}}</string> * <key>offset</key> * <string>{0,0}</string> * <key>rotated</key> * <false/> * <key>sourceColorRect</key> * <string>{{1,4},{108,125}}</string> * <key>sourceSize</key> * <string>{110,133}</string> */ bool.TryParse(Rotated, out isRotated); MatchCollection mathchs = Regex.Matches(Frame, @"\d+"); int.TryParse(mathchs[0].ToString(), out rectX); int.TryParse(mathchs[1].ToString(), out rectY); int.TryParse(mathchs[2].ToString(), out rectW); int.TryParse(mathchs[3].ToString(), out rectH); break; case 3: //{{104, 242}, {24, 32}} bool.TryParse(TextureRotated, out isRotated); mathchs = Regex.Matches(TextureRect, @"\d+"); int.TryParse(mathchs[0].ToString(), out rectX); int.TryParse(mathchs[1].ToString(), out rectY); int.TryParse(mathchs[2].ToString(), out rectW); int.TryParse(mathchs[3].ToString(), out rectH); break; } this.textureRect.X = rectX; this.textureRect.Y = rectY; this.textureRect.Width = rectW; this.textureRect.Height = rectH; IsRotated = isRotated; }