2.10.9: beta notice in the MSCO menu and the in-game status bar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-04 20:45:59 +02:00
co-authored by Claude Opus 5.5
parent d195a484d8
commit dd4e004d51
4 changed files with 33 additions and 2 deletions
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## 2.10.9
- **Beta-Hinweis:** im MSCO-Menü steht „BETA“ neben dem Schriftzug und ein kurzer Hinweis, dass Fehler auftreten
können; die Statusleiste im Spiel zeigt „MSCO BETA“
- Die Statusleiste baut ihren Text nur noch bei Änderungen neu (nicht jedes Frame)
## 2.10.8
**Stabilität – weniger Hänger**
+15
View File
@@ -73,6 +73,7 @@ namespace MSCO
GUIStyle dangerStyle;
GUIStyle windowBox, sidebarBox, rowBox, accentBox, pillStyle, pillMutedStyle, chipOnStyle, chipOffStyle;
GUIStyle featuredRowBox, pillFeaturedStyle;
GUIStyle betaPillStyle, betaNoteStyle;
GUIStyle logoStyle, taglineStyle, navStyle, navActiveStyle, titleStyle, textStyle, captionStyle,
fieldStyle, primaryStyle, secondaryStyle, statusStyle, tabStyle, headerCellStyle,
rowNameStyle, rowTagStyle, badgeStyle, toggleStyle, placeholderStyle;
@@ -193,6 +194,9 @@ namespace MSCO
textX = r.x + S(72);
}
GUI.Label(new Rect(textX, r.y + S(24), r.xMax - textX, S(40)), "MSCO", logoStyle);
// Beta-Abzeichen direkt hinter dem Schriftzug
float logoWidth = logoStyle.CalcSize(new GUIContent("MSCO")).x;
GUI.Box(new Rect(textX + logoWidth + S(6), r.y + S(36), S(40), S(18)), "BETA", betaPillStyle);
GUI.Label(new Rect(r.x + S(22), r.y + S(70), r.width - S(30), S(20)), "MY SUMMER CAR ONLINE", taglineStyle);
GUI.DrawTexture(new Rect(r.x + S(20), r.y + S(98), r.width - S(40), S(1)), texDivider);
@@ -206,6 +210,9 @@ namespace MSCO
y += S(44);
int modCount = ModLoader.All.Count;
if (NavButton(new Rect(r.x, y, r.width, S(42)), "Mods" + (modCount > 0 ? " (" + modCount + ")" : ""), page == Page.Mods)) page = Page.Mods;
y += S(54);
GUI.Label(new Rect(r.x + S(22), y, r.width - S(40), S(64)),
"MSCO is still in beta - bugs can happen. If something goes wrong, please tell us.", betaNoteStyle);
// Eigenes Hauptmenü: Spiel beenden (die Knöpfe des Spiel-Menüs sind ausgeblendet)
if (quitConfirm)
@@ -1120,6 +1127,14 @@ namespace MSCO
logoStyle = Label(P(28), Color.white, FontStyle.Bold);
taglineStyle = Label(P(10), Muted, FontStyle.Bold);
betaPillStyle = UiTheme.Panel9(UiTheme.Accent, 4);
if (UiTheme.DynamicFont != null) betaPillStyle.font = UiTheme.DynamicFont;
betaPillStyle.normal.textColor = new Color(0.1f, 0.07f, 0.02f);
betaPillStyle.fontSize = P(10);
betaPillStyle.fontStyle = FontStyle.Bold;
betaPillStyle.alignment = TextAnchor.MiddleCenter;
betaNoteStyle = Label(P(11), Muted, FontStyle.Normal);
betaNoteStyle.wordWrap = true;
titleStyle = Label(P(24), Color.white, FontStyle.Bold);
textStyle = Label(P(13), Muted, FontStyle.Normal);
textStyle.wordWrap = true;
+1 -1
View File
@@ -11,7 +11,7 @@ namespace MSCO
/// Version der Mod. Kleine Updates: nur die dritte Stelle erhöhen (2.9.1, 2.9.2 ...) - sie bleiben mit
/// Servern und Mitspielern derselben ersten zwei Stellen kompatibel.
/// </summary>
public const string ModVersion = "2.10.8";
public const string ModVersion = "2.10.9";
/// <summary>
/// Netzwerk-Version (die ersten beiden Stellen). Nur erhöhen, wenn sich das Protokoll inkompatibel ändert - dann
/// auch GameServer.ModVersion im Server.
+11 -1
View File
@@ -2725,12 +2725,22 @@ namespace MSCO
InputLock.Set(overlays.AnyOpen && MenuHelper.InGame);
}
string hudText;
int hudTextKey;
void DrawHud()
{
// Statuszeile oben in der Mitte (links oben ist die Spielanzeige)
string state = IsFullyConnected ? "CONNECTED" : IsPeerReady ? "SYNCING..." : "WAITING";
string text = "MSCO • " + state + " • " + (dedicated ? "Server" : IsHost ? "Host" : "Client") + " • " +
// Text nur neu bauen, wenn sich etwas geändert hat (nicht jedes Frame neue Strings)
int key = (state.Length * 31 + players.Count) * 100003 + objects.Count + (dedicated ? 7 : IsHost ? 3 : 1) * 1000000007;
if (hudText == null || key != hudTextKey)
{
hudTextKey = key;
hudText = "MSCO BETA • " + state + " • " + (dedicated ? "Server" : IsHost ? "Host" : "Client") + " • " +
players.Count + " player(s) • " + objects.Count + " synced objects";
}
string text = hudText;
var rect = new Rect((Screen.width - 520) / 2f, 6, 520, 24);
if (hudBox == null) hudBox = UiTheme.Panel9(new Color(0.06f, 0.06f, 0.07f, 0.85f), 8);
GUI.Box(rect, GUIContent.none, hudBox);