Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public static PixelFormat PS2ToAux(TMXPixelFormatEnum pixelFormat)
 {
     if (PS2ToAuxdic.ContainsKey(pixelFormat))
     {
         return(PS2ToAuxdic[pixelFormat]);
     }
     else
     {
         return(PixelFormats.Undefined);
     }
 }
Exemplo n.º 3
0
        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);
            }
        }