private static void ExtendedCoordinateLoad(ChaFileCoordinate file) { Sideloader.Logger.Log(LogLevel.Debug, $"Loading coordinate [{file.coordinateName}]"); var extData = ExtendedSave.GetExtendedDataById(file, UniversalAutoResolver.UARExtID); List <ResolveInfo> extInfo; if (extData == null || !extData.data.ContainsKey("info")) { Sideloader.Logger.Log(LogLevel.Debug, "No sideloader marker found"); extInfo = null; } else { var tmpExtInfo = (object[])extData.data["info"]; extInfo = tmpExtInfo.Select(x => ResolveInfo.Deserialize((byte[])x)).ToList(); Sideloader.Logger.Log(LogLevel.Debug, $"Sideloader marker found, external info count: {extInfo.Count}"); if (Sideloader.DebugLogging.Value) { foreach (ResolveInfo info in extInfo) { Sideloader.Logger.Log(LogLevel.Debug, $"External info: {info.GUID} : {info.Property} : {info.Slot}"); } } } IterateCoordinatePrefixes(UniversalAutoResolver.ResolveStructure, file, extInfo); }
private static void ExtendedCardImport(Dictionary <string, PluginData> importedExtendedData) { if (importedExtendedData.TryGetValue("com.bepis.sideloader.universalautoresolver", out var pluginData)) { if (pluginData != null && pluginData.data.ContainsKey("info")) { var tmpExtInfo = (object[])pluginData.data["info"]; var extInfo = tmpExtInfo.Select(x => ResolveInfo.Deserialize((byte[])x)).ToList(); for (int i = 0; i < extInfo.Count;) { if (extInfo[i].Property.StartsWith("outfit0") && extInfo[i].Property.EndsWith("ClothesShoesInner")) { //KK had inner shoes, EC does not extInfo.RemoveAt(i); } else if (extInfo[i].Property.StartsWith("outfit0")) { extInfo[i].Property = extInfo[i].Property.Replace("outfit0", "outfit"); //KK originally had only one emblem if (extInfo[i].Property.EndsWith("Emblem")) { extInfo[i].Property += "0"; } //KK has multiple shoes slots, convert to one shoes slot extInfo[i].Property = extInfo[i].Property.Replace("ClothesShoesOuter", "ClothesShoes"); i++; } else if (extInfo[i].Property.StartsWith("outfit")) { //Remove all the excess outfits extInfo.RemoveAt(i); } else { i++; } } importedExtendedData[UniversalAutoResolver.UARExtID] = new PluginData { data = new Dictionary <string, object> { ["info"] = extInfo.Select(x => x.Serialize()).ToList() } }; } } if (Sideloader.DebugLogging.Value && importedExtendedData.TryGetValue(UniversalAutoResolver.UARExtID, out var extData)) { if (extData == null || !extData.data.ContainsKey("info")) { Sideloader.Logger.Log(LogLevel.Debug, "Imported card data: No sideloader marker found"); } else { var tmpExtInfo = (List <byte[]>)extData.data["info"]; var extInfo = tmpExtInfo.Select(ResolveInfo.Deserialize).ToList(); Sideloader.Logger.Log(LogLevel.Debug, $"Imported card data: Sideloader marker found, external info count: {extInfo.Count}"); foreach (ResolveInfo info in extInfo) { Sideloader.Logger.Log(LogLevel.Debug, $"External info: {info.GUID} : {info.Property} : {info.Slot}"); } } } }