Fix: Remove AddBuilding from ProcessBuildingHook

The original PlayerSaveData.Unpack calls AddBuilding, PlaceFromLoad,
and UnpackStage2 after ProcessBuilding returns. The hook should only
create and initialize the building, not call these methods.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-14 11:58:00 +01:00
parent b3d7108574
commit 5dba8137c3

11
Main.cs
View File

@@ -1418,14 +1418,9 @@ namespace KCM
structureData.Unpack(building);
Main.helper.Log($"[ProcessBuilding] Unpack done");
p.AddBuilding(building);
Main.helper.Log($"[ProcessBuilding] AddBuilding done");
World.inst.PlaceFromLoad(building);
Main.helper.Log($"[ProcessBuilding] PlaceFromLoad done");
structureData.UnpackStage2(building);
Main.helper.Log($"[ProcessBuilding] UnpackStage2 done");
// NOTE: AddBuilding, PlaceFromLoad and UnpackStage2 are called by the original
// PlayerSaveData.Unpack method after ProcessBuilding returns
Main.helper.Log($"[ProcessBuilding] Returning building to Unpack");
bool isKeep = building.GetComponent<Keep>() != null && building.TeamID() == p.PlayerLandmassOwner.teamId;
if (isKeep)