Compare commits
2 Commits
224ba3f912
...
3fbaac2346
| Author | SHA1 | Date | |
|---|---|---|---|
| 3fbaac2346 | |||
| 0e87108b56 |
49
Main.cs
49
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;
|
||||
@@ -616,10 +656,11 @@ namespace KCM
|
||||
GetLoadTickDelayOrMinusOne(VillagerSystem.inst));
|
||||
|
||||
// Try to fix stalled systems by resetting loadTickDelay
|
||||
int villagerDelay = GetLoadTickDelayOrMinusOne(VillagerSystem.inst);
|
||||
int unitDelay = GetLoadTickDelayOrMinusOne(UnitSystem.inst);
|
||||
int jobDelay = GetLoadTickDelayOrMinusOne(JobSystem.inst);
|
||||
int playerDelay = GetLoadTickDelayOrMinusOne(Player.inst);
|
||||
// Reuse the delay variables from earlier in this scope
|
||||
villagerDelay = GetLoadTickDelayOrMinusOne(VillagerSystem.inst);
|
||||
unitDelay = GetLoadTickDelayOrMinusOne(UnitSystem.inst);
|
||||
jobDelay = GetLoadTickDelayOrMinusOne(JobSystem.inst);
|
||||
playerDelay = GetLoadTickDelayOrMinusOne(Player.inst);
|
||||
|
||||
if (villagerDelay <= 0 || unitDelay <= 0 || jobDelay <= 0 || playerDelay <= 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user