From 5dba8137c3cd429581d76f6f53acf5fc378dcfff Mon Sep 17 00:00:00 2001 From: devbeni Date: Sun, 14 Dec 2025 11:58:00 +0100 Subject: [PATCH] Fix: Remove AddBuilding from ProcessBuildingHook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- Main.cs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/Main.cs b/Main.cs index 5b38bac..8e7db32 100644 --- a/Main.cs +++ b/Main.cs @@ -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() != null && building.TeamID() == p.PlayerLandmassOwner.teamId; if (isKeep)