From 6c2527e695dcb774e4cba482796194250b301152 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Thu, 11 Sep 2025 22:32:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 198144 -> 198144 bytes .../Morphable/Building_Morphable.cs | 37 ++++++------ .../ArachnaeSwarm/Morphable/CompMorphable.cs | 54 ++++++++++++------ 3 files changed, 58 insertions(+), 33 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 5092c734d5b401fbf03270f744d53b55285070be..306aac20217d59fe803452918f9da12919c6b3f9 100644 GIT binary patch delta 17272 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 GwEr&@oDP@( delta 17214 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 PI storedPawn; + public CompProperties_Morphable Props => (CompProperties_Morphable)props; + public void SetStoredPawn(Pawn pawn) { this.storedPawn = pawn; @@ -19,7 +21,7 @@ namespace ArachnaeSwarm public override void PostExposeData() { base.PostExposeData(); - Scribe_References.Look(ref storedPawn, "storedPawn", false); + Scribe_Deep.Look(ref storedPawn, "storedPawn", false); } public override IEnumerable CompGetGizmosExtra() @@ -36,44 +38,62 @@ namespace ArachnaeSwarm } } - private void TransformBackToPawn() + public void TransformBackToPawn() { + if (storedPawn == null || !this.parent.Spawned) return; + Building building = (Building)this.parent; Map map = building.Map; - // 同步燃料到食物 + // 获取建筑和相关组件的引用 var refuelableComp = building.GetComp(); var buildingMorphable = building as Building_Morphable; - var needs = storedPawn.needs; - if (refuelableComp != null && needs?.food != null) + // 在移除建筑之前,获取并缓存所有必要的数据 + float cachedFuel = 0f; + float cachedFuelCapacity = 1f; // Avoid division by zero + if (refuelableComp != null) { - needs.food.CurLevelPercentage = refuelableComp.Fuel / refuelableComp.Props.fuelCapacity; + cachedFuel = refuelableComp.Fuel; + cachedFuelCapacity = refuelableComp.Props.fuelCapacity; } - if (buildingMorphable != null && needs?.rest != null) + + float cachedVirtualRest = 0f; + float cachedVirtualRestMax = 1f; // Avoid division by zero + if (buildingMorphable != null) { - needs.rest.CurLevelPercentage = buildingMorphable.virtualRest / buildingMorphable.VirtualRestMax; - } - - // 如果是因为燃料耗尽而被弹出,清空Pawn的食物需求 - if(wasEjectedForFuel && needs?.food != null) - { - needs.food.CurLevel = 0; + cachedVirtualRest = buildingMorphable.virtualRest; + cachedVirtualRestMax = buildingMorphable.VirtualRestMax; } + // 清理Pawn引用,防止在DeSpawn过程中触发循环 + Pawn pawnToSpawn = storedPawn; + this.storedPawn = null; + // 移除建筑 building.DeSpawn(DestroyMode.Vanish); // 重新生成Pawn - GenSpawn.Spawn(storedPawn, building.Position, map, WipeMode.Vanish); + GenSpawn.Spawn(pawnToSpawn, building.Position, map, WipeMode.Vanish); // 重新初始化Pawn在地图上所需的组件 - PawnComponentsUtility.AddComponentsForSpawn(storedPawn); + PawnComponentsUtility.AddComponentsForSpawn(pawnToSpawn); + // 同步燃料到食物 (使用缓存的值) + var needs = pawnToSpawn.needs; + if (needs?.food != null) + { + needs.food.CurLevelPercentage = cachedFuel / cachedFuelCapacity; + } + if (needs?.rest != null) + { + needs.rest.CurLevelPercentage = cachedVirtualRest / cachedVirtualRestMax; + } + // 选中Pawn if (Find.Selector.IsSelected(building)) { - Find.Selector.Select(storedPawn); + Find.Selector.Select(pawnToSpawn); } } }