From c8c7fec49c2929906b8cd3257d9171618f0cecba Mon Sep 17 00:00:00 2001 From: samuzad Date: Sat, 9 Aug 2025 12:59:15 +0100 Subject: [PATCH 01/10] update localizations --- BeaverBuddies/Localizations/deDE_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/enUS_BeaverBuddie.csv | 4 +++- BeaverBuddies/Localizations/esES_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/frFR_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/itIT_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/koKR_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/plPL_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/thTH_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/trTR_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv | 2 ++ BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv | 2 ++ 15 files changed, 31 insertions(+), 1 deletion(-) diff --git a/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv b/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv index fa0b016..9d9d513 100644 --- a/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv @@ -61,6 +61,8 @@ Hinweis: Diese Funktion funktioniert möglicherweise nicht, wenn dein Netzwerk P Außerdem können Peer‑to‑Peer‑Verbindungen langsamer sein als direkte Verbindungen.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Freunde direkt über Steam beitreten lassen","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Wenn aktiviert, können deine Freunde direkt über Steam deinem Spiel beitreten, ohne dass du sie einladen musst.","" +BeaverBuddies.Settings.ReducePauses,"Anzahl der erzwungenen Pausen reduzieren","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Wenn aktiviert, wird die Anzahl erzwungener Pausen (Hauptmenü, Abriss usw.) drastisch reduziert. Für ein optimales Erlebnis sollten alle Spieler die gleiche Einstellung verwenden.","" BeaverBuddies.Host.ConnectedClients,"Warte auf Clients… Derzeit verbundene Clients:","" BeaverBuddies.Host.DirectConnectClient,"Direkt‑Connect‑Client","" diff --git a/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv b/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv index f25fec2..7c30d00 100644 --- a/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv @@ -51,7 +51,7 @@ This setting is indended for developers.","" BeaverBuddies.Settings.ShowFirstTimerMessage,"Show First Timer Message","" BeaverBuddies.Settings.AlwaysTrace,"Always Use Detailed Logging","" BeaverBuddies.Settings.AlwaysTrace.Tooltip,"When enabled, the game will always use detailed logging, which enables you to submit desync reports on the first occurrence without manually enabling detailed logging. -Note that all players must have the setting enabled. +Note that all players must have the setting enabled. This setting will cause some lag and is not recommended for most players.","" BeaverBuddies.Settings.ReportingConsent,"Consent to Reporting","" BeaverBuddies.Settings.EnableSteamConnection,"Enable Steam Networking","" @@ -61,6 +61,8 @@ Note: This feature may not work if your network does not support peer-to-peer co Additionally, peer-to-peer connections may be slower than direct connections.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Allow Friends to Join Directly via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"When enabled, your friends can join your game directly via Steam without you inviting them.","" +BeaverBuddies.Settings.ReducePauses,"Reduce the number of forced pauses","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"If enabled, the number of forced pauses will be drastically reduced (main menu, deconstructions etc). For an optimal experience, all players should set it to the same","" BeaverBuddies.Host.ConnectedClients,"Wait for clients to connect... Currently connected clients:","" BeaverBuddies.Host.DirectConnectClient,"Direct Connect Client","" diff --git a/BeaverBuddies/Localizations/esES_BeaverBuddie.csv b/BeaverBuddies/Localizations/esES_BeaverBuddie.csv index 350fdd4..0fb0277 100644 --- a/BeaverBuddies/Localizations/esES_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/esES_BeaverBuddie.csv @@ -61,6 +61,8 @@ Nota: esta función puede no funcionar si tu red no soporta conexiones P2P. Además, las conexiones P2P pueden ser más lentas que las directas.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Permitir que amigos se unan directamente vía Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Si está activado, tus amigos pueden unirse directamente a tu juego mediante Steam sin que los invites.","" +BeaverBuddies.Settings.ReducePauses,"Reducir el número de pausas forzadas","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Si está activado, se reducirán drásticamente las pausas forzadas (menú principal, deconstrucciones, etc.). Para una experiencia óptima, todos los jugadores deberían usar el mismo ajuste.","" BeaverBuddies.Host.ConnectedClients,"Esperando clientes… Clientes actualmente conectados:","" BeaverBuddies.Host.DirectConnectClient,"Cliente de conexión directa","" diff --git a/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv b/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv index 74f8d12..bd52f1e 100644 --- a/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv @@ -61,6 +61,8 @@ Remarque : cette fonctionnalité peut ne pas fonctionner si ton réseau ne suppo De plus, les connexions P2P peuvent être plus lentes que les connexions directes.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Autoriser les amis à rejoindre via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Si activé, tes amis peuvent rejoindre ta partie directement via Steam sans invitation.","" +BeaverBuddies.Settings.ReducePauses,"Réduire le nombre de pauses forcées","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Si activé, le nombre de pauses forcées (menu principal, déconstructions, etc.) est fortement réduit. Pour une expérience optimale, tous les joueurs devraient utiliser le même réglage.","" BeaverBuddies.Host.ConnectedClients,"En attente des clients… Clients actuellement connectés :","" BeaverBuddies.Host.DirectConnectClient,"Client de connexion directe","" diff --git a/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv b/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv index bdc97e6..df62a81 100644 --- a/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv @@ -61,6 +61,8 @@ Nota: questa funzione potrebbe non funzionare se la tua rete non supporta P2P. Inoltre, le connessioni P2P possono essere più lente di quelle dirette.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Permetti agli amici di unirsi direttamente via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Se attivo, i tuoi amici possono unirsi direttamente alla tua partita via Steam senza bisogno di inviti.","" +BeaverBuddies.Settings.ReducePauses,"Riduci il numero di pause forzate","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Se abilitato, il numero di pause forzate (menu principale, decostruzioni, ecc.) viene drasticamente ridotto. Per la migliore esperienza tutti i giocatori dovrebbero usare la stessa impostazione.","" BeaverBuddies.Host.ConnectedClients,"In attesa di client… Client attualmente connessi:","" BeaverBuddies.Host.DirectConnectClient,"Client connessione diretta","" diff --git a/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv b/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv index 401e38d..01f35de 100644 --- a/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"SteamのP2Pネットワー また、P2P接続は直接接続より遅くなる場合があります。","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Steam経由で友達が参加可能に","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"有効にすると、あなたの友達がSteam経由で招待なしで直接参加できます。","" +BeaverBuddies.Settings.ReducePauses,"強制一時停止の回数を減らす","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"有効にすると、強制一時停止(メインメニュー、解体など)が大幅に減ります。最適な体験のため、全プレイヤーが同じ設定を使用することを推奨します。","" BeaverBuddies.Host.ConnectedClients,"クライアントを待っています… 現在接続中のクライアント:","" BeaverBuddies.Host.DirectConnectClient,"ダイレクト接続クライアント","" diff --git a/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv b/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv index ca26242..1a8c91e 100644 --- a/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"Steam의 P2P 네트워크 또한 P2P 연결은 직접 연결보다 느릴 수 있습니다.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"친구가 Steam에서 바로 참여 가능","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"활성화하면 당신의 친구들이 Steam을 통해 초대 없이 바로 참여할 수 있습니다.","" +BeaverBuddies.Settings.ReducePauses,"강제 일시정지 횟수 줄이기","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"활성화하면 강제 일시정지(메인 메뉴, 해체 등)의 횟수가 크게 줄어듭니다. 최적의 경험을 위해 모든 플레이어가 동일한 설정을 사용하는 것이 좋습니다.","" BeaverBuddies.Host.ConnectedClients,"클라이언트 연결 대기 중… 현재 연결된 클라이언트:","" BeaverBuddies.Host.DirectConnectClient,"다이렉트 연결 클라이언트","" diff --git a/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv b/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv index 1307fef..c994858 100644 --- a/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv @@ -61,6 +61,8 @@ Uwaga: ta funkcja może nie działać, jeśli twoja sieć nie obsługuje P2P. Ponadto połączenia P2P mogą być wolniejsze niż bezpośrednie.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Pozwól znajomym na dołączenie przez Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Po włączeniu twoi znajomi mogą dołączyć do twojej gry bez zaproszenia, korzystając ze Steam.","" +BeaverBuddies.Settings.ReducePauses,"Zmniejsz liczbę wymuszonych pauz","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Po włączeniu liczba wymuszonych pauz (menu główne, rozbiórki itd.) zostanie mocno ograniczona. Dla najlepszego efektu wszyscy gracze powinni mieć to samo ustawienie.","" BeaverBuddies.Host.ConnectedClients,"Oczekiwanie na klientów… Obecnie połączeni klienci:","" BeaverBuddies.Host.DirectConnectClient,"Klient połączenia bezpośredniego","" diff --git a/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv b/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv index 92457ab..5ecbb95 100644 --- a/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv @@ -61,6 +61,8 @@ Nota: este recurso pode não funcionar se sua rede não suportar conexões P2P. Além disso, conexões P2P podem ser mais lentas que conexões diretas.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Permitir que amigos entrem diretamente via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Quando ativado, seus amigos podem entrar diretamente no seu jogo via Steam sem convite.","" +BeaverBuddies.Settings.ReducePauses,"Reduzir o número de pausas forçadas","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Quando ativado, o número de pausas forçadas (menu principal, desconstruções etc.) é drasticamente reduzido. Para a melhor experiência, todos os jogadores devem usar a mesma configuração.","" BeaverBuddies.Host.ConnectedClients,"Aguardando clientes… Clientes atualmente conectados:","" BeaverBuddies.Host.DirectConnectClient,"Cliente de conexão direta","" diff --git a/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv b/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv index 97bdc12..4baa1ec 100644 --- a/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"Позволяет игр Кроме того, P2P‑соединения могут быть медленнее прямых.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Разрешить друзьям присоединяться через Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Если включено, ваши друзья смогут напрямую подключаться к вашей игре через Steam без приглашения.","" +BeaverBuddies.Settings.ReducePauses,"Уменьшить число принудительных пауз","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Если включено, число принудительных пауз (главное меню, демонтаж и т.п.) значительно сокращается. Для лучшего опыта всем игрокам стоит использовать одинаковую настройку.","" BeaverBuddies.Host.ConnectedClients,"Ожидание клиентов… В настоящее время подключено:","" BeaverBuddies.Host.DirectConnectClient,"Клиент прямого подключения","" diff --git a/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv b/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv index 4c5e828..4e75659 100644 --- a/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"อนุญาตให นอกจากนี้ การเชื่อมต่อ P2P อาจช้ากว่าแบบตรง","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"ให้เพื่อนเข้าร่วมเกมผ่าน Steam ได้ตรงๆ","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"หากเปิดใช้งาน เพื่อนของคุณสามารถเข้าร่วมเกมผ่าน Steam โดยไม่ต้องเชิญ","" +BeaverBuddies.Settings.ReducePauses,"ลดจำนวนการหยุดชั่วคราวที่ถูกบังคับ","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"หากเปิดใช้ จำนวนการหยุดชั่วคราวที่ถูกบังคับ (เมนูหลัก การรื้อถอน ฯลฯ) จะลดลงอย่างมาก เพื่อประสบการณ์ที่ดีที่สุด ผู้เล่นทุกคนควรใช้การตั้งค่าเดียวกัน","" BeaverBuddies.Host.ConnectedClients,"กำลังรอลูกค้าเชื่อมต่อ… ลูกค้าที่เชื่อมต่อขณะนี้:","" BeaverBuddies.Host.DirectConnectClient,"ไคลเอนต์เชื่อมต่อโดยตรง","" diff --git a/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv b/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv index 86ac784..655be3e 100644 --- a/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv @@ -61,6 +61,8 @@ Not: Ağınız P2P’yi desteklemiyorsa bu özellik çalışmayabilir. Ayrıca eşler arası bağlantılar doğrudan bağlantılardan daha yavaş olabilir.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Arkadaşların Steam Üzerinden Katılmasına İzin Ver","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Etkinleştirilirse, arkadaşlarınız Steam üzerinden sizi davet etmeden doğrudan katılabilir.","" +BeaverBuddies.Settings.ReducePauses,"Zorunlu duraklamaların sayısını azalt","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Etkinleştirildiğinde zorunlu duraklamalar (ana menü, yıkımlar vb.) büyük ölçüde azalır. En iyi deneyim için tüm oyuncuların aynı ayarı kullanması önerilir.","" BeaverBuddies.Host.ConnectedClients,"Müşterilerin bağlanması bekleniyor… Şu anda bağlı müşteriler:","" BeaverBuddies.Host.DirectConnectClient,"Doğrudan Bağlantı İstemcisi","" diff --git a/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv b/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv index 2515229..955e276 100644 --- a/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"Дозволяє грав Крім того, P2P‑з’єднання можуть бути повільнішими за прямі.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Дозволити друзям підключатись через Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Якщо ввімкнено, ваші друзі зможуть підключитись без запрошення через Steam.","" +BeaverBuddies.Settings.ReducePauses,"Зменшити кількість примусових пауз","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"Якщо ввімкнено, кількість примусових пауз (головне меню, демонтаж тощо) суттєво зменшується. Для найкращого досвіду всі гравці мають використовувати однакове налаштування.","" BeaverBuddies.Host.ConnectedClients,"Очікування клієнтів… Наразі підключено клієнтів:","" BeaverBuddies.Host.DirectConnectClient,"Клієнт прямого підключення","" diff --git a/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv b/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv index a7934fc..03e203b 100644 --- a/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"允许玩家通过 Steam 此外,P2P 连接可能比直接连接慢。","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"允许好友通过 Steam 直接加入","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"启用后,你的好友可以通过 Steam 直接加入游戏,无需邀请。","" +BeaverBuddies.Settings.ReducePauses,"减少强制暂停的次数","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"启用后,将大幅减少强制暂停(主菜单、拆除等)的次数。为获得最佳体验,建议所有玩家使用相同设置。","" BeaverBuddies.Host.ConnectedClients,"等待客户端连接… 当前已连接客户端:","" BeaverBuddies.Host.DirectConnectClient,"直接连接客户端","" diff --git a/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv b/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv index a2ef711..718a450 100644 --- a/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv @@ -61,6 +61,8 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"允許玩家通過 Steam 此外,P2P 連接可能比直接連接慢。","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"允許好友透過 Steam 直接加入","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"啟用後,好友可以透過 Steam 無需邀請直接加入遊戲。","" +BeaverBuddies.Settings.ReducePauses,"減少強制暫停的次數","" +BeaverBuddies.Settings.ReducePauses.Tooltip,"啟用後,強制暫停(主選單、拆除等)的次數將大幅減少。為獲得最佳體驗,建議所有玩家使用相同設定。","" BeaverBuddies.Host.ConnectedClients,"等待客戶端連接… 目前已連接客戶端:","" BeaverBuddies.Host.DirectConnectClient,"直接連接客戶端","" From effec6167c32047340ab5c68cd574e2270eab7cd Mon Sep 17 00:00:00 2001 From: samuzad Date: Sat, 9 Aug 2025 14:18:11 +0100 Subject: [PATCH 02/10] create ReducePauses setting --- BeaverBuddies/Events/TimeEvents.cs | 44 +++++++++++++++++++++++++----- BeaverBuddies/Settings.cs | 16 +++++++++-- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index a5332eb..b304277 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -2,10 +2,10 @@ using HarmonyLib; using System; using System.Collections.Generic; -using System.Text; using Timberborn.Options; using Timberborn.OptionsGame; using Timberborn.TimeSystem; +using Timberborn.UILayoutSystem; using static BeaverBuddies.SingletonManager; namespace BeaverBuddies.Events @@ -83,8 +83,7 @@ static bool Prefix(SpeedManager __instance, ref float speed) } } - // TODO: It might be nice to make this configurable: whether the host - // should freeze the game for these pop-ups. If we don't freeze, it could + // This is now configurable via Settings.ReducePausesEnable. If we don't freeze, it could // definitely cause some possible invalid operations (e.g. deleting a building // that's not there anymore), but in theory these errors get caught before // sending to the server. In practice, though, there could be side-effects of @@ -104,8 +103,15 @@ static bool Prefix(SpeedManager __instance, ref float speed) [HarmonyPatch(typeof(SpeedManager), nameof(SpeedManager.ChangeAndLockSpeed))] public class SpeedLockPatcher { + // When true, skip the next ChangeAndLockSpeed call (used by various UI events when ReducePauses is enabled) + public static bool SkipNextSpeedLock = false; static bool Prefix(SpeedManager __instance, float value) { + if (SkipNextSpeedLock) + { + SkipNextSpeedLock = false; + return false; // skip original; do not modify speed or lock + } // Clients should never freeze for dialogs. Main menu will be // handled separately. if (EventIO.Get()?.UserEventBehavior == UserEventBehavior.Send) @@ -179,16 +185,40 @@ public override void Replay(IReplayContext context) // However, only the host will be able to unpause, and only by manually // setting the game speed, since they won't process any events by clients // while they have a panel (including this one) up (I think...). - // TODO: Should allow client to bring up menu, even if they don't pause [HarmonyPatch(typeof(GameOptionsBox), nameof(GameOptionsBox.Show))] public class GameOptionsBoxShowPatcher { static bool Prefix() { - return ReplayEvent.DoPrefix(() => + // If the user wants to reduce pauses, don't create an event or pause the game. + // Let each player open their own menu independently. + if (Settings.ReducePausesEnabled) { - return new ShowOptionsMenuEvent(); - }); + // Signal that the next lock attempt should be skipped + SpeedLockPatcher.SkipNextSpeedLock = true; + return true; + } + + // Otherwise, treat showing options as a synced event that pauses. + return ReplayEvent.DoPrefix(() => new ShowOptionsMenuEvent()); + } + } + + // OverlayPanelSpeedLocker is triggering ChangeAndLockSpeed via OnPanelShown + // We suppress its locking behavior entirely when ReducePauses is enabled to avoid unintended pauses + // for overlay/submenus. + [HarmonyPatch(typeof(OverlayPanelSpeedLocker), "OnPanelShown")] + public class OverlayPanelSpeedLockerShowPatcher + { + static bool Prefix() + { + if (Settings.ReducePausesEnabled) + { + // Ensure that even if original would call ChangeAndLockSpeed, it gets skipped. + SpeedLockPatcher.SkipNextSpeedLock = true; + return false; + } + return true; } } } diff --git a/BeaverBuddies/Settings.cs b/BeaverBuddies/Settings.cs index 80b0032..0820cdf 100644 --- a/BeaverBuddies/Settings.cs +++ b/BeaverBuddies/Settings.cs @@ -9,14 +9,14 @@ namespace BeaverBuddies public class Settings : ModSettingsOwner { public ModSetting ClientConnectionAddress { get; } = - new("127.0.0.1", + new("127.0.0.1", ModSettingDescriptor.CreateLocalized( "BeaverBuddies.Settings.ClientConnectionAddress" ).SetLocalizedTooltip("BeaverBuddies.Settings.ClientConnectionAddress.Tooltip") ); public ModSetting DefaultPort { get; } = - new(25565, + new(25565, ModSettingDescriptor.CreateLocalized( "BeaverBuddies.Settings.Port" ).SetLocalizedTooltip("BeaverBuddies.Settings.Port.Tooltip") @@ -52,6 +52,15 @@ public class Settings : ModSettingsOwner ).SetLocalizedTooltip("BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip") ); + // ---- Quality of Life Settings ---- + + public ModSetting ReducePauses { get; } = + new(false, + ModSettingDescriptor.CreateLocalized( + "BeaverBuddies.Settings.ReducePauses" + ).SetLocalizedTooltip("BeaverBuddies.Settings.ReducePauses.Tooltip") + ); + // ---- Developer Settings ---- public ModSetting AlwaysTrace { get; } = @@ -87,10 +96,11 @@ public class Settings : ModSettingsOwner public static int Port => instance?.DefaultPort.Value ?? 25565; public static bool EnableSteam => instance?.EnableSteamConnection.Value ?? true; public static bool LobbyJoinable => instance?.FriendsCanJoinSteamGame.Value ?? true; + public static bool ReducePausesEnabled => instance?.ReducePauses.Value ?? false; public Settings(ISettings settings, ModSettingsOwnerRegistry modSettingsOwnerRegistry, - ModRepository modRepository) : + ModRepository modRepository) : base(settings, modSettingsOwnerRegistry, modRepository) { instance = this; From af476949a695d2c8a1bc8737a4f56bd9911ce970 Mon Sep 17 00:00:00 2001 From: Thomas Price Date: Sat, 23 Aug 2025 21:03:17 -0400 Subject: [PATCH 03/10] Attempt at a simpler implementation for reducing pauses --- BeaverBuddies/Events/TimeEvents.cs | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index b304277..7bfd954 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -103,15 +103,8 @@ static bool Prefix(SpeedManager __instance, ref float speed) [HarmonyPatch(typeof(SpeedManager), nameof(SpeedManager.ChangeAndLockSpeed))] public class SpeedLockPatcher { - // When true, skip the next ChangeAndLockSpeed call (used by various UI events when ReducePauses is enabled) - public static bool SkipNextSpeedLock = false; static bool Prefix(SpeedManager __instance, float value) { - if (SkipNextSpeedLock) - { - SkipNextSpeedLock = false; - return false; // skip original; do not modify speed or lock - } // Clients should never freeze for dialogs. Main menu will be // handled separately. if (EventIO.Get()?.UserEventBehavior == UserEventBehavior.Send) @@ -190,16 +183,9 @@ public class GameOptionsBoxShowPatcher { static bool Prefix() { - // If the user wants to reduce pauses, don't create an event or pause the game. + // If the user wants to reduce pauses, don't create an event. // Let each player open their own menu independently. - if (Settings.ReducePausesEnabled) - { - // Signal that the next lock attempt should be skipped - SpeedLockPatcher.SkipNextSpeedLock = true; - return true; - } - - // Otherwise, treat showing options as a synced event that pauses. + if (Settings.ReducePausesEnabled) return true; return ReplayEvent.DoPrefix(() => new ShowOptionsMenuEvent()); } } @@ -207,15 +193,13 @@ static bool Prefix() // OverlayPanelSpeedLocker is triggering ChangeAndLockSpeed via OnPanelShown // We suppress its locking behavior entirely when ReducePauses is enabled to avoid unintended pauses // for overlay/submenus. - [HarmonyPatch(typeof(OverlayPanelSpeedLocker), "OnPanelShown")] + [HarmonyPatch(typeof(OverlayPanelSpeedLocker), nameof(OverlayPanelSpeedLocker.OnPanelShown))] public class OverlayPanelSpeedLockerShowPatcher { - static bool Prefix() + public static bool Prefix() { if (Settings.ReducePausesEnabled) { - // Ensure that even if original would call ChangeAndLockSpeed, it gets skipped. - SpeedLockPatcher.SkipNextSpeedLock = true; return false; } return true; From e3ebb42e20158b62a7224d79fca905dc8199395d Mon Sep 17 00:00:00 2001 From: Thomas Price Date: Sat, 23 Aug 2025 21:19:30 -0400 Subject: [PATCH 04/10] Menu now pauses as before. --- BeaverBuddies/Events/TimeEvents.cs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index 7bfd954..913ead4 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -5,8 +5,8 @@ using Timberborn.Options; using Timberborn.OptionsGame; using Timberborn.TimeSystem; -using Timberborn.UILayoutSystem; -using static BeaverBuddies.SingletonManager; + using Timberborn.UILayoutSystem; + using static BeaverBuddies.SingletonManager; namespace BeaverBuddies.Events { @@ -185,7 +185,10 @@ static bool Prefix() { // If the user wants to reduce pauses, don't create an event. // Let each player open their own menu independently. - if (Settings.ReducePausesEnabled) return true; + + // I think it's too dangerous to open the menu outside of a synced pause. + // But if it's going to be an option it should be separate. + //if (Settings.ReducePausesEnabled) return true;s return ReplayEvent.DoPrefix(() => new ShowOptionsMenuEvent()); } } @@ -198,11 +201,7 @@ public class OverlayPanelSpeedLockerShowPatcher { public static bool Prefix() { - if (Settings.ReducePausesEnabled) - { - return false; - } - return true; + return !Settings.ReducePausesEnabled; } } } From 418f9440de29e9b6c012d8ba4a5836eac1ac8e13 Mon Sep 17 00:00:00 2001 From: Thomas Price Date: Sat, 23 Aug 2025 21:21:13 -0400 Subject: [PATCH 05/10] Move comment where it's more appropriate. --- BeaverBuddies/Events/TimeEvents.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index 913ead4..8ddcd31 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -83,12 +83,6 @@ static bool Prefix(SpeedManager __instance, ref float speed) } } - // This is now configurable via Settings.ReducePausesEnable. If we don't freeze, it could - // definitely cause some possible invalid operations (e.g. deleting a building - // that's not there anymore), but in theory these errors get caught before - // sending to the server. In practice, though, there could be side-effects of - // and aborted event. For clients, I think this is always a possibility, regardless - // of whether we freeze, since it's always happening at a delay. [ManualMethodOverwrite] /* 04/19/2025 @@ -194,8 +188,12 @@ static bool Prefix() } // OverlayPanelSpeedLocker is triggering ChangeAndLockSpeed via OnPanelShown - // We suppress its locking behavior entirely when ReducePauses is enabled to avoid unintended pauses - // for overlay/submenus. + // This is now configurable via Settings.ReducePausesEnable. If we don't freeze, it could + // definitely cause some possible invalid operations (e.g. deleting a building + // that's not there anymore), but in theory these errors get caught before + // sending to the server. In practice, though, there could be side-effects of + // and aborted event. For clients, I think this is always a possibility, regardless + // of whether we freeze, since it's always happening at a delay. [HarmonyPatch(typeof(OverlayPanelSpeedLocker), nameof(OverlayPanelSpeedLocker.OnPanelShown))] public class OverlayPanelSpeedLockerShowPatcher { From acf0b4a2c4ed12825ab8681ffe3600b3bf1adc75 Mon Sep 17 00:00:00 2001 From: Thomas Price Date: Sat, 23 Aug 2025 21:23:01 -0400 Subject: [PATCH 06/10] Clearer comments. --- BeaverBuddies/Events/TimeEvents.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index 8ddcd31..afde624 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -177,12 +177,13 @@ public class GameOptionsBoxShowPatcher { static bool Prefix() { - // If the user wants to reduce pauses, don't create an event. - // Let each player open their own menu independently. - // I think it's too dangerous to open the menu outside of a synced pause. - // But if it's going to be an option it should be separate. - //if (Settings.ReducePausesEnabled) return true;s + // This would make options menu unsynced and non-pausing, + // but I think it's too dangerous to open the menu outside of a synced pause. + // If it's going to be an option it should be separate from skipping + // other less critical pauses. + //if (Settings.ReducePausesEnabled) return true; + return ReplayEvent.DoPrefix(() => new ShowOptionsMenuEvent()); } } From 35f3b6243a1f755195a1227fc25a718f68783e0e Mon Sep 17 00:00:00 2001 From: samuzad Date: Sun, 19 Oct 2025 13:09:00 +0100 Subject: [PATCH 07/10] update localizations --- BeaverBuddies/Localizations/deDE_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/enUS_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/esES_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/frFR_BeaverBuddie.csv | 11 +++++++++++ BeaverBuddies/Localizations/itIT_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/koKR_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/plPL_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/thTH_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/trTR_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv | 11 +++++++++-- BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv | 11 +++++++++-- 15 files changed, 137 insertions(+), 28 deletions(-) diff --git a/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv b/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv index 9d9d513..0dc636f 100644 --- a/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/deDE_BeaverBuddie.csv @@ -61,8 +61,15 @@ Hinweis: Diese Funktion funktioniert möglicherweise nicht, wenn dein Netzwerk P Außerdem können Peer‑to‑Peer‑Verbindungen langsamer sein als direkte Verbindungen.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Freunde direkt über Steam beitreten lassen","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Wenn aktiviert, können deine Freunde direkt über Steam deinem Spiel beitreten, ohne dass du sie einladen musst.","" -BeaverBuddies.Settings.ReducePauses,"Anzahl der erzwungenen Pausen reduzieren","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Wenn aktiviert, wird die Anzahl erzwungener Pausen (Hauptmenü, Abriss usw.) drastisch reduziert. Für ein optimales Erlebnis sollten alle Spieler die gleiche Einstellung verwenden.","" +BeaverBuddies.Settings.PauseReduction,"Anzahl der erzwungenen Pausen reduzieren","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Für ein optimales Erlebnis sollten alle Spieler die gleiche Einstellung verwenden. + +Aus - Standardverhalten +Empfohlen - Das Spiel wird bei Abrissen nicht pausiert +Hohes Risiko - Zusätzlich zu Empfohlen wird das Spiel auch beim Öffnen des Menüs nicht pausiert. Dies kann zu Speicherschäden führen, wenn du das Spiel vor dem Speichern nicht pausierst.","" +BeaverBuddies.Settings.PauseReduction.Off,"Aus","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Empfohlen","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Hohes Risiko","" BeaverBuddies.Host.ConnectedClients,"Warte auf Clients… Derzeit verbundene Clients:","" BeaverBuddies.Host.DirectConnectClient,"Direkt‑Connect‑Client","" diff --git a/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv b/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv index 7c30d00..bc87fbf 100644 --- a/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/enUS_BeaverBuddie.csv @@ -61,8 +61,15 @@ Note: This feature may not work if your network does not support peer-to-peer co Additionally, peer-to-peer connections may be slower than direct connections.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Allow Friends to Join Directly via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"When enabled, your friends can join your game directly via Steam without you inviting them.","" -BeaverBuddies.Settings.ReducePauses,"Reduce the number of forced pauses","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"If enabled, the number of forced pauses will be drastically reduced (main menu, deconstructions etc). For an optimal experience, all players should set it to the same","" +BeaverBuddies.Settings.PauseReduction,"Reduce the number of forced pauses","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"For an optimal experience, all players should set it to the same. + +Off - Default behaviour +Recommended - Game will not be paused for deconstructions +High-Risk - In addition to Recommended, the game will also not pause when bringing up the menu. This can lead to save corruptions if you don't pause the game before saving.","" +BeaverBuddies.Settings.PauseReduction.Off,"Off","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Recommended","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"High-Risk","" BeaverBuddies.Host.ConnectedClients,"Wait for clients to connect... Currently connected clients:","" BeaverBuddies.Host.DirectConnectClient,"Direct Connect Client","" diff --git a/BeaverBuddies/Localizations/esES_BeaverBuddie.csv b/BeaverBuddies/Localizations/esES_BeaverBuddie.csv index 0fb0277..bf95abe 100644 --- a/BeaverBuddies/Localizations/esES_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/esES_BeaverBuddie.csv @@ -61,8 +61,15 @@ Nota: esta función puede no funcionar si tu red no soporta conexiones P2P. Además, las conexiones P2P pueden ser más lentas que las directas.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Permitir que amigos se unan directamente vía Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Si está activado, tus amigos pueden unirse directamente a tu juego mediante Steam sin que los invites.","" -BeaverBuddies.Settings.ReducePauses,"Reducir el número de pausas forzadas","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Si está activado, se reducirán drásticamente las pausas forzadas (menú principal, deconstrucciones, etc.). Para una experiencia óptima, todos los jugadores deberían usar el mismo ajuste.","" +BeaverBuddies.Settings.PauseReduction,"Reducir el número de pausas forzadas","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Para una experiencia óptima, todos los jugadores deberían usar el mismo ajuste. + +Desactivado - Comportamiento predeterminado +Recomendado - El juego no se pausará durante las deconstrucciones +Alto riesgo - Además de Recomendado, el juego tampoco se pausará al abrir el menú. Esto puede causar corrupción de guardado si no pausas el juego antes de guardar.","" +BeaverBuddies.Settings.PauseReduction.Off,"Desactivado","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Recomendado","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Alto riesgo","" BeaverBuddies.Host.ConnectedClients,"Esperando clientes… Clientes actualmente conectados:","" BeaverBuddies.Host.DirectConnectClient,"Cliente de conexión directa","" diff --git a/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv b/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv index bd52f1e..8d99d7d 100644 --- a/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv @@ -63,6 +63,17 @@ BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Autoriser les amis à rejoindre BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Si activé, tes amis peuvent rejoindre ta partie directement via Steam sans invitation.","" BeaverBuddies.Settings.ReducePauses,"Réduire le nombre de pauses forcées","" BeaverBuddies.Settings.ReducePauses.Tooltip,"Si activé, le nombre de pauses forcées (menu principal, déconstructions, etc.) est fortement réduit. Pour une expérience optimale, tous les joueurs devraient utiliser le même réglage.","" +BeaverBuddies.Settings.PauseReduction,"Réduire le nombre de pauses forcées","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Pour une expérience optimale, tous les joueurs devraient utiliser le même réglage. + +Désactivé - Comportement par défaut +Recommandé - Le jeu ne sera pas mis en pause lors des déconstructions +Risque élevé - En plus de Recommandé, le jeu ne sera pas non plus mis en pause lors de l'ouverture du menu. Cela peut entraîner une corruption de sauvegarde si vous ne mettez pas le jeu en pause avant de sauvegarder.","" +BeaverBuddies.Settings.PauseReduction.Off,"Désactivé","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Recommandé","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Risque élevé","" +BeaverBuddies.Host.ConnectedClients,"En attente des clients… +Clients actuellement connectés :","" BeaverBuddies.Host.ConnectedClients,"En attente des clients… Clients actuellement connectés :","" BeaverBuddies.Host.DirectConnectClient,"Client de connexion directe","" diff --git a/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv b/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv index df62a81..dab8004 100644 --- a/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/itIT_BeaverBuddie.csv @@ -61,8 +61,15 @@ Nota: questa funzione potrebbe non funzionare se la tua rete non supporta P2P. Inoltre, le connessioni P2P possono essere più lente di quelle dirette.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Permetti agli amici di unirsi direttamente via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Se attivo, i tuoi amici possono unirsi direttamente alla tua partita via Steam senza bisogno di inviti.","" -BeaverBuddies.Settings.ReducePauses,"Riduci il numero di pause forzate","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Se abilitato, il numero di pause forzate (menu principale, decostruzioni, ecc.) viene drasticamente ridotto. Per la migliore esperienza tutti i giocatori dovrebbero usare la stessa impostazione.","" +BeaverBuddies.Settings.PauseReduction,"Riduci il numero di pause forzate","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Per un'esperienza ottimale, tutti i giocatori dovrebbero impostarlo allo stesso modo. + +Disattivato - Comportamento predefinito +Consigliato - Il gioco non verrà messo in pausa durante le decostruzioni +Alto rischio - Oltre a Consigliato, il gioco non si metterà in pausa neanche quando si apre il menu. Questo può causare corruzione dei salvataggi se non metti in pausa il gioco prima di salvare.","" +BeaverBuddies.Settings.PauseReduction.Off,"Off","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Recommended","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"High-Risk","" BeaverBuddies.Host.ConnectedClients,"In attesa di client… Client attualmente connessi:","" BeaverBuddies.Host.DirectConnectClient,"Client connessione diretta","" diff --git a/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv b/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv index 01f35de..292308b 100644 --- a/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/jaJP_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"SteamのP2Pネットワー また、P2P接続は直接接続より遅くなる場合があります。","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Steam経由で友達が参加可能に","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"有効にすると、あなたの友達がSteam経由で招待なしで直接参加できます。","" -BeaverBuddies.Settings.ReducePauses,"強制一時停止の回数を減らす","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"有効にすると、強制一時停止(メインメニュー、解体など)が大幅に減ります。最適な体験のため、全プレイヤーが同じ設定を使用することを推奨します。","" +BeaverBuddies.Settings.PauseReduction,"強制一時停止の回数を減らす","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"最適な体験のため、全プレイヤーが同じ設定を使用することを推奨します。 + +オフ - デフォルトの動作 +推奨 - 解体時にゲームが一時停止しません +高リスク - 推奨に加えて、メニューを開いた時もゲームが一時停止しません。保存前にゲームを一時停止しないとセーブデータが破損する可能性があります。","" +BeaverBuddies.Settings.PauseReduction.Off,"オフ","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"推奨","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"高リスク","" BeaverBuddies.Host.ConnectedClients,"クライアントを待っています… 現在接続中のクライアント:","" BeaverBuddies.Host.DirectConnectClient,"ダイレクト接続クライアント","" diff --git a/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv b/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv index 1a8c91e..959115a 100644 --- a/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/koKR_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"Steam의 P2P 네트워크 또한 P2P 연결은 직접 연결보다 느릴 수 있습니다.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"친구가 Steam에서 바로 참여 가능","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"활성화하면 당신의 친구들이 Steam을 통해 초대 없이 바로 참여할 수 있습니다.","" -BeaverBuddies.Settings.ReducePauses,"강제 일시정지 횟수 줄이기","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"활성화하면 강제 일시정지(메인 메뉴, 해체 등)의 횟수가 크게 줄어듭니다. 최적의 경험을 위해 모든 플레이어가 동일한 설정을 사용하는 것이 좋습니다.","" +BeaverBuddies.Settings.PauseReduction,"강제 일시정지 횟수 줄이기","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"최적의 경험을 위해 모든 플레이어가 동일한 설정을 사용하는 것이 좋습니다. + +끄기 - 기본 동작 +권장 - 해체 시 게임이 일시정지되지 않습니다 +높은 위험 - 권장에 더해 메뉴를 열 때도 게임이 일시정지되지 않습니다. 저장하기 전에 게임을 일시정지하지 않으면 저장 파일이 손상될 수 있습니다.","" +BeaverBuddies.Settings.PauseReduction.Off,"끄기","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"권장","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"높은 위험","" BeaverBuddies.Host.ConnectedClients,"클라이언트 연결 대기 중… 현재 연결된 클라이언트:","" BeaverBuddies.Host.DirectConnectClient,"다이렉트 연결 클라이언트","" diff --git a/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv b/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv index c994858..cade240 100644 --- a/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/plPL_BeaverBuddie.csv @@ -61,8 +61,15 @@ Uwaga: ta funkcja może nie działać, jeśli twoja sieć nie obsługuje P2P. Ponadto połączenia P2P mogą być wolniejsze niż bezpośrednie.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Pozwól znajomym na dołączenie przez Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Po włączeniu twoi znajomi mogą dołączyć do twojej gry bez zaproszenia, korzystając ze Steam.","" -BeaverBuddies.Settings.ReducePauses,"Zmniejsz liczbę wymuszonych pauz","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Po włączeniu liczba wymuszonych pauz (menu główne, rozbiórki itd.) zostanie mocno ograniczona. Dla najlepszego efektu wszyscy gracze powinni mieć to samo ustawienie.","" +BeaverBuddies.Settings.PauseReduction,"Zmniejsz liczbę wymuszonych pauz","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Dla najlepszego efektu wszyscy gracze powinni mieć to samo ustawienie. + +Wyłączone - Domyślne zachowanie +Zalecane - Gra nie będzie wstrzymywana podczas rozbiórek +Wysokie ryzyko - Oprócz Zalecanego, gra również nie będzie wstrzymywana przy otwieraniu menu. Może to prowadzić do uszkodzenia zapisów, jeśli nie zatrzymasz gry przed zapisaniem.","" +BeaverBuddies.Settings.PauseReduction.Off,"Wyłączone","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Zalecane","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Wysokie ryzyko","" BeaverBuddies.Host.ConnectedClients,"Oczekiwanie na klientów… Obecnie połączeni klienci:","" BeaverBuddies.Host.DirectConnectClient,"Klient połączenia bezpośredniego","" diff --git a/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv b/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv index 5ecbb95..9fe06f6 100644 --- a/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/ptBR_BeaverBuddie.csv @@ -61,8 +61,15 @@ Nota: este recurso pode não funcionar se sua rede não suportar conexões P2P. Além disso, conexões P2P podem ser mais lentas que conexões diretas.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Permitir que amigos entrem diretamente via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Quando ativado, seus amigos podem entrar diretamente no seu jogo via Steam sem convite.","" -BeaverBuddies.Settings.ReducePauses,"Reduzir o número de pausas forçadas","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Quando ativado, o número de pausas forçadas (menu principal, desconstruções etc.) é drasticamente reduzido. Para a melhor experiência, todos os jogadores devem usar a mesma configuração.","" +BeaverBuddies.Settings.PauseReduction,"Reduzir o número de pausas forçadas","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Para a melhor experiência, todos os jogadores devem usar a mesma configuração. + +Desligado - Comportamento padrão +Recomendado - O jogo não será pausado durante desconstruções +Alto risco - Além de Recomendado, o jogo também não pausará ao abrir o menu. Isso pode levar à corrupção de salvamentos se você não pausar o jogo antes de salvar.","" +BeaverBuddies.Settings.PauseReduction.Off,"Desligado","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Recomendado","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Alto risco","" BeaverBuddies.Host.ConnectedClients,"Aguardando clientes… Clientes atualmente conectados:","" BeaverBuddies.Host.DirectConnectClient,"Cliente de conexão direta","" diff --git a/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv b/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv index 4baa1ec..8c10714 100644 --- a/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/ruRU_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"Позволяет игр Кроме того, P2P‑соединения могут быть медленнее прямых.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Разрешить друзьям присоединяться через Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Если включено, ваши друзья смогут напрямую подключаться к вашей игре через Steam без приглашения.","" -BeaverBuddies.Settings.ReducePauses,"Уменьшить число принудительных пауз","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Если включено, число принудительных пауз (главное меню, демонтаж и т.п.) значительно сокращается. Для лучшего опыта всем игрокам стоит использовать одинаковую настройку.","" +BeaverBuddies.Settings.PauseReduction,"Уменьшить число принудительных пауз","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Для лучшего опыта всем игрокам стоит использовать одинаковую настройку. + +Выключено - Поведение по умолчанию +Рекомендуется - Игра не будет ставиться на паузу при разборке построек +Высокий риск - Помимо Рекомендуется, игра также не будет ставиться на паузу при открытии меню. Это может привести к повреждению сохранений, если вы не поставите игру на паузу перед сохранением.","" +BeaverBuddies.Settings.PauseReduction.Off,"Выключено","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Рекомендуется","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Высокий риск","" BeaverBuddies.Host.ConnectedClients,"Ожидание клиентов… В настоящее время подключено:","" BeaverBuddies.Host.DirectConnectClient,"Клиент прямого подключения","" diff --git a/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv b/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv index 4e75659..801780b 100644 --- a/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/thTH_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"อนุญาตให นอกจากนี้ การเชื่อมต่อ P2P อาจช้ากว่าแบบตรง","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"ให้เพื่อนเข้าร่วมเกมผ่าน Steam ได้ตรงๆ","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"หากเปิดใช้งาน เพื่อนของคุณสามารถเข้าร่วมเกมผ่าน Steam โดยไม่ต้องเชิญ","" -BeaverBuddies.Settings.ReducePauses,"ลดจำนวนการหยุดชั่วคราวที่ถูกบังคับ","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"หากเปิดใช้ จำนวนการหยุดชั่วคราวที่ถูกบังคับ (เมนูหลัก การรื้อถอน ฯลฯ) จะลดลงอย่างมาก เพื่อประสบการณ์ที่ดีที่สุด ผู้เล่นทุกคนควรใช้การตั้งค่าเดียวกัน","" +BeaverBuddies.Settings.PauseReduction,"ลดจำนวนการหยุดชั่วคราวที่ถูกบังคับ","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"เพื่อประสบการณ์ที่ดีที่สุด ผู้เล่นทุกคนควรใช้การตั้งค่าเดียวกัน + +ปิด - พฤติกรรมเริ่มต้น +แนะนำ - เกมจะไม่หยุดชั่วคราวระหว่างการรื้อถอน +ความเสี่ยงสูง - นอกจากแนะนำแล้ว เกมจะไม่หยุดชั่วคราวเมื่อเปิดเมนูด้วย อาจทำให้ไฟล์บันทึกเสียหายหากคุณไม่หยุดเกมก่อนบันทึก","" +BeaverBuddies.Settings.PauseReduction.Off,"ปิด","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"แนะนำ","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"ความเสี่ยงสูง","" BeaverBuddies.Host.ConnectedClients,"กำลังรอลูกค้าเชื่อมต่อ… ลูกค้าที่เชื่อมต่อขณะนี้:","" BeaverBuddies.Host.DirectConnectClient,"ไคลเอนต์เชื่อมต่อโดยตรง","" diff --git a/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv b/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv index 655be3e..18362eb 100644 --- a/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/trTR_BeaverBuddie.csv @@ -61,8 +61,15 @@ Not: Ağınız P2P’yi desteklemiyorsa bu özellik çalışmayabilir. Ayrıca eşler arası bağlantılar doğrudan bağlantılardan daha yavaş olabilir.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Arkadaşların Steam Üzerinden Katılmasına İzin Ver","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Etkinleştirilirse, arkadaşlarınız Steam üzerinden sizi davet etmeden doğrudan katılabilir.","" -BeaverBuddies.Settings.ReducePauses,"Zorunlu duraklamaların sayısını azalt","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Etkinleştirildiğinde zorunlu duraklamalar (ana menü, yıkımlar vb.) büyük ölçüde azalır. En iyi deneyim için tüm oyuncuların aynı ayarı kullanması önerilir.","" +BeaverBuddies.Settings.PauseReduction,"Zorunlu duraklamaların sayısını azalt","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"En iyi deneyim için tüm oyuncuların aynı ayarı kullanması önerilir. + +Kapalı - Varsayılan davranış +Önerilen - Oyun yıkımlar sırasında duraklatılmayacak +Yüksek Riskli - Önerilen'e ek olarak, menü açılırken oyun duraklatılmayacak. Kaydetmeden önce oyunu duraklatmazsanız kayıt bozulmalarına yol açabilir.","" +BeaverBuddies.Settings.PauseReduction.Off,"Kapalı","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Önerilen","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Yüksek Riskli","" BeaverBuddies.Host.ConnectedClients,"Müşterilerin bağlanması bekleniyor… Şu anda bağlı müşteriler:","" BeaverBuddies.Host.DirectConnectClient,"Doğrudan Bağlantı İstemcisi","" diff --git a/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv b/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv index 955e276..18e0b55 100644 --- a/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/ukUA_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"Дозволяє грав Крім того, P2P‑з’єднання можуть бути повільнішими за прямі.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Дозволити друзям підключатись через Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Якщо ввімкнено, ваші друзі зможуть підключитись без запрошення через Steam.","" -BeaverBuddies.Settings.ReducePauses,"Зменшити кількість примусових пауз","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Якщо ввімкнено, кількість примусових пауз (головне меню, демонтаж тощо) суттєво зменшується. Для найкращого досвіду всі гравці мають використовувати однакове налаштування.","" +BeaverBuddies.Settings.PauseReduction,"Зменшити кількість примусових пауз","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Для оптимального досвіду всі гравці мають встановити однакове налаштування. + +Вимкнено - Типова поведінка +Рекомендовано - Гра не буде призупинятись під час демонтажу +Високий ризик - На додаток до рекомендованого, гра також не призупинятиметься при відкритті меню. Це може призвести до пошкодження збережень, якщо ви не призупините гру перед збереженням.","" +BeaverBuddies.Settings.PauseReduction.Off,"Вимкнено","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"Рекомендовано","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"Високий ризик","" BeaverBuddies.Host.ConnectedClients,"Очікування клієнтів… Наразі підключено клієнтів:","" BeaverBuddies.Host.DirectConnectClient,"Клієнт прямого підключення","" diff --git a/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv b/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv index 03e203b..419b06e 100644 --- a/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/zhCN_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"允许玩家通过 Steam 此外,P2P 连接可能比直接连接慢。","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"允许好友通过 Steam 直接加入","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"启用后,你的好友可以通过 Steam 直接加入游戏,无需邀请。","" -BeaverBuddies.Settings.ReducePauses,"减少强制暂停的次数","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"启用后,将大幅减少强制暂停(主菜单、拆除等)的次数。为获得最佳体验,建议所有玩家使用相同设置。","" +BeaverBuddies.Settings.PauseReduction,"减少强制暂停的次数","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"为获得最佳体验,建议所有玩家使用相同设置。 + +关闭 - 默认行为 +推荐 - 拆除建筑时游戏不会暂停 +高风险 - 在推荐模式的基础上,打开菜单时游戏也不会暂停。如果在保存前不暂停游戏,可能导致存档损坏。","" +BeaverBuddies.Settings.PauseReduction.Off,"关闭","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"推荐","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"高风险","" BeaverBuddies.Host.ConnectedClients,"等待客户端连接… 当前已连接客户端:","" BeaverBuddies.Host.DirectConnectClient,"直接连接客户端","" diff --git a/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv b/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv index 718a450..6ca7973 100644 --- a/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/zhTW_BeaverBuddie.csv @@ -61,8 +61,15 @@ BeaverBuddies.Settings.EnableSteamConnection.Tooltip,"允許玩家通過 Steam 此外,P2P 連接可能比直接連接慢。","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"允許好友透過 Steam 直接加入","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"啟用後,好友可以透過 Steam 無需邀請直接加入遊戲。","" -BeaverBuddies.Settings.ReducePauses,"減少強制暫停的次數","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"啟用後,強制暫停(主選單、拆除等)的次數將大幅減少。為獲得最佳體驗,建議所有玩家使用相同設定。","" +BeaverBuddies.Settings.PauseReduction,"減少強制暫停的次數","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"為獲得最佳體驗,建議所有玩家使用相同設定。 + +關閉 - 預設行為 +建議 - 拆除建築時遊戲不會暫停 +高風險 - 在建議模式的基礎上,打開選單時遊戲也不會暫停。若在儲存前不暫停遊戲,可能導致存檔損壞。","" +BeaverBuddies.Settings.PauseReduction.Off,"關閉","" +BeaverBuddies.Settings.PauseReduction.LowRisk,"建議","" +BeaverBuddies.Settings.PauseReduction.HighRisk,"高風險","" BeaverBuddies.Host.ConnectedClients,"等待客戶端連接… 目前已連接客戶端:","" BeaverBuddies.Host.DirectConnectClient,"直接連接客戶端","" From 2308d6bb0e81529d023b71824a724f340e6d8ceb Mon Sep 17 00:00:00 2001 From: samuzad Date: Sun, 19 Oct 2025 13:21:46 +0100 Subject: [PATCH 08/10] make reducing pauses into a 3option dropdown --- BeaverBuddies/Events/TimeEvents.cs | 15 +++++++-------- BeaverBuddies/Settings.cs | 28 ++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index afde624..f4bea64 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -163,11 +163,11 @@ public override void Replay(IReplayContext context) } } - // We make showing the options menu a synced game event, rather than + // By default, we make showing the options menu a synced game event, rather than // a non-synced UI action, for two reasons: // 1) This ensures that the Options menu is always shown when a full // tick has been completed. - // 2) This will give other plays a visual clue about why the game has + // 2) This will give other players a visual clue about why the game has // paused. // However, only the host will be able to unpause, and only by manually // setting the game speed, since they won't process any events by clients @@ -179,17 +179,16 @@ static bool Prefix() { // This would make options menu unsynced and non-pausing, - // but I think it's too dangerous to open the menu outside of a synced pause. - // If it's going to be an option it should be separate from skipping - // other less critical pauses. - //if (Settings.ReducePausesEnabled) return true; + // but I think it's dangerous to open the menu outside of a synced pause. + // So we will only do this if the user explicitly opts into it + if (Settings.PauseReductionLevel == 2 ) return true; return ReplayEvent.DoPrefix(() => new ShowOptionsMenuEvent()); } } // OverlayPanelSpeedLocker is triggering ChangeAndLockSpeed via OnPanelShown - // This is now configurable via Settings.ReducePausesEnable. If we don't freeze, it could + // This is now configurable via Settings.PauseReduction. If we don't freeze, it could // definitely cause some possible invalid operations (e.g. deleting a building // that's not there anymore), but in theory these errors get caught before // sending to the server. In practice, though, there could be side-effects of @@ -200,7 +199,7 @@ public class OverlayPanelSpeedLockerShowPatcher { public static bool Prefix() { - return !Settings.ReducePausesEnabled; + return Settings.PauseReductionLevel == 0; } } } diff --git a/BeaverBuddies/Settings.cs b/BeaverBuddies/Settings.cs index 0820cdf..28ad82f 100644 --- a/BeaverBuddies/Settings.cs +++ b/BeaverBuddies/Settings.cs @@ -1,6 +1,7 @@ using BeaverBuddies.DesyncDetecter; using Bindito.Core.Internal; using ModSettings.Core; +using ModSettings.Common; using Timberborn.Modding; using Timberborn.SettingsSystem; @@ -54,11 +55,13 @@ public class Settings : ModSettingsOwner // ---- Quality of Life Settings ---- - public ModSetting ReducePauses { get; } = - new(false, - ModSettingDescriptor.CreateLocalized( - "BeaverBuddies.Settings.ReducePauses" - ).SetLocalizedTooltip("BeaverBuddies.Settings.ReducePauses.Tooltip") + public LimitedStringModSetting PauseReduction { get; } = + new(0, new[] { + new LimitedStringModSettingValue("0", "BeaverBuddies.Settings.PauseReduction.Off"), + new LimitedStringModSettingValue("1", "BeaverBuddies.Settings.PauseReduction.LowRisk"), + new LimitedStringModSettingValue("2", "BeaverBuddies.Settings.PauseReduction.HighRisk") + }, ModSettingDescriptor.CreateLocalized("BeaverBuddies.Settings.PauseReduction") + .SetLocalizedTooltip("BeaverBuddies.Settings.PauseReduction.Tooltip") ); // ---- Developer Settings ---- @@ -96,7 +99,20 @@ public class Settings : ModSettingsOwner public static int Port => instance?.DefaultPort.Value ?? 25565; public static bool EnableSteam => instance?.EnableSteamConnection.Value ?? true; public static bool LobbyJoinable => instance?.FriendsCanJoinSteamGame.Value ?? true; - public static bool ReducePausesEnabled => instance?.ReducePauses.Value ?? false; + + public static int PauseReductionLevel + { + get + { + if (instance?.PauseReduction?.Value == null) + return 0; + + if (int.TryParse(instance.PauseReduction.Value, out int level)) + return level; + + return 0; + } + } public Settings(ISettings settings, ModSettingsOwnerRegistry modSettingsOwnerRegistry, From ceae666569ae1c5f2bcfe22461aa80197cd34cb7 Mon Sep 17 00:00:00 2001 From: samuzad Date: Sun, 19 Oct 2025 13:27:09 +0100 Subject: [PATCH 09/10] fix indent --- BeaverBuddies/Events/TimeEvents.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BeaverBuddies/Events/TimeEvents.cs b/BeaverBuddies/Events/TimeEvents.cs index f4bea64..8978b0a 100644 --- a/BeaverBuddies/Events/TimeEvents.cs +++ b/BeaverBuddies/Events/TimeEvents.cs @@ -5,8 +5,8 @@ using Timberborn.Options; using Timberborn.OptionsGame; using Timberborn.TimeSystem; - using Timberborn.UILayoutSystem; - using static BeaverBuddies.SingletonManager; +using Timberborn.UILayoutSystem; +using static BeaverBuddies.SingletonManager; namespace BeaverBuddies.Events { From 0611a77d6888b6dc7f861ba1b23cd1170266d460 Mon Sep 17 00:00:00 2001 From: samuzad Date: Sun, 19 Oct 2025 13:31:59 +0100 Subject: [PATCH 10/10] fix french localization options --- BeaverBuddies/Localizations/frFR_BeaverBuddie.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv b/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv index 8d99d7d..19e13a0 100644 --- a/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv +++ b/BeaverBuddies/Localizations/frFR_BeaverBuddie.csv @@ -61,8 +61,8 @@ Remarque : cette fonctionnalité peut ne pas fonctionner si ton réseau ne suppo De plus, les connexions P2P peuvent être plus lentes que les connexions directes.","" BeaverBuddies.Settings.FriendsCanJoinSteamGame,"Autoriser les amis à rejoindre via Steam","" BeaverBuddies.Settings.FriendsCanJoinSteamGame.Tooltip,"Si activé, tes amis peuvent rejoindre ta partie directement via Steam sans invitation.","" -BeaverBuddies.Settings.ReducePauses,"Réduire le nombre de pauses forcées","" -BeaverBuddies.Settings.ReducePauses.Tooltip,"Si activé, le nombre de pauses forcées (menu principal, déconstructions, etc.) est fortement réduit. Pour une expérience optimale, tous les joueurs devraient utiliser le même réglage.","" +BeaverBuddies.Settings.PauseReduction,"Réduire le nombre de pauses forcées","" +BeaverBuddies.Settings.PauseReduction.Tooltip,"Si activé, le nombre de pauses forcées (menu principal, déconstructions, etc.) est fortement réduit. Pour une expérience optimale, tous les joueurs devraient utiliser le même réglage.","" BeaverBuddies.Settings.PauseReduction,"Réduire le nombre de pauses forcées","" BeaverBuddies.Settings.PauseReduction.Tooltip,"Pour une expérience optimale, tous les joueurs devraient utiliser le même réglage.