Esempio n. 1
0
 internal static void ChaFile_SaveFile_Postfix(ChaFile __instance)
 {
     // ReSharper disable once UseNullPropagation
     if (__instance == null)
     {
         return;
     }
     __instance.GetTranslationHelperController()
     .SafeProcObject(c => c.OnCardSaveComplete(KoikatuAPI.GetCurrentGameMode()));
 }
Esempio n. 2
0
        /*
         * [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));
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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));
            }
        }