internal static void ChaFile_SaveFile_Postfix(ChaFile __instance) { // ReSharper disable once UseNullPropagation if (__instance == null) { return; } __instance.GetTranslationHelperController() .SafeProcObject(c => c.OnCardSaveComplete(KoikatuAPI.GetCurrentGameMode())); }
/* * [HarmonyPostfix] * [HarmonyPatch(typeof(ExtendedSave), "CardReadEvent", typeof(ChaFile))] * internal static void ExtendedSaveCardReadEventPostfix(ChaFile file) * { * if (file == null || !TranslationHelper.UsingAlternateLoadEvents) return; * AlternateReload(file); * } */ private static void AlternateReload(ChaFile file) { var controller = file.GetTranslationHelperController(); if (controller != null) { controller.OnAlternateReload(); } else { TranslationHelper.Instance.StartCoroutine(TranslationHelper.CardNameManager.TranslateCardNames(file)); } }
protected virtual IEnumerable <KeyValuePair <string, string> > GetNamesToRegister(ChaFile chaFile) { var handled = HashSetPool <string> .Get(); var controller = chaFile.GetTranslationHelperController(); try { foreach (var nameEntry in chaFile.EnumerateNames()) { var name = nameEntry.Value; if (handled.Contains(name)) { continue; } handled.Add(name); yield return(new KeyValuePair <string, string>(name, name)); if (controller == null) { continue; } var origName = controller.OriginalNames[nameEntry.Key]; if (origName.IsNullOrEmpty() || origName == name || handled.Contains(origName)) { continue; } handled.Add(origName); yield return(new KeyValuePair <string, string>(origName, origName)); } var fullname = chaFile.GetFullName(); foreach (var name in new[] { fullname, chaFile.GetOriginalFullName(), chaFile.GetFormattedOriginalName() }) { if (handled.Contains(name)) { continue; } handled.Add(name); yield return(new KeyValuePair <string, string>(name, name)); } } finally { HashSetPool <string> .Release(handled); } }
private static void ChaFileLoadFilePostfix(ChaFile __instance, string path, bool __result) { try { if (!__result || !TranslationHelper.Instance.CurrentCardLoadTranslationEnabled) { return; } if (!MakerAPI.CharaListIsLoading && !Configuration.TrackCharaFileControlPaths) { return; } Configuration.TrackCharaFileControlPath(__instance, path, fullPath => __instance.GetTranslationHelperController().SafeProc(c => c.FullPath = fullPath)); } catch (Exception err) { Logger.LogException(err, nameof(ChaFileLoadFilePostfix)); } }