From 7afed12a58d0aa91c6ffaf8c8185bd5f6ab5c513 Mon Sep 17 00:00:00 2001 From: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Date: Thu, 7 Nov 2024 09:39:26 +0530 Subject: [PATCH] Fixes RHD storage interaction (#87679) ## About The Pull Request - Fixes #87568 Not just for RLD but for RCD, RPLD & RTD. They don't touch storage atoms ## Changelog :cl: fix: RLD won't try to put lights on storage objects like bags & such /:cl: --- code/game/objects/items/rcd/RCD.dm | 3 +++ code/game/objects/items/rcd/RHD.dm | 2 ++ code/game/objects/items/rcd/RLD.dm | 11 +++++++++++ code/game/objects/items/rcd/RPLD.dm | 2 ++ code/game/objects/items/rcd/RTD.dm | 8 ++++++-- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/rcd/RCD.dm b/code/game/objects/items/rcd/RCD.dm index 961e0fff88a..b4697664e85 100644 --- a/code/game/objects/items/rcd/RCD.dm +++ b/code/game/objects/items/rcd/RCD.dm @@ -207,6 +207,9 @@ * * [mob][user]- the user building this structure */ /obj/item/construction/rcd/proc/rcd_create(atom/target, mob/user) + if(HAS_TRAIT(target, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + return NONE + var/list/rcd_results = target.rcd_vals(user, src) // does this atom allow for rcd actions? if(!rcd_results) // nope return NONE diff --git a/code/game/objects/items/rcd/RHD.dm b/code/game/objects/items/rcd/RHD.dm index 8007fac4dd4..ce9f211b694 100644 --- a/code/game/objects/items/rcd/RHD.dm +++ b/code/game/objects/items/rcd/RHD.dm @@ -91,6 +91,7 @@ /obj/item/construction/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) SHOULD_CALL_PARENT(TRUE) + if(istype(interacting_with, /obj/item/rcd_upgrade)) install_upgrade(interacting_with, user) return ITEM_INTERACT_SUCCESS @@ -100,6 +101,7 @@ /obj/item/construction/item_interaction(mob/living/user, obj/item/tool, list/modifiers) SHOULD_CALL_PARENT(TRUE) + if(istype(tool, /obj/item/rcd_upgrade)) install_upgrade(tool, user) return ITEM_INTERACT_SUCCESS diff --git a/code/game/objects/items/rcd/RLD.dm b/code/game/objects/items/rcd/RLD.dm index 2a99f535f42..953f02c72de 100644 --- a/code/game/objects/items/rcd/RLD.dm +++ b/code/game/objects/items/rcd/RLD.dm @@ -99,7 +99,18 @@ return . return try_lighting(interacting_with, user) +/** + * Try to place/remove a light or throw a glowstick + * Arguments + * + * * atom/interacting_with - the target atom to light or throw glowsticks at + * * mob/user - the player doing this action + */ /obj/item/construction/rld/proc/try_lighting(atom/interacting_with, mob/user) + PRIVATE_PROC(TRUE) + + if(HAS_TRAIT(interacting_with, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + return NONE var/turf/start = get_turf(src) switch(mode) diff --git a/code/game/objects/items/rcd/RPLD.dm b/code/game/objects/items/rcd/RPLD.dm index a41e86584af..7f733811122 100644 --- a/code/game/objects/items/rcd/RPLD.dm +++ b/code/game/objects/items/rcd/RPLD.dm @@ -247,6 +247,8 @@ . = ..() if(. & ITEM_INTERACT_ANY_BLOCKER) return . + if(HAS_TRAIT(interacting_with, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + return NONE for(var/category_name in plumbing_design_types) var/list/designs = plumbing_design_types[category_name] diff --git a/code/game/objects/items/rcd/RTD.dm b/code/game/objects/items/rcd/RTD.dm index d26876ef320..ad8c44579a7 100644 --- a/code/game/objects/items/rcd/RTD.dm +++ b/code/game/objects/items/rcd/RTD.dm @@ -251,9 +251,13 @@ * * turf/open/floor/floor - the turf we are trying to put plating on * * mob/living/user - the mob trying to do the plating */ -/obj/item/construction/rtd/proc/try_tiling(turf/open/floor/floor, mob/living/user) - PROTECTED_PROC(TRUE) +/obj/item/construction/rtd/proc/try_tiling(atom/interacting_with, mob/living/user) + PRIVATE_PROC(TRUE) + if(HAS_TRAIT(interacting_with, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + return NONE + + var/turf/open/floor/floor = interacting_with if(!istype(floor)) return NONE