? ? ? ? ? ? ? ? ? ?

This commit is contained in:
Ape committed 2026-01-23 18:44:07 +01:00
1 parent 5ae6d648e3
commit 88599a0680
2 files changed
+32 -51

No files matched your search

+1 -1
View File
@@ -44,7 +44,7 @@ internal class Hotkeys
PlayerControl.LocalPlayer.Collider.enabled = !Ctrl;
}
if (Input.GetKeyDown(KeyCode.C) && GameStartManager.Instance.startState == GameStartManager.StartingStates.Countdown && !HudManager.Instance.Chat.IsOpenOrOpening && Utils.IsLobby)
if (Input.GetKeyDown(KeyCode.C) && GameStartManager.InstanceExists && GameStartManager.Instance != null && GameStartManager.Instance.startState == GameStartManager.StartingStates.Countdown && !HudManager.Instance.Chat.IsOpenOrOpening && Utils.IsLobby)
{
Logger.Info("Resetted start countdown", "KeyCommand");
GameStartManager.Instance.ResetStartState();
+31 -50
View File
@@ -19,11 +19,7 @@ public static class GameStartManagerUpdatePatch
__instance.MinPlayers = 1;
if (Main.AutoStart.Value &&
OnGameJoinedPatch.AutoStartCheck &&
GameStartManager.InstanceExists &&
__instance.startState != GameStartManager.StartingStates.Countdown &&
GameData.Instance?.PlayerCount >= Options.PlayerAutoStart.GetInt())
if (Main.AutoStart.Value && OnGameJoinedPatch.AutoStartCheck && GameStartManager.InstanceExists && __instance.startState != GameStartManager.StartingStates.Countdown && GameData.Instance?.PlayerCount >= Options.PlayerAutoStart.GetInt())
{
__instance.startState = GameStartManager.StartingStates.Countdown;
__instance.countDownTimer = Options.AutoStartTimer.GetFloat();
@@ -65,61 +61,46 @@ public static class GameStartManagerUpdatePatch
if (__instance.GameStartText != null)
{
__instance.GameStartText.transform.localPosition =
new Vector3(__instance.GameStartText.transform.localPosition.x, 2f, __instance.GameStartText.transform.localPosition.z);
__instance.GameStartText.transform.localPosition = new Vector3(__instance.GameStartText.transform.localPosition.x, 2f, __instance.GameStartText.transform.localPosition.z);
}
if (GameStartManagerStartPatch.cancelButton != null)
{
GameStartManagerStartPatch.cancelButton.gameObject.SetActive(
__instance.startState == GameStartManager.StartingStates.Countdown);
GameStartManagerStartPatch.cancelButton.gameObject.SetActive(__instance.startState == GameStartManager.StartingStates.Countdown);
}
}
}
[HarmonyPatch(typeof(GameStartManager), nameof(GameStartManager.Start))]
public class GameStartManagerStartPatch
[HarmonyPatch(typeof(GameStartManager), nameof(GameStartManager.Start))]
public class GameStartManagerStartPatch
{
public static TextMeshPro warningText;
public static PassiveButton cancelButton;
public static void Postfix(GameStartManager __instance)
{
public static TextMeshPro warningText;
public static PassiveButton cancelButton;
if (__instance == null || !Utils.IsLobby) return;
public static bool Prefix(GameStartManager __instance)
warningText = UnityEngine.Object.Instantiate(__instance.GameStartText, __instance.transform.parent);
warningText.name = "WarningText";
warningText.transform.localPosition = new Vector3(0f, __instance.transform.localPosition.y + 3f, -1f);
warningText.gameObject.SetActive(false);
cancelButton = UnityEngine.Object.Instantiate(__instance.StartButton, __instance.transform);
cancelButton.name = "CancelButton";
var cancelLabel = cancelButton.buttonText;
cancelLabel.DestroyTranslator();
cancelLabel.text = "Cancel";
cancelButton.activeTextColor = cancelButton.inactiveTextColor = Color.white;
cancelButton.gameObject.SetActive(false);
cancelButton.OnClick = new();
cancelButton.OnClick.AddListener((UnityEngine.Events.UnityAction)(() =>
{
// If we are not in lobby, skip vanilla Start
if (__instance == null) return false;
if (!Utils.IsLobby) return false;
// Ensure all required objects exist
if (__instance.GameStartText == null || __instance.StartButton == null)
return false;
return true;
}
public static void Postfix(GameStartManager __instance)
{
if (__instance == null || !Utils.IsLobby) return;
warningText = UnityEngine.Object.Instantiate(__instance.GameStartText, __instance.transform.parent);
warningText.name = "WarningText";
warningText.transform.localPosition = new Vector3(0f, __instance.transform.localPosition.y + 3f, -1f);
warningText.gameObject.SetActive(false);
cancelButton = UnityEngine.Object.Instantiate(__instance.StartButton, __instance.transform);
cancelButton.name = "CancelButton";
var cancelLabel = cancelButton.buttonText;
cancelLabel.DestroyTranslator();
cancelLabel.text = "Cancel";
cancelButton.activeTextColor = cancelButton.inactiveTextColor = Color.white;
cancelButton.gameObject.SetActive(false);
cancelButton.OnClick = new();
cancelButton.OnClick.AddListener((UnityEngine.Events.UnityAction)(() =>
{
__instance.ResetStartState();
}));
}
__instance.ResetStartState();
}));
}
}