mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
The big tooltype_act de-cargo-cult-ing (#95408)
## About The Pull Request Removes a lot of cargo cult copypasta with `default_deconstruction_screwdriver`, `default_deconstruction_crowbar`, and to a lesser extent `default_pry_open` and `default_change_direction_wrench` ALL you gotta do now if you want your machine to have an openable panel or be deconstructible with a crowbar is this ```dm /obj/machinery/dish_drive/screwdriver_act(mob/living/user, obj/item/tool) return default_deconstruction_screwdriver(user, tool) /obj/machinery/dish_drive/crowbar_act(mob/living/user, obj/item/tool) return default_deconstruction_crowbar(user, tool) ``` `default_deconstruction_screwdriver` no longer directly sets `icon_state`, requiring the user pass in the open and closed icon states. Now, it just calls `update_appearance`, and everything that once passed the icon state now uses `base_icon_state` and `update_icon_state`. ## Why It's Good For The Game Many of these procs were terribly overcomplicated and difficult to work with for what should be a relatively simple action Streamlining it makes it easier for coders to understand and work with ## Changelog 🆑 Melbert refactor: A majority of machines had their screwdriver/crowbar/wrench interactions rewritten, report any oddities like being unable to open a machine's panel or deconstruct a machine /🆑
This commit is contained in:
@@ -47,14 +47,14 @@
|
||||
setup_particles()
|
||||
|
||||
/obj/machinery/byteforge/screwdriver_act(mob/living/user, obj/item/screwdriver)
|
||||
. = ITEM_INTERACT_FAILURE
|
||||
if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", base_icon_state, screwdriver))
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
return default_deconstruction_screwdriver(user, screwdriver)
|
||||
|
||||
/obj/machinery/byteforge/crowbar_act(mob/living/user, obj/item/crowbar)
|
||||
. = ITEM_INTERACT_FAILURE
|
||||
if(default_deconstruction_crowbar(crowbar))
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
return default_deconstruction_crowbar(user, crowbar)
|
||||
|
||||
/obj/machinery/byteforge/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = panel_open ? "[base_icon_state]_panel" : base_icon_state
|
||||
|
||||
/// Does some sparks after it's done
|
||||
/obj/machinery/byteforge/proc/flash(atom/movable/thing)
|
||||
@@ -93,4 +93,3 @@
|
||||
flicker()
|
||||
|
||||
addtimer(CALLBACK(src, PROC_REF(spawn_cache), cache), 1 SECONDS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user