diff --git a/code/modules/wiremod/core/component_printer.dm b/code/modules/wiremod/core/component_printer.dm index 3bfdb519c9b..45f71ceb617 100644 --- a/code/modules/wiremod/core/component_printer.dm +++ b/code/modules/wiremod/core/component_printer.dm @@ -192,13 +192,22 @@ return data /obj/machinery/component_printer/attackby(obj/item/weapon, mob/living/user, params) - if(istype(weapon, /obj/item/integrated_circuit) && !user.combat_mode) - var/obj/item/integrated_circuit/circuit = weapon - circuit.linked_component_printer = WEAKREF(src) - circuit.update_static_data_for_all_viewers() - balloon_alert(user, "successfully linked to the integrated circuit") - return - return ..() + if (user.combat_mode) + return ..() + + var/obj/item/integrated_circuit/circuit + if(istype(weapon, /obj/item/integrated_circuit)) + circuit = weapon + else if (istype(weapon, /obj/item/circuit_component/module)) + var/obj/item/circuit_component/module/module = weapon + circuit = module.internal_circuit + if (isnull(circuit)) + return ..() + + circuit.linked_component_printer = WEAKREF(src) + circuit.update_static_data_for_all_viewers() + balloon_alert(user, "successfully linked to the integrated circuit") + /obj/machinery/component_printer/crowbar_act(mob/living/user, obj/item/tool) if(..())