Skip to content

Commit be53282

Browse files
authored
Add toggle to disable chat auto-open on activity (SubnauticaNitrox#2650)
1 parent 3e0b210 commit be53282

File tree

6 files changed

+9
-17
lines changed

6 files changed

+9
-17
lines changed

NitroxClient/Communication/Packets/Processors/ChatMessageProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private void LogClientMessage(ChatMessage message)
6464
}
6565

6666
playerChatManager.AddMessage(playerName, message.Text, color.ToUnity());
67-
if (NitroxPrefs.ChatVisibilityDuration.Value > 0f)
67+
if (NitroxPrefs.ChatAutoOpen.Value)
6868
{
6969
playerChatManager.ShowChat();
7070
}
@@ -73,7 +73,7 @@ private void LogClientMessage(ChatMessage message)
7373
private void LogServerMessage(ChatMessage message)
7474
{
7575
playerChatManager.AddMessage("Server", message.Text, serverMessageColor);
76-
if (NitroxPrefs.ChatVisibilityDuration.Value > 0f)
76+
if (NitroxPrefs.ChatAutoOpen.Value)
7777
{
7878
playerChatManager.ShowChat();
7979
}

NitroxClient/GameLogic/Settings/NitroxPrefs.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ public class NitroxPrefs
1010
public static readonly NitroxPref<bool> HideIp = new("Nitrox.hideIp");
1111
/// <summary>
1212
/// How long the chat window stays visible after receiving a message (in seconds).
13-
/// 0 = chat is disabled (won't show when others chat).
1413
/// </summary>
1514
public static readonly NitroxPref<float> ChatVisibilityDuration = new("Nitrox.chatVisibilityDuration", 6f);
15+
/// <summary>
16+
/// Whether the chat window should automatically open when receiving messages.
17+
/// </summary>
18+
public static readonly NitroxPref<bool> ChatAutoOpen = new("Nitrox.chatAutoOpen", true);
1619
public static readonly NitroxPref<bool> ChatUsed = new("Nitrox.chatUsed");
1720
public static readonly NitroxPref<bool> SafeBuilding = new("Nitrox.safeBuilding", true);
1821
public static readonly NitroxPref<bool> SafeBuildingLog = new("Nitrox.safeBuildingLog", true);

NitroxClient/GameLogic/Settings/NitroxSettingsManager.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public NitroxSettingsManager()
3434
/// </summary>
3535
private void MakeSettings()
3636
{
37-
AddSetting("Nitrox_Settings_Privacy", new Setting("Nitrox_Settings_ChatVisibilityDuration", NitroxPrefs.ChatVisibilityDuration, duration => NitroxPrefs.ChatVisibilityDuration.Value = (int)duration, 0f, 15f, NitroxPrefs.ChatVisibilityDuration.DefaultValue, 1f, SliderLabelMode.Int, "0", "Nitrox_Settings_ChatVisibilityDuration_Tooltip"));
37+
AddSetting("Nitrox_Settings_Privacy", new Setting("Nitrox_Settings_ChatAutoOpen", NitroxPrefs.ChatAutoOpen, autoOpen => NitroxPrefs.ChatAutoOpen.Value = autoOpen));
38+
AddSetting("Nitrox_Settings_Privacy", new Setting("Nitrox_Settings_ChatVisibilityDuration", NitroxPrefs.ChatVisibilityDuration, duration => NitroxPrefs.ChatVisibilityDuration.Value = (int)duration, 1f, 15f, NitroxPrefs.ChatVisibilityDuration.DefaultValue, 1f, SliderLabelMode.Int, "0", "Nitrox_Settings_ChatVisibilityDuration_Tooltip"));
3839
AddSetting("Nitrox_Settings_Privacy", new Setting("Nitrox_HideIp", NitroxPrefs.HideIp, hide =>
3940
{
4041
NitroxPrefs.HideIp.Value = hide;

NitroxClient/MonoBehaviours/Gui/Chat/PlayerChat.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.Collections.Generic;
44
using System.Linq;
55
using NitroxClient.GameLogic.ChatUI;
6-
using NitroxClient.GameLogic.Settings;
76
using UnityEngine;
87
using UnityEngine.UI;
98

@@ -53,10 +52,6 @@ public IEnumerator SetupChatComponents()
5352

5453
yield return new WaitForEndOfFrame(); //Needed so Select() works on initialization
5554
IsReady = true;
56-
if (NitroxPrefs.ChatVisibilityDuration.Value <= 0f)
57-
{
58-
Log.InGame(Language.main.Get("Nitrox_SilencedChatNotif"));
59-
}
6055
}
6156

6257
public IEnumerator WriteLogEntry(string playerName, string message, Color color)

NitroxClient/MonoBehaviours/Gui/Chat/PlayerChatInputField.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static void ResetTimer()
7171
{
7272
float duration = NitroxPrefs.ChatVisibilityDuration.Value;
7373
timeLeftUntilAutoClose = duration;
74-
// Unfreeze time so the countdown can start (unless duration is 0, which means chat is disabled)
74+
// Unfreeze time so the countdown can start
7575
FreezeTime = false;
7676
}
7777

NitroxClient/MonoBehaviours/Gui/Input/KeyBindings/Actions/ChatKeyBindingAction.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using NitroxClient.GameLogic.ChatUI;
2-
using NitroxClient.GameLogic.Settings;
32
using UnityEngine.InputSystem;
43

54
namespace NitroxClient.MonoBehaviours.Gui.Input.KeyBindings.Actions;
@@ -10,12 +9,6 @@ public ChatKeyBindingAction() : base("Nitrox_Settings_Keybind_OpenChat", "y") {
109

1110
public override void Execute(InputAction.CallbackContext _)
1211
{
13-
// If slider is at 0, chat is completely disabled
14-
if (NitroxPrefs.ChatVisibilityDuration.Value <= 0f)
15-
{
16-
return;
17-
}
18-
1912
// If no other UWE input field is currently active then allow chat to open.
2013
if (FPSInputModule.current.lastGroup == null && Multiplayer.Joined)
2114
{

0 commit comments

Comments
 (0)