private static MovableBridgeAIData StripCustomAI(PrefabInfo prefab) { if (prefab is BuildingInfo buildingInfo && buildingInfo.m_buildingAI is MovableBridgeAI customAI) { if (prefab.editorCategory != "MovableBridge") { throw new Exception("Missing 'MovableBridge' editorCategory!"); } PlayerBuildingAI vanillaAI = buildingInfo.gameObject.AddComponent <PlayerBuildingAI>(); vanillaAI.CopyFrom(customAI); var data = new MovableBridgeAIData(); data.CopyFrom(customAI); UnityEngine.Object.DestroyImmediate(customAI); buildingInfo.m_buildingAI = vanillaAI; vanillaAI.m_info = buildingInfo; UnityEngine.Debug.Log("Stripped " + data.ToString()); return(data); }