bruh
This commit is contained in:
@@ -332,19 +332,6 @@ namespace KCM.LoadSaveOverrides
|
||||
Main.helper.Log($"Setting kingdom name to: {kingdomNames[Main.PlayerSteamID]}");
|
||||
TownNameUI.inst.SetTownName(kingdomNames[Main.PlayerSteamID]);
|
||||
|
||||
// Force transition to PlayingMode to enable villager movement
|
||||
try
|
||||
{
|
||||
Main.helper.Log("MultiplayerSaveContainer.Unpack: Setting PlayingMode");
|
||||
GameState.inst.SetNewMode(GameState.inst.playingMode);
|
||||
Main.helper.Log("MultiplayerSaveContainer.Unpack: PlayingMode set successfully");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Main.helper.Log("MultiplayerSaveContainer.Unpack: Failed to set PlayingMode");
|
||||
Main.helper.Log(e.ToString());
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
48
Main.cs
48
Main.cs
@@ -290,26 +290,6 @@ namespace KCM
|
||||
{
|
||||
helper?.Log("VillagerSystem.enabled = " + VillagerSystem.inst.enabled);
|
||||
}
|
||||
|
||||
// Force transition to PlayingMode to enable villager movement
|
||||
try
|
||||
{
|
||||
if (GameState.inst != null)
|
||||
{
|
||||
helper?.Log("RunPostLoadRebuild: Current GameState mode: " + TryGetGameModeName());
|
||||
if (GameState.inst.playingMode != null)
|
||||
{
|
||||
helper?.Log("RunPostLoadRebuild: Setting PlayingMode");
|
||||
GameState.inst.SetNewMode(GameState.inst.playingMode);
|
||||
helper?.Log("RunPostLoadRebuild: PlayingMode set successfully");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
helper?.Log("RunPostLoadRebuild: Failed to set PlayingMode");
|
||||
helper?.Log(ex.ToString());
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -499,6 +479,22 @@ namespace KCM
|
||||
{
|
||||
lastVillagerProbeMs = now;
|
||||
|
||||
// Proactively check and fix loadTickDelay every 2 seconds
|
||||
int villagerDelay = GetLoadTickDelayOrMinusOne(VillagerSystem.inst);
|
||||
int unitDelay = GetLoadTickDelayOrMinusOne(UnitSystem.inst);
|
||||
int jobDelay = GetLoadTickDelayOrMinusOne(JobSystem.inst);
|
||||
int playerDelay = GetLoadTickDelayOrMinusOne(Player.inst);
|
||||
|
||||
if (villagerDelay <= 0 || unitDelay <= 0 || jobDelay <= 0 || playerDelay <= 0)
|
||||
{
|
||||
Main.helper.Log("LoadTickDelay refresh: delays were " +
|
||||
playerDelay + "/" + unitDelay + "/" + jobDelay + "/" + villagerDelay + ", resetting to 1");
|
||||
SetLoadTickDelay(Player.inst, 1);
|
||||
SetLoadTickDelay(UnitSystem.inst, 1);
|
||||
SetLoadTickDelay(JobSystem.inst, 1);
|
||||
SetLoadTickDelay(VillagerSystem.inst, 1);
|
||||
}
|
||||
|
||||
Villager v = null;
|
||||
try
|
||||
{
|
||||
@@ -548,11 +544,15 @@ namespace KCM
|
||||
GetLoadTickDelayOrMinusOne(VillagerSystem.inst));
|
||||
|
||||
// Try to fix stalled systems by resetting loadTickDelay
|
||||
if (GetLoadTickDelayOrMinusOne(VillagerSystem.inst) == -1 ||
|
||||
GetLoadTickDelayOrMinusOne(UnitSystem.inst) == -1 ||
|
||||
GetLoadTickDelayOrMinusOne(JobSystem.inst) == -1)
|
||||
int villagerDelay = GetLoadTickDelayOrMinusOne(VillagerSystem.inst);
|
||||
int unitDelay = GetLoadTickDelayOrMinusOne(UnitSystem.inst);
|
||||
int jobDelay = GetLoadTickDelayOrMinusOne(JobSystem.inst);
|
||||
int playerDelay = GetLoadTickDelayOrMinusOne(Player.inst);
|
||||
|
||||
if (villagerDelay <= 0 || unitDelay <= 0 || jobDelay <= 0 || playerDelay <= 0)
|
||||
{
|
||||
Main.helper.Log("VillagerStallDetect: Attempting to fix stalled systems");
|
||||
Main.helper.Log("VillagerStallDetect: Attempting to fix stalled systems (delays: " +
|
||||
playerDelay + "/" + unitDelay + "/" + jobDelay + "/" + villagerDelay + ")");
|
||||
SetLoadTickDelay(Player.inst, 1);
|
||||
SetLoadTickDelay(UnitSystem.inst, 1);
|
||||
SetLoadTickDelay(JobSystem.inst, 1);
|
||||
|
||||
@@ -577,18 +577,14 @@ namespace KCM.StateManagement.Sync
|
||||
|
||||
private static void BroadcastVillagerSnapshot()
|
||||
{
|
||||
// TEMPORARILY DISABLED: VillagerSnapshot causes packet overflow errors
|
||||
// TODO: Fix villager synchronization properly
|
||||
return;
|
||||
if (!KCServer.IsRunning)
|
||||
return;
|
||||
|
||||
// if (!KCServer.IsRunning)
|
||||
// return;
|
||||
if (KCServer.server.ClientCount == 0)
|
||||
return;
|
||||
|
||||
// if (KCServer.server.ClientCount == 0)
|
||||
// return;
|
||||
|
||||
// if (Villager.villagers == null || Villager.villagers.Count == 0)
|
||||
// return;
|
||||
if (Villager.villagers == null || Villager.villagers.Count == 0)
|
||||
return;
|
||||
|
||||
List<Guid> guids = new List<Guid>();
|
||||
List<Vector3> positions = new List<Vector3>();
|
||||
|
||||
Reference in New Issue
Block a user