public static int ReadPalette(BinaryReader reader, TMXPixelFormatEnum pixelFormat, TMXPixelFormatEnum paletteFormat, out Color[] colors) { int returned = 0; var PaletteFormat = PS2ToAux(paletteFormat); byte[] paletteData = null; if (pixelFormat == TMXPixelFormatEnum.PSMT8) { paletteData = TilePalette(reader.ReadBytes(256 * 4)); returned += 256 * 4; } else if (pixelFormat == TMXPixelFormatEnum.PSMT4) { paletteData = reader.ReadBytes(16 * 4); returned += 16 * 4; } if (PaletteFormat.IsIndexed) { throw new Exception("TMX Palette is indexed!"); } else { colors = PixelConverters.GetDataToColorConverter(PaletteFormat)(paletteData); } return(returned); }
public static void WritePalette(BinaryWriter writer, TMXPixelFormatEnum pixelFormat, TMXPixelFormatEnum paletteFormat, Color[] colors) { var PaletteFormat = PS2ToAux(paletteFormat); byte[] paletteData = PixelConverters.GetColorToDataConverter(PaletteFormat)(colors); if (pixelFormat == TMXPixelFormatEnum.PSMT8) { writer.Write(TilePalette(paletteData)); } else if (pixelFormat == TMXPixelFormatEnum.PSMT4) { writer.Write(paletteData); } }