diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 534d1a9a419..0d64e1718e8 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -101,13 +101,7 @@ if(charging) to_chat(user, "Remove the cell first!") return - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) - return - anchored = !anchored - if(anchored) - WRENCH_ANCHOR_MESSAGE - else - WRENCH_UNANCHOR_MESSAGE + default_unfasten_wrench(user, I, 0) /obj/machinery/cell_charger/proc/removecell() charging.update_icon() diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm index c4cc59cfa0c..f7aad9e1845 100644 --- a/code/game/machinery/computer/ai_core.dm +++ b/code/game/machinery/computer/ai_core.dm @@ -205,8 +205,6 @@ /obj/structure/AIcore/wrench_act(mob/living/user, obj/item/I) . = TRUE - if(!I.tool_use_check(user, 0)) - return default_unfasten_wrench(user, I, 20) /obj/structure/AIcore/update_icon_state() diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index ec64bbc5128..baf96d4111c 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -632,15 +632,7 @@ /obj/structure/computerframe/wrench_act(mob/living/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 2 SECONDS, volume = I.tool_volume)) - return - - if(anchored) - to_chat(user, "You unfasten the frame.") - anchored = FALSE - else - to_chat(user, "You wrench the frame into place.") - anchored = TRUE + default_unfasten_wrench(user, I, 2 SECONDS) /obj/structure/computerframe/crowbar_act(mob/living/user, obj/item/I) . = TRUE diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 750026ad908..21117233e45 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -47,15 +47,8 @@ GLOBAL_LIST_EMPTY(doppler_arrays) /obj/machinery/doppler_array/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) + if(!default_unfasten_wrench(user, I, 0)) return - if(!anchored && !isinspace()) - anchored = TRUE - WRENCH_ANCHOR_MESSAGE - else if(anchored) - anchored = FALSE - WRENCH_UNANCHOR_MESSAGE - power_change() update_icon(UPDATE_ICON_STATE) /obj/machinery/doppler_array/attack_hand(mob/user) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index c1cd7049fd0..0603664c3f3 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -131,6 +131,14 @@ stat |= NOPOWER return old_stat != stat //performance saving for machines that use power_change() to update icons! +/obj/machinery/proc/reregister_machine() + if(machine_powernet?.powernet_area != get_area(src)) + var/area/machine_area = get_area(src) + if(machine_area) + machine_powernet?.unregister_machine(src) + machine_powernet = machine_area.powernet + machine_powernet.register_machine(src) + /// Helper proc to change the machines power usage mode, automatically adjusts static power usage to maintain perfect parity /obj/machinery/proc/change_power_mode(use_type = IDLE_POWER_USE) if(isnull(use_type) || use_type == power_state || !machine_powernet || !power_channel) //if there is no powernet/channel, just end it here @@ -320,6 +328,7 @@ /obj/machinery/default_unfasten_wrench(mob/user, obj/item/I, time) . = ..() if(.) + reregister_machine() power_change() /obj/machinery/attackby(obj/item/O, mob/user, params) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index fc88f1f51ad..0d899321dec 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -97,13 +97,7 @@ if(charging) to_chat(user, "Remove the charging item first!") return - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) - return - anchored = !anchored - if(anchored) - WRENCH_ANCHOR_MESSAGE - else - WRENCH_UNANCHOR_MESSAGE + default_unfasten_wrench(user, I, 0) /obj/machinery/recharger/attack_hand(mob/user) if(issilicon(user)) diff --git a/code/game/machinery/snow_machine.dm b/code/game/machinery/snow_machine.dm index d55ccb6366b..b5c4be8434a 100644 --- a/code/game/machinery/snow_machine.dm +++ b/code/game/machinery/snow_machine.dm @@ -54,7 +54,7 @@ /obj/machinery/snow_machine/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) + if(!default_unfasten_wrench(user, I, 0)) return anchored = !anchored to_chat(user, "You [anchored ? "tighten" : "loosen"] [src]'s wheels.") diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index e7a90ce337f..9a798b8ef06 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -202,10 +202,7 @@ if(on) to_chat(user, "Turn it off first!") return - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) - return - anchored = !anchored - to_chat(user, "You [anchored ? "wrench" : "unwrench"] [src].") + default_unfasten_wrench(user, I, 4 SECONDS) /obj/machinery/atmospherics/portable/scrubber/huge/stationary name = "Stationary Air Scrubber" diff --git a/code/modules/food_and_drinks/drinks/bottler/bottler.dm b/code/modules/food_and_drinks/drinks/bottler/bottler.dm index 2e5e2ac8e3b..55150c6e769 100644 --- a/code/modules/food_and_drinks/drinks/bottler/bottler.dm +++ b/code/modules/food_and_drinks/drinks/bottler/bottler.dm @@ -86,13 +86,7 @@ /obj/machinery/bottler/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) - return - anchored = !anchored - if(anchored) - WRENCH_ANCHOR_MESSAGE - else - WRENCH_UNANCHOR_MESSAGE + default_unfasten_wrench(user, I, 0) /obj/machinery/bottler/proc/insert_item(obj/item/O, mob/user) if(!O || !user) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index fff98c5a86e..ea92ab36e5e 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -203,6 +203,4 @@ /obj/machinery/cooker/deepfryer/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.tool_use_check(user, 0)) - return default_unfasten_wrench(user, I, 30) diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 0b5b2fe16cf..d66fcbac0f2 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -263,7 +263,5 @@ /obj/machinery/icemachine/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.tool_use_check(user, 0)) - return default_unfasten_wrench(user, I, 30) diff --git a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm index 36f707765e6..fc4a4fe7859 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm @@ -129,12 +129,7 @@ if(operating) return - I.play_tool_sound(src) - if(anchored) - to_chat(user, "[src] can now be moved.") - else - to_chat(user, "[src] is now secured.") - anchored = !anchored + default_unfasten_wrench(user, I, 0) return TRUE /obj/machinery/kitchen_machine/proc/add_item(obj/item/I, mob/user) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index a4aa0fc0c61..bcfb364c33c 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -158,8 +158,6 @@ /obj/machinery/smartfridge/wrench_act(mob/living/user, obj/item/I) . = default_unfasten_wrench(user, I, time = 4 SECONDS) - if(.) - power_change() /obj/machinery/smartfridge/crowbar_act(mob/living/user, obj/item/I) . = default_deconstruction_crowbar(user, I) diff --git a/code/modules/hydroponics/hydroponics_tray.dm b/code/modules/hydroponics/hydroponics_tray.dm index f75d2a7a6f9..c284393cfbf 100644 --- a/code/modules/hydroponics/hydroponics_tray.dm +++ b/code/modules/hydroponics/hydroponics_tray.dm @@ -901,24 +901,7 @@ if(using_irrigation) to_chat(user, "Disconnect the hoses first!") return - - if(!anchored && !isinspace()) - user.visible_message("[user] begins to wrench [src] into place.", "You begin to wrench [src] in place...") - if(I.use_tool(src, user, 20, volume = I.tool_volume)) - if(anchored) - return - anchored = TRUE - user.visible_message("[user] wrenches [src] into place.", \ - "You wrench [src] in place.") - else if(anchored) - user.visible_message("[user] begins to unwrench [src].", \ - "You begin to unwrench [src]...") - if(I.use_tool(src, user, 20, volume = I.tool_volume)) - if(!anchored) - return - anchored = FALSE - user.visible_message("[user] unwrenches [src].", \ - "You unwrench [src].") + default_unfasten_wrench(user, I) /obj/machinery/hydroponics/attack_hand(mob/user) if(issilicon(user)) //How does AI know what plant is? diff --git a/code/modules/power/generators/thermo_electric_generator.dm b/code/modules/power/generators/thermo_electric_generator.dm index 9edacf5a153..e052cf96bdc 100644 --- a/code/modules/power/generators/thermo_electric_generator.dm +++ b/code/modules/power/generators/thermo_electric_generator.dm @@ -191,7 +191,7 @@ /obj/machinery/power/teg/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 0, volume = I.tool_volume)) + if(!default_unfasten_wrench(user, I, 0)) return anchored = !anchored if(!anchored) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 7829480846e..f1ea39e8b04 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -294,14 +294,7 @@ /obj/machinery/chem_dispenser/wrench_act(mob/user, obj/item/I) . = TRUE - if(!I.use_tool(src, user, 4 SECONDS, volume = I.tool_volume)) - return - if(anchored) - anchored = FALSE - WRENCH_UNANCHOR_MESSAGE - else if(!anchored) - anchored = TRUE - WRENCH_ANCHOR_MESSAGE + default_unfasten_wrench(user, I, 4 SECONDS) /obj/machinery/chem_dispenser/attack_ai(mob/user) return attack_hand(user) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 487a7b56a6a..3d5d5cdfdb2 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -148,9 +148,7 @@ /obj/machinery/chem_master/wrench_act(mob/user, obj/item/I) if(panel_open) return - if(default_unfasten_wrench(user, I, time = 4 SECONDS)) - power_change() - return TRUE + default_unfasten_wrench(user, I, 4 SECONDS) /obj/machinery/chem_master/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) if(..())