Exemplo n.º 1
0
        private void Item_SelectionRangeChanged(object sender, unvell.ReoGrid.Events.RangeEventArgs e)
        {
            if (e == null)
            {
                return;
            }
            var cellLine = e.Range.StartPos.Row;

            if (Editing != null)
            {
                string local;
                if (Editing.Data == null)
                {
                    local = "";
                }
                else
                {
                    local = Editing.Data.ToString();
                }

                if (local != lastMainEdtiorText)
                {
                    mainEditor.Text = local;
                }
            }

            if (Editing != null && !IsCurrentPackageSteamWorkshop)
            {
                reoGridControl2.CurrentWorksheet[Editing.Position] = GetClear(mainEditor.Text);
                reoGridControl2.CurrentWorksheet.Cells[Editing.Position].Style.TextWrap = TextWrapMode.WordBreak;
                reoGridControl2.CurrentWorksheet.AutoFitRowHeight(Editing.Position.Row, false);
                reoGridControl2.CurrentWorksheet.SetRowsHeight(Editing.Position.Row, 1, 20);
                mainEditor.Text = "";
                Editing         = null;
            }
            var nameSheet = reoGridControl2.CurrentWorksheet.Name;

            for (int i = 0; i < 25; i++)
            {
                if (reoGridControl2.CurrentWorksheet[0, i] == null)
                {
                    continue;
                }
                var name    = reoGridControl2.CurrentWorksheet[0, i].ToString().ToLower();
                var current = reoGridControl2.CurrentWorksheet[cellLine, i];

                if (cellLine == 0)
                {
                    return;
                }

                if (current == null)
                {
                    if ((nameSheet == "Card" && name == "code") || (nameSheet == "Character" && name == "fieldcode"))
                    {
                        Editing = reoGridControl2.CurrentWorksheet.Cells[cellLine, i];
                    }

                    if (nameSheet == "Card")
                    {
                        switch (name)
                        {
                        case "id":
                            if (EdLib.HasFile(EdLib.path_AppData + "\\icon.png") && lastPicture != EdLib.path_AppData + "\\icon.png")
                            {
                                Image image = System.Drawing.Image.FromFile(EdLib.path_AppData + "\\icon.png");
                                pictureBox1.Image = image;
                                lastPicture       = EdLib.path_AppData + "\\icon.png";
                            }
                            break;

                        case "displayname":
                            label4.Text = "无名称";
                            break;

                        case "description":
                            label5.Text = "无描述";
                            break;

                        case "energyreq":
                            label6.Text = "0";
                            break;

                        case "range":
                            label7.Text = "0";
                            break;

                        case "code":
                            mainEditor.Text = "";
                            break;

                        case "spreadradius":
                            label8.Text = "0";
                            break;

                        case "backgroundid":
                            var pos2 = Form1.GetPath("{game}\\TetraProject_Data\\StreamingAssets\\Packages\\Builtin\\CardBackground\\5\\Card.png");
                            if (EdLib.HasFile(pos2, false) && lastPictureBG != pos2)
                            {
                                lastPictureBG = pos2;
                                Image image = System.Drawing.Image.FromFile(pos2);
                                pictureBox3.Image = image;
                            }
                            break;
                        }
                    }
                    if (nameSheet == "Character")
                    {
                        switch (name)
                        {
                        case "fieldcode":
                            mainEditor.Text = "";
                            break;

                        case "id":
                            if (EdLib.HasFile(EdLib.path_AppData + "\\icon.png") && lastASE != EdLib.path_AppData + "\\icon.png")
                            {
                                Image image = System.Drawing.Image.FromFile(EdLib.path_AppData + "\\icon.png");
                                pictureBox4.Image = image;
                                lastASE           = EdLib.path_AppData + "\\icon.png";
                            }
                            break;
                        }
                    }

                    continue;
                }
                if (nameSheet == "Card")
                {
                    switch (name)
                    {
                    case "id":
                        var pos = Form1.GetPath(Form1.path_CurrentPackage) + "\\CardArt\\" + current.ToString().Trim() + ".png";
                        if (EdLib.HasFile(pos, false) && lastPicture != pos)
                        {
                            lastPicture = pos;
                            Image image = System.Drawing.Image.FromFile(pos);
                            pictureBox1.Image = image;
                        }
                        else if (EdLib.HasFile(EdLib.path_AppData + "\\icon.png") && lastPicture != EdLib.path_AppData + "\\icon.png")
                        {
                            Image image = System.Drawing.Image.FromFile(EdLib.path_AppData + "\\icon.png");
                            pictureBox1.Image = image;
                            lastPicture       = EdLib.path_AppData + "\\icon.png";
                        }
                        break;

                    case "displayname":
                        label4.Text = current.ToString().Trim();
                        break;

                    case "description":
                        label5.Text = current.ToString().Trim();
                        break;

                    case "energyreq":
                        label6.Text = current.ToString().Trim();
                        break;

                    case "range":
                        label7.Text = current.ToString().Trim();
                        break;

                    case "code":

                        Editing = reoGridControl2.CurrentWorksheet.Cells[cellLine, i];
                        OptimizeVision(current.ToString());
                        lastMainEdtiorText = Editing.Data.ToString();
                        break;

                    case "spreadradius":
                        label8.Text = current.ToString().Trim();
                        break;

                    case "backgroundid":
                        var pos2 = Form1.GetPath("{game}\\TetraProject_Data\\StreamingAssets\\Packages\\Builtin\\CardBackground\\" + current.ToString().Trim() + "\\Card.png");
                        if (EdLib.HasFile(pos2, false) && lastPictureBG != pos2)
                        {
                            lastPictureBG = pos2;
                            Image image = System.Drawing.Image.FromFile(pos2);
                            //pictureBox2.Image = ZoomImage(new Bitmap(image), -25,-25);
                            pictureBox3.Image = image;
                            // pictureBox3.BackgroundImageLayout = ImageLayout.Stretch;
                            //pictureBox3.SizeMode = PictureBoxSizeMode.Zoom;
                        }
                        var pos3 = Form1.GetPath("{game}\\TetraProject_Data\\StreamingAssets\\Packages\\Builtin\\CardBackground\\" + current.ToString().Trim() + "\\CardGlow.png");
                        if (EdLib.HasFile(pos3, false) && lastPictureBG2 != pos3)
                        {
                            lastPictureBG2 = pos3;
                            Image image = System.Drawing.Image.FromFile(pos3);
                            //pictureBox2.Image = ZoomImage(new Bitmap(image), -25,-25);
                            //pictureBox2.Image = image;
                            //pictureBox2.BackgroundImageLayout = ImageLayout.Stretch;
                            //pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
                        }
                        break;
                    }
                }
                if (nameSheet == "Character")
                {
                    switch (name)
                    {
                    case "id":
                        var pos = Form1.GetPath(Form1.path_CurrentPackage) + "\\CharacterModel\\" + current.ToString().Trim() + ".ase";

                        if (EdLib.HasFile(pos, false) && lastASE != pos)
                        {
                            lastASE = pos;
                            var bytes = System.IO.File.ReadAllBytes(pos);
                            var ase   = Aseprite.ASEParser.Parse(bytes);
                            if (ase == null)
                            {
                                break;
                            }
                            var image = EdLib.GetImageFromAseCel(ase);
                            if (image != null)
                            {
                                pictureBox4.Image = image;
                            }
                            //pictureBox4.BackgroundImageLayout = ImageLayout.Stretch;
                            //pictureBox4.SizeMode = PictureBoxSizeMode.Zoom;
                        }
                        break;

                    case "fieldcode":

                        Editing = reoGridControl2.CurrentWorksheet.Cells[cellLine, i];

                        OptimizeVision(current.ToString());
                        lastMainEdtiorText = Editing.Data.ToString();

                        break;

                    default:
                        break;
                    }
                }
            }

            //Text = e.Cell.Data.ToString();
        }