// protected void LoadFlagColors(Dictionary<string, byte[]> files) // { // // First thing we do is check for any custom tilemap flag colors // byte[] flagTex = null; // var flags = "flags.png"; // // if (files.ContainsKey(flags)) flagTex = files[flags]; // // var imageParser = new PNGReader(flagTex, targetEngine.colorChip.maskColor); // // // // This will also create the custom flag color chip we need for parsing the tilemap later on // AddParser(new FlagColorParser(imageParser, targetEngine)); // } protected void LoadTilemap(Dictionary <string, byte[]> files) { var tilemapFile = "tilemap.png"; var tilemapJsonFile = "tilemap.json"; // var colorOffsetFile = "tile-color-offsets.json"; // TODO should this be manually called? // Make sure we have the flag color chip // LoadFlagColors(files); // var tilemapExists = false; // If a tilemap json file exists, try to load that if (files.ContainsKey(tilemapJsonFile)) { var fileContents = Encoding.UTF8.GetString(files[tilemapJsonFile]); var jsonParser = new TilemapJsonParser(fileContents, targetEngine); AddParser(jsonParser); // tilemapExists = true; } else if (files.ContainsKey(tilemapFile)) { // If a tilemap file exists, load that instead // var tex = ReadTexture(files[tilemapFile]); byte[] tileFlagTex = null; // var tileFlags = "tilemap-flags.png"; // // // if (files.ContainsKey(tileFlags)) tileFlagTex = files[tileFlags]; var imageParser = new PNGReader(files[tilemapFile], targetEngine.colorChip.maskColor); AddParser(new TilemapParser(imageParser, tileFlagTex, targetEngine)); // var colorFile = "tile-color-offsets.json"; // // if (files.ContainsKey(colorFile)) // { // colorTex = ReadTexture(files[colorFile]); // } // tilemapExists = true; } // Always load the color offset parser // if (files.ContainsKey(colorOffsetFile) && tilemapExists) // { // var fileContents = Encoding.UTF8.GetString(files[colorOffsetFile]); // // AddParser(new TileColorOffsetJson(fileContents, targetEngine)); // } // return null; }
protected void LoadTilemap(string[] files) { // If a tilemap json file exists, try to load that var file = files.FirstOrDefault(x => x.EndsWith("tilemap.json")); if (!string.IsNullOrEmpty(file)) { // var fileContents = Encoding.UTF8.GetString(ReadAllBytes(file)); var jsonParser = new TilemapJsonParser(file, _fileLoadHelper, targetEngine); AddParser(jsonParser); return; } // Try to load the tilemap png file next file = files.FirstOrDefault(x => x.EndsWith("tilemap.png")); if (!string.IsNullOrEmpty(file)) { var imageParser = new PNGFileReader(file, _fileLoadHelper, targetEngine.ColorChip.maskColor); AddParser(new TilemapParser(imageParser, targetEngine.ColorChip, targetEngine.SpriteChip, targetEngine.TilemapChip)); } }