From e2d86c76de3c35c68842d72d21ba91cb041ead36 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sat, 30 Oct 2021 13:56:35 +0200 Subject: [PATCH] Storage Opening (#12640) --- code/_onclick/click.dm | 6 +++--- code/game/atoms.dm | 5 ++++- code/game/objects/items/weapons/storage/storage.dm | 8 +++++++- code/modules/clothing/clothing.dm | 8 ++++++++ html/changelogs/geeves-storage_opening.yml | 6 ++++++ 5 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 html/changelogs/geeves-storage_opening.yml diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index fe68af16cec..0fc30d2a9f5 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -236,11 +236,11 @@ /* Middle click - Only used for swapping hands */ /mob/proc/MiddleClickOn(var/atom/A) + if(A.handle_middle_mouse_click(src)) + return swap_hand() - return // In case of use break glass /* @@ -411,4 +411,4 @@ var/global/list/click_catchers /mob/verb/MouseSubstitute(params as command_text) set hidden = 1 set name = ".mouse" - LogMouseMacro(".mouse", params) \ No newline at end of file + LogMouseMacro(".mouse", params) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 4c0c1addeaf..1a2787cff7f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -595,7 +595,7 @@ if(!(H in mobs)) if(src.z == H.z && get_dist(src, H) <= range) H.intent_listen(src, message) - + /atom/proc/change_area(var/area/oldarea, var/area/newarea) change_area_name(oldarea.name, newarea.name) @@ -650,3 +650,6 @@ if(degrees) appearance_flags |= PIXEL_SCALE transform = M + +/atom/proc/handle_middle_mouse_click(var/mob/user) + return FALSE diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 4c60bf196e6..d2f232388a2 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -566,6 +566,12 @@ src.add_fingerprint(user) return +/obj/item/storage/handle_middle_mouse_click(var/mob/user) + if(Adjacent(user)) + open(user) + return TRUE + return FALSE + /obj/item/storage/verb/toggle_gathering_mode() set name = "Switch Gathering Method" set category = "Object" @@ -773,4 +779,4 @@ //return 2**(w_class-1) //1,2,4,8,16,... -#undef STORAGE_SPACE_CAP \ No newline at end of file +#undef STORAGE_SPACE_CAP diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6a5faf0e252..a2a544ffa5a 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -102,6 +102,14 @@ if(tint) user.handle_vision() +/obj/item/clothing/handle_middle_mouse_click(mob/user) + if(Adjacent(user)) + var/obj/item/clothing/accessory/storage/S = locate() in accessories + if(S?.hold) + S.hold.open(user) + return TRUE + return FALSE + /obj/item/clothing/proc/return_own_image() var/image/our_image if(icon_override) diff --git a/html/changelogs/geeves-storage_opening.yml b/html/changelogs/geeves-storage_opening.yml new file mode 100644 index 00000000000..e4f53ac3849 --- /dev/null +++ b/html/changelogs/geeves-storage_opening.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Middle Mouse Clicking a storage item on your person or adjacent to you will now open it." \ No newline at end of file