From bb21a092440c0a18601f93d5422181b64ce4b725 Mon Sep 17 00:00:00 2001
From: Evil Factory <36804725+evilfactory@users.noreply.github.com>
Date: Sat, 18 Apr 2026 16:36:36 -0300
Subject: [PATCH] New icon for settings and make the top left text more user
friendly
---
.../_SettingsMenu/SettingsMenuSystem.cs | 5 +++--
.../LocalMods/LuaCsForBarotrauma/filelist.xml | 1 +
.../SharedSource/LuaCs/LuaCsSetup.cs | 4 +++-
.../LuaCs/_Services/MainMenuPatch.cs | 22 ++++++++++++++++++-
4 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/Barotrauma/BarotraumaClient/ClientSource/LuaCs/_Services/_SettingsMenu/SettingsMenuSystem.cs b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/_Services/_SettingsMenu/SettingsMenuSystem.cs
index 2032ec512..1d5cb2d4d 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/LuaCs/_Services/_SettingsMenu/SettingsMenuSystem.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/_Services/_SettingsMenu/SettingsMenuSystem.cs
@@ -45,8 +45,9 @@ public class SettingsMenuSystem : ISettingsMenuSystem
var tabGameplayIndex = (SettingsMenu.Tab)tabCount;
var tabControlsIndex = (SettingsMenu.Tab)tabCount+1;
- _gameplayContentFrame = CreateNewContentTab(tabGameplayIndex, __instance,
- "SettingsMenuTab.Mods", "LuaCsForBarotrauma.SettingsMenu.ModGameplayButton");
+ _gameplayContentFrame = CreateNewContentTab(tabGameplayIndex, __instance,
+ GUIStyle.ComponentStyles.ContainsKey("SettingsMenuTab.LuaCsSettings") ? "SettingsMenuTab.LuaCsSettings" : "SettingsMenuTab.Mods",
+ "LuaCsForBarotrauma.SettingsMenu.ModGameplayButton");
/*_controlsContentFrame = CreateNewContentTab(tabControlsIndex, __instance,
"SettingsMenuTab.Controls", "LuaCsForBarotrauma.SettingsMenu.ModControlsButton");
*/
diff --git a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml
index 445a2ad00..679f8d4c8 100644
--- a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml
+++ b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml
@@ -1,5 +1,6 @@
+
diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs
index 78123b1e3..03c2501b9 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs
@@ -125,7 +125,9 @@ namespace Barotrauma
}
private ISettingList _csRunPolicy;
-
+
+ public string CsRunPolicyValue => _csRunPolicy?.Value ?? "Prompt";
+
///
/// Whether usernames are anonymized or show in logs.
///
diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/MainMenuPatch.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/MainMenuPatch.cs
index 5dfdc794b..5d56ad006 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/MainMenuPatch.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/MainMenuPatch.cs
@@ -43,11 +43,31 @@ internal class MainMenuPatch : ISystem, IEventScreenSelected
{
if (mainMenuUIAdded) { return; }
- new GUITextBlock(new RectTransform(new Point(300, 30), screen.Frame.RectTransform, Anchor.TopLeft) { AbsoluteOffset = new Point(10, 10) }, $"Using LuaCsForBarotrauma revision {AssemblyInfo.GitRevision}", Color.Red)
+ var textBlock = new GUITextBlock(new RectTransform(new Point(300, 30), screen.Frame.RectTransform, Anchor.TopLeft) { AbsoluteOffset = new Point(10, 10) }, "", Color.Red)
{
IgnoreLayoutGroups = false
};
+ textBlock.OnAddedToGUIUpdateList = (GUIComponent component) =>
+ {
+ string mode = LuaCsSetup.Instance.CsRunPolicyValue;
+
+ if (mode is "Prompt")
+ {
+ mode = "Enabled (prompt mode)";
+ }
+ else if (mode is "Enabled")
+ {
+ mode = "Always enabled";
+ }
+ else
+ {
+ mode = "Disabled";
+ }
+
+ textBlock.Text = $"LuaCsForBarotrauma active (revision {AssemblyInfo.GitRevision}), csharp is currently {mode}\nNew settings available in the game settings menu.";
+ };
+
mainMenuUIAdded = true;
}
#endif