using System.Runtime.CompilerServices; using Il2Cpp; using Il2CppTMPro; using MelonLoader; using UnityEngine; using UnityEngine.TextCore.Text; using static MelonLoader.MelonLogger; namespace PvZ_Fusion_Translator.AssetStore { public static class WarningStore { #if MULTI_LANGUAGE private static Dictionary warningMessages = new() { { "English", ("The only valid source of this translation is from this community:\n" + "discord.gg/DPAC5ZVJ8T. If you got this anywhere else like \n" + "Plants Hybrid and superhybrid.online, they stole it.\n" + "Stray away from other sources as they may contain viruses.\n" + "Please visit our community for future updates.", "Okay! Got it.") }, { "French", ("La seule source valide pour cette traduction provient de cette\n" + "communauté :discord.gg/DPAC5ZVJ8T. Si vous l'avez obtenue \n" + "ailleurs, comme Plants Hybrid ou superhybrid.online, ils l'ont volée.\n" + "Évitez les autres sources, car elles peuvent contenir des virus.\n" + "Veuillez visiter notre communauté pour les mises à jour futures.", "D'accord !") }, { "Italian", ("L'unica fonte valida di questa traduzione è questa community:\n" + "discord.gg/DPAC5ZVJ8T. Se l'hai ottenuta altrove, come \n" + "Plants Hybrid e superhybrid.online, l'hanno rubata.\n" + "Evita altre fonti, potrebbero contenere virus.\n" + "Visita la nostra community per aggiornamenti futuri.", "Va bene! Ho capito.") }, { "German", ("Die einzige gültige Quelle für diese Übersetzung stammt aus\n" + "dieser Community: discord.gg/DPAC5ZVJ8T. Wenn Sie diese \n" + "irgendwo anders gefunden haben, z. B. bei Plants Hybrid oder \n" + "superhybrid.online, dann haben sie sie gestohlen.\n" + "Meiden Sie andere Quellen, da diese Viren enthalten könnten.\n" + "Bitte besuchen Sie unsere Community für zukünftige Updates.", "Okay, verstanden!") }, { "Spanish", ("La única fuente válida de esta traducción proviene de esta\n" + "comunidad: discord.gg/DPAC5ZVJ8T. Si la obtuvo en cualquier\n" + "otro lugar como Plants Hybrid o superhybrid.online, la robaron.\n" + "Manténgase alejado de otras fuentes, ya que podrían contener virus.\n" + "Por favor, visite nuestra comunidad para futuras actualizaciones.", "¡Entendido!") }, { "Portuguese", ("O lugar original e seguro dessa tradução vem daqui:\n" + "discord.gg/DPAC5ZVJ8T. Se você baixou ela de qualquer \n" + "lugar como Plants Hybrid ou superhybrid.online, eles\n" + "roubaram. Evite baixar deles, pode conter vírus.\n" + "Por favor, visite nossa comunidade para atualizações futuras.", "Okay, entendido.") }, { "Filipino", ("Ang tanging opisyal na source ng pagsasaling ito ay mula\n" + "lamang dito: discord.gg/DPAC5ZVJ8T. Kung nakuha nmo ito kahit \n" + "saan pa tulad ng Plants Hybrid at superhybrid.online, ito ay ninakaw. \n" + "Lumayo sa ibang source dahil posibleng may kasamang virus.\n" + "Paki-bisita ang aming komunidad para sa mga darating na update." , "Naiintindihan!") }, { "Vietnamese", ("Nguồn duy nhất hợp lệ của bản dịch này là từ cộng\n" + "đồng này: discord.gg/DPAC5ZVJ8T. Nếu bạn nhận \n" + "được nó ở bất cứ nơi nào khác như Plants Hybrid \n" + "hoặc superhybrid.online, họ đã ăn cắp nó.\n" + "Tránh xa các nguồn khác vì chúng có thể chứa \n" + "virus. Hãy ghé thăm cộng đồng của chúng tôi để \n" + "cập nhật trong tương lai.", "Đồng ý!") }, { "Indonesian", ("Satu-satunya sumber resmi dari terjemahan ini adalah \n" + "komunitas kami: discord.gg/DPAC5ZVJ8T. Jika Anda \n" + "mendapatkannya dari sumber lain seperti Plants Hybrid \n" + "dan superhybrid.online, mereka mencurinya. \n" + "Jauhi sumber lain karena mungkin ada virus.\n" + "Silakan kunjungi komunitas kami untuk pembaruan berikutnya.", "Oke! Mengerti.") }, { "Russian", ("Единственный проверенный источник этого перевода —\n" + "сообщество discord.gg/DPAC5ZVJ8T.\n" + "Или же его замена https://t.me/nekoshkindom\n" + "Если вы скачали этот мод где-либо ещё, возможно он содержит вирусы.\n" + "Программист перевода: LancerX0.\n" + "Переводчик: Nekosha.", "Хорошо!") }, { "Japanese", ("この翻訳の唯一の有効なソースは、このコミュニティからです:\n" + "discord.gg/DPAC5ZVJ8T.Plants Hybridやsuperhybrid.online、\n" + "YoutubeのBlue Flyが作っているもの、他のどこかでこれを入手した場合、\n" + "彼らはそれを盗んだことになります。ウイルスが含まれている可能性があるので、\n" + "他のソースからは離れてください。今後のアップデートについては、\n私たちのコミュニティをご覧ください。", "了解しました!") }, { "Korean", ("이 번역은 Bloom(discord.gg/DPAC5ZVJ8T)에서만\n" + "제공됩니다. Bloom 디스코드 이외의 다른서드 파티 사이트, \n" + "예를 들어 Plants Hybrid 및 superhybrid.online, 또는\n" + "유튜브 Blue Fly등에서 제공하는 파일은 무단으로 재배포된 것이며,\n" + "이런 사이트들에는 바이러스가 포함되어 있을 가능성이 높습니다. \n향후 업데이트를 위해 저희 디스코드를 방문해 주세요.", "확인") }, { "Javanese" , ("Sumber mung sing sah kanggo terjemahan iki saka komunitas iki:\n" + "discord.gg/DPAC5ZVJ8T. Yen sampeyan nemokake iki ing papan\n" + "liya kaya Plants Hybrid lan superhybrid.online, iku dicolong.\n" + "Aja nyedhaki sumber liya amarga bisa ngandhut virus. Mangga\n" + "ngunjungi komunitas kita kanggo nganyari ing mangsa ngarep.", "Oke! Ngertos.") }, { "Polish" , ("Jedynym wiarygodnym źródłem tego tłumaczenia jest ta społeczność:\n" + "discord.gg/DPAC5ZVJ8T. Jeśli znalazłeś to gdziekolwiek indziej, np. \n" + "Plants Hybrid i superhybrid.online, ukradli to.\n" + "Omijaj inne źródła, ponieważ mogą zawierać wirusy.\n" + "Odwiedź naszą społeczność, aby uzyskać przyszłe aktualizacje.", "Okay! Rozumiem.") }, { "Hungarian" , ("Ennek a fordításnak az egyetlen érvényes forrása ebből a közösségből származik:\n" + "discord.gg/DPAC5ZVJ8T. Ha ezt valahol máshol szerezted, például \n" + "Plants Hybrid és superhybrid.online oldalakon, akkor ők lopták.\n" + "Kerüld a többi forrást, mert vírusokat tartalmazhatnak.\n" + "Kérjük, látogass el közösségünkbe a jövőbeli frissítésekért.", "Oké! Értem.") }, { "Arabic" , ("The only valid source of this translation is from this community:\n" + "discord.gg/DPAC5ZVJ8T. If you got this anywhere else like \n" + "Plants Hybrid and superhybrid.online, they stole it.\n" + "Stray away from other sources as they may contain viruses.\n" + "Please visit our community for future updates.", "Okay! Got it.") }, // { "OTHER" , ("A única fonte válida dessa tradução é desta\ncomunidade: discord.gg/DPAC5ZVJ8T. Se você obteve \nisso em qualquer lugar como Plants Hybrid\ne superhybrid.online,ou Blue Fly do Youtube,\nelses roubaram. Fique longe de sites falsos. Por favor,\nvisite nossa comunidade para futuras atualizações.", "¡Okei! Entendido.") } // { "OTHER" , ("Ang translation na ito ay galing dito lamang:\ndiscord.gg/DPAC5ZVJ8T. Pag nakuha niyo ito sa iba pa\nkagaya ng Plants Hybrid o superhybrid.online, anumang\nginawagawa ng Blue Fly mula sa Youtube, o anumang\nSub2Unlock links, scam sila. MAG INGAT dahil\nkasi baka may virus 'jan. Join kayo sa discord namin!\nFilipino Translation by ColinPogi" , "Tayo magsi-laro!") } }; #else public static string warningMessage = "La única fuente válida de esta traducción proviene de esta\ncomunidad: discord.gg/DPAC5ZVJ8T. Si la obtuvo en cualquier\notro lugar como Plants Hybrid o superhybrid.online, la robaron.\nManténgase alejado de otras fuentes, ya que podrían contener virus.\nPor favor, visite nuestra comunidad para futuras actualizaciones."; public static string okayButton = "¡Entendido!"; #endif #if MULTI_LANGUAGE public static (string, string) GetWarningMessage(Utils.LanguageEnum language) { if (warningMessages.TryGetValue(language.ToString(), out var message)) { return message; } else { return warningMessages["English"]; // Default to English if language code is not found } } #endif public static void WarningLoad(NoticeMenu noticeMenu) { if (noticeMenu == null || noticeMenu.transform == null) { MelonLogger.Warning("[WarningStore] NoticeMenu or transform is null - ABORTING"); return; } #if MULTI_LANGUAGE try { var (warningMessage, okayButton) = GetWarningMessage(Utils.Language); TMP_FontAsset fontAsset = FontStore.LoadTMPFont(Utils.Language.ToString()); Transform warningTransform = noticeMenu.transform.Find("窗口"); if (warningTransform == null) { MelonLogger.Warning("[WarningStore] '窗口' transform not found - ABORTING"); return; } Transform warningTextTransform = warningTransform.Find("文字"); Transform warningTextShadowTransform = warningTransform.Find("文字2"); if (warningTextTransform == null || warningTextShadowTransform == null) { MelonLogger.Warning("[WarningStore] Could not find text components (文字/文字2)"); return; } TextMeshProUGUI warningText = warningTextTransform.GetComponent(); TextMeshProUGUI shadowText = warningTextShadowTransform.GetComponent(); if (warningText == null || shadowText == null) { MelonLogger.Warning("[WarningStore] TextMeshProUGUI components missing"); return; } warningText.text = warningMessage; shadowText.text = warningMessage; if (fontAsset != null) { warningText.font = fontAsset; shadowText.font = fontAsset; } else { MelonLogger.Warning("[WarningStore] Font asset is null"); } MelonLogger.Msg("Warning message loaded successfully!"); } catch (Exception e) { MelonLogger.Error($"Critical error in WarningLoad: {e}"); } #endif } #if MULTI_LANGUAGE public static bool isWarningMessageLoaded = false; public static void WarningReload(Utils.LanguageEnum language, NoticeMenu noticeMenu) { if (noticeMenu == null) { MelonLogger.Warning("[WarningStore] NoticeMenu is null in WarningReload"); return; } if (Utils.OldLanguage.ToString() == language.ToString() && Utils.OldLanguage.ToString() != "English") { return; } if (!isWarningMessageLoaded) { WarningLoad(noticeMenu); isWarningMessageLoaded = true; } } #else public static bool isWarningMessageLoaded = false; public static void WarningReload() { if (!WarningStore.isWarningMessageLoaded) { WarningStore.WarningLoad(); WarningStore.isWarningMessageLoaded = true; } } #endif } }