Fix modsuits and defibs (#93373)

## About The Pull Request

Fixes #93359

Caused by #93165

Inventory screen elements were no longer considered reachable, which
broke mousedrop handing on objects that check "is dragging into
inventory slot"

I don't know the best way to fix this yet but I figured the next best
thing would be to make all of these use the `drag_pickup` element, which
skips this reach-ability check

Thus I refactored it slightly to accommodate for items which should
contextually not be drag-pick-up-abble and bam, works like a charm

## Changelog

🆑 Melbert
fix: Dragging defibs and modsuits off your back works again
/🆑

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
This commit is contained in:
MrMelbert
2025-10-11 18:17:23 -04:00
committed by GitHub
co-authored by ArcaneMusic Xander3359
parent 4bdce87fee
commit da10322dc1
16 changed files with 73 additions and 130 deletions
-11
View File
@@ -72,17 +72,6 @@
if(!icon_state)
item_flags |= ABSTRACT
/obj/item/clothing/mouse_drop_dragged(atom/over_object, mob/user, src_location, over_location, params)
var/mob/M = user
if(ismecha(M.loc)) // stops inventory actions in a mech
return
if(loc == M && istype(over_object, /atom/movable/screen/inventory/hand))
var/atom/movable/screen/inventory/hand/H = over_object
if(M.putItemFromInventoryInHandIfPossible(src, H.held_index))
add_fingerprint(user)
/obj/item/food/clothing
name = "temporary moth clothing snack item"
desc = "If you're reading this it means I messed up. This is related to moths eating clothes and I didn't know a better way to do it than making a new food object. <--- stinky idiot wrote this"
+4 -6
View File
@@ -166,12 +166,10 @@
return ..()
attacking_item.forceMove(src)
/obj/item/clothing/shoes/sneakers/orange/allow_attack_hand_drop(mob/user)
if(ishuman(user))
var/mob/living/carbon/human/C = user
if(C.shoes == src && attached_cuffs)
to_chat(user, span_warning("You need help taking these off!"))
return FALSE
/obj/item/clothing/shoes/sneakers/orange/can_mob_unequip(mob/user)
if(user.get_item_by_slot(slot_flags) == src && attached_cuffs)
to_chat(user, span_warning("You need help taking these off!"))
return FALSE
return ..()
/obj/item/clothing/shoes/sneakers/orange/mouse_drop_dragged(atom/over_object, mob/user)