private void UpdateCurrentSprite(SpriteLibrary.PlayerSprite loadedSprite) { currentSprite = loadedSprite; if (loadedSprite != null) { currentSprite.SetAnimation(currentAnimation); currentSprite.SetAnimationPalette(paletteComboBox.SelectedIndex); BuildPalette(paletteComboBox.SelectedIndex); } }
private void BuildPalette(int paletteType) { if (currentSprite == null) { return; } currentSprite.SetAnimationPalette(paletteComboBox.SelectedIndex); palettePictureBox.BackColor = Color.Black; //palettePictureBox.SizeMode = PictureBoxSizeMode.StretchImage; Color[] palette = null; switch (paletteType) { case 0: palette = currentSprite.GreenMailPalette.PaletteColors; break; case 1: palette = currentSprite.BlueMailPalette.PaletteColors; break; case 2: palette = currentSprite.RedMailPalette.PaletteColors; break; case 3: palette = currentSprite.BunnyPalette.PaletteColors; break; default: return; } int width = paletteSquareSize * 8; int height = paletteSquareSize * 2; palettePictureBox.Width = width; palettePictureBox.Height = height; palettePictureBox.Image = new Bitmap(width, height); Graphics g = Graphics.FromImage(palettePictureBox.Image); int x = 0; int y = 0; for (int i = 0; i < palette.Length; i++) { x = i * paletteSquareSize % (width); y = i * paletteSquareSize / (width) * paletteSquareSize; g.FillRectangle(new SolidBrush(palette[i]), x, y, paletteSquareSize, paletteSquareSize); } glovesPalettePictureBox.BackColor = Color.Black; glovesPalettePictureBox.Width = paletteSquareSize * 2; glovesPalettePictureBox.Height = paletteSquareSize; glovesPalettePictureBox.Image = new Bitmap(paletteSquareSize * 2, paletteSquareSize); g = Graphics.FromImage(glovesPalettePictureBox.Image); g.FillRectangle(new SolidBrush(currentSprite.GlovePalette[0]), 0, 0, paletteSquareSize, paletteSquareSize); g.FillRectangle(new SolidBrush(currentSprite.GlovePalette[1]), paletteSquareSize, 0, paletteSquareSize, paletteSquareSize); }