diff --git a/code/modules/smithing/machinery/casting_basin.dm b/code/modules/smithing/machinery/casting_basin.dm index a9a155b02cb..79decfff418 100644 --- a/code/modules/smithing/machinery/casting_basin.dm +++ b/code/modules/smithing/machinery/casting_basin.dm @@ -94,6 +94,16 @@ . = ..() update_icon(UPDATE_OVERLAYS) +/obj/machinery/smithing/casting_basin/Destroy() + if(cast) + cast.forceMove(src.loc) + if(produced_item) + produced_item.forceMove(src.loc) + if(linked_crucible) + linked_crucible.linked_machines -= src + linked_crucible = null + . = ..() + /obj/machinery/smithing/casting_basin/multitool_act(mob/living/user, obj/item/I) if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return @@ -274,9 +284,3 @@ // Clean up temps qdel(temp_product) return FINISH_ATTACK - -/obj/machinery/smithing/casting_basin/Destroy() - if(linked_crucible) - linked_crucible.linked_machines -= src - linked_crucible = null - return ..() diff --git a/code/modules/smithing/machinery/kinetic_assembler.dm b/code/modules/smithing/machinery/kinetic_assembler.dm index 851deb05ab2..8d413a8eb97 100644 --- a/code/modules/smithing/machinery/kinetic_assembler.dm +++ b/code/modules/smithing/machinery/kinetic_assembler.dm @@ -38,6 +38,15 @@ batched_item_types = typecacheof(batched_item_types) RefreshParts() +/obj/machinery/smithing/kinetic_assembler/Destroy() + if(primary) + primary.forceMove(src.loc) + if(secondary) + secondary.forceMove(src.loc) + if(trim) + trim.forceMove(src.loc) + . = ..() + /obj/machinery/smithing/kinetic_assembler/examine(mob/user) . = ..() if(primary || secondary || trim) diff --git a/code/modules/smithing/smith_machinery.dm b/code/modules/smithing/smith_machinery.dm index b3f417b4908..0b2f6c27ed5 100644 --- a/code/modules/smithing/smith_machinery.dm +++ b/code/modules/smithing/smith_machinery.dm @@ -40,6 +40,11 @@ operating = FALSE update_icon(UPDATE_ICON_STATE) +/obj/machinery/smithing/Destroy() + if(working_component) + working_component.forceMove(src.loc) + . = ..() + /obj/machinery/smithing/item_interaction(mob/living/user, obj/item/used, list/modifiers) if(istype(used, /obj/item/grab)) var/obj/item/grab/G = used