/// <summary> /// Copy entire palette from SpritePickerForm /// </summary> public void updatePalette() { int[,] currentPalette = new int[3, 13]; for (int i = 0; i < TLPSpritePalette.ColumnCount; i++) { for (int j = 0; j < TLPSpritePalette.RowCount; j++) { currentPalette[i, j] = int.Parse(TLPSpritePalette.GetControlFromPosition(i, j).Tag.ToString()); } } using (SpritePickerForm SPF = new SpritePickerForm(currentPalette, spriteSheet)) { var result = SPF.ShowDialog(); if (result == DialogResult.OK) { for (int i = 0; i < TLPSpritePalette.ColumnCount; i++) { for (int j = 0; j < TLPSpritePalette.RowCount; j++) { PictureBox PB = (PictureBox)TLPSpritePalette.GetControlFromPosition(i, j); PB.Image = getSpriteByID(SPF.paletteIDArray[i, j]); PB.Tag = SPF.paletteIDArray[i, j]; } } } } }
/// <summary> /// Copy one sprite into selected palette cell. Used in Copy: right click. /// </summary> /// <param name="paletteCoord"></param> /// <param name="copiedID"></param> public void updateSinglePalette(Point paletteCoord, int copiedID) { PictureBox PB = (PictureBox)TLPSpritePalette.GetControlFromPosition(paletteCoord.X, paletteCoord.Y); PB.Image = getSpriteByID(copiedID); PB.Tag = copiedID; selectSprite(PB); }
/// <summary> /// Change currently active left click sprite. /// </summary> /// <param name="PB"></param> public void selectSprite(PictureBox PB) { selectedImageValue = int.Parse(PB.Tag.ToString()); Bitmap imageHolder = getSpriteByID(selectedImageValue); if (cbVerticalFlip.Checked) { imageHolder.RotateFlip(RotateFlipType.Rotate180FlipX); } if (cbHorizontalFlip.Checked) { imageHolder.RotateFlip(RotateFlipType.Rotate180FlipY); } pbSelectedSprite.Image = imageHolder; PB.BackColor = Color.Gray; PictureBox oldPB = (PictureBox)TLPSpritePalette.GetControlFromPosition(palatteCurrentCoord.X, palatteCurrentCoord.Y); oldPB.BackColor = Color.Transparent; palatteCurrentCoord = new Point(TLPSpritePalette.GetPositionFromControl(PB).Column, TLPSpritePalette.GetPositionFromControl(PB).Row); }