bool AddSpriteIfCan(ref string metaData, SpriteDifferenceData spriteToAdd) { bool isLeftAtlas = true; bool isNeedAddSprtieToSpritesList = true; SpriteData[] sprites; if (spriteToAdd.copyDirection == SpriteDifferenceData.CopyDirection.LeftToRight) { isLeftAtlas = false; } sprites = (isLeftAtlas) ? _sprites1 : _sprites2; string AddingSpriteID = (isLeftAtlas) ? spriteToAdd.id2 : spriteToAdd.id1; // INVERT IDs (COPY FORM -> TO) SpriteData[] spritesNew = new SpriteData[sprites.Length + 1]; for (int i = 0; i < sprites.Length; i++) { if (sprites[i].id == AddingSpriteID) { Debug.LogError("ATLAS CONTAINS ID:" + AddingSpriteID); //return false; isNeedAddSprtieToSpritesList = false; } spritesNew[i] = sprites[i]; } string addingName = (isLeftAtlas) ? spriteToAdd.name2 : spriteToAdd.name1; string addingRawData = (isLeftAtlas) ? spriteToAdd.allRawData2 : spriteToAdd.allRawData1; spritesNew[spritesNew.Length - 1] = new SpriteData(AddingSpriteID, addingName); spritesNew[spritesNew.Length - 1].allRawData = addingRawData; spritesNew[spritesNew.Length - 1].isExpanded = false; spritesNew[spritesNew.Length - 1].isDifferent = false; spritesNew[spritesNew.Length - 1].isDifferentID = false; metaData = (isNeedAddSprtieToSpritesList) ? AddSptiteIntoSpriteList(metaData, spritesNew) : metaData; // ADD TO SPRITES LIST AT THE TOP OF META metaData = AddSpriteRawDataInAtlasMeta(metaData, spritesNew); // ADD RAW DATA TO THE BOTTOM OF META return(true); }
void CompareSprites(ref SpriteData[] sprites1, ref SpriteData[] sprites2, ref List <SpriteDifferenceData> spriteDifferenceData) { for (int i = 0; i < sprites1.Length; i++)// SpriteData sprite in sprites1 { bool isDifferent = false; bool isDifferentID = false; int id = GetSpriteID(sprites1[i].name, sprites2); if (id < 0) { SpriteDifferenceData item = new SpriteDifferenceData(); item.isDifferentID = true; item.name1 = sprites1[i].name; item.name2 = "NONE"; item.id1 = sprites1[i].id; item.id2 = "-------"; item.allRawData1 = sprites1[i].allRawData; item.allRawData2 = ""; spriteDifferenceData.Add(item); continue; } if (sprites1[i].allRawData == sprites2[id].allRawData) { sprites1[i].isDifferent = false; sprites2[id].isDifferent = false; } else { isDifferent = true; } if (sprites1[i].id == sprites2[id].id) { sprites1[i].isDifferentID = false; sprites2[id].isDifferentID = false; } else { isDifferent = true; isDifferentID = true; } if (isDifferent) { SpriteDifferenceData item = new SpriteDifferenceData(); if (isDifferentID) { item.isDifferentID = true; } item.name1 = sprites1[i].name; item.name2 = sprites2[id].name; item.id1 = sprites1[i].id; item.id2 = sprites2[id].id; item.allRawData1 = sprites1[i].allRawData; item.allRawData2 = sprites2[id].allRawData; spriteDifferenceData.Add(item); } } for (int i = 0; i < sprites2.Length; i++)// SpriteData sprite in sprites2 { int id = GetSpriteID(sprites2[i].name, sprites1); if (id < 0) { SpriteDifferenceData item = new SpriteDifferenceData(); item.isDifferentID = true; item.name1 = "NONE"; item.name2 = sprites2[i].name; item.id1 = "-------"; item.id2 = sprites2[i].id; item.allRawData1 = ""; item.allRawData2 = sprites2[i].allRawData; spriteDifferenceData.Add(item); continue; } } }