Tool behaviors port (#21663)

For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.

This is all back-end code, no new features or functionality from this.
This commit is contained in:
Batrachophreno
2026-01-27 08:44:49 +00:00
committed by GitHub
parent ee31799d4a
commit 5277251959
362 changed files with 1480 additions and 1108 deletions
@@ -283,7 +283,7 @@
if(istype(attacking_item, /obj/item/device/paicard))
try_install_component(user, attacking_item)
return TRUE
if(attacking_item.iswrench())
if(attacking_item.tool_behaviour == TOOL_WRENCH)
var/list/components = get_all_components()
if(components.len)
to_chat(user, SPAN_WARNING("You have to remove all the components from \the [src] before disassembling it."))
@@ -294,7 +294,7 @@
user.visible_message(SPAN_NOTICE("\The [user] disassembles \the [src]."), SPAN_NOTICE("You disassemble \the [src]."), SPAN_NOTICE("You hear a ratcheting noise."))
qdel(src)
return TRUE
if(attacking_item.iswelder())
if(attacking_item.tool_behaviour == TOOL_WELDER)
var/obj/item/weldingtool/WT = attacking_item
if(!WT.isOn())
to_chat(user, SPAN_WARNING("\The [attacking_item] is off."))
@@ -312,7 +312,7 @@
update_icon()
return TRUE
if(attacking_item.isscrewdriver())
if(attacking_item.tool_behaviour == TOOL_SCREWDRIVER)
var/list/all_components = get_all_components()
if(!all_components.len)
to_chat(user, SPAN_WARNING("This device doesn't have any components installed."))