Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }