From 3fbaac2346af2c392a7f8912a7a0d39e09efb311 Mon Sep 17 00:00:00 2001 From: devbeni Date: Sun, 14 Dec 2025 01:27:26 +0100 Subject: [PATCH] =?UTF-8?q?na=20m=C3=A9g=201x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Main.cs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Main.cs b/Main.cs index 895e1c6..55b21bc 100644 --- a/Main.cs +++ b/Main.cs @@ -226,6 +226,45 @@ namespace KCM catch { } + + return -1; + } + + private static string TryGetGameModeName() + { + try + { + if (GameState.inst == null) + return "null"; + + var t = GameState.inst.GetType(); + + var modeProp = t.GetProperty("mode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + ?? t.GetProperty("Mode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + ?? t.GetProperty("CurrentMode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + if (modeProp != null) + { + object m = modeProp.GetValue(GameState.inst, null); + return m != null ? m.GetType().Name : "null"; + } + + var modeField = t.GetField("mode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + ?? t.GetField("Mode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + ?? t.GetField("currentMode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic) + ?? t.GetField("currMode", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + if (modeField != null) + { + object fm = modeField.GetValue(GameState.inst); + return fm != null ? fm.GetType().Name : "null"; + } + } + catch + { + } + + return "unknown"; } private static bool TryGetVillagerPosition(Villager villager, out Vector3 position) @@ -502,6 +541,7 @@ namespace KCM #endregion public static int FixedUpdateInterval = 0; + private static int worldReadyRebuildDone = 0; private static long lastVillagerMoveMs = 0; private static long lastVillagerProbeMs = 0; private static long lastVillagerStallLogMs = 0;