From 04ec014ea49c052d5c7b64095d2a4053f65c6753 Mon Sep 17 00:00:00 2001 From: FalseIncarnate Date: Wed, 19 Jul 2017 00:06:17 -0400 Subject: [PATCH] Plumbing Update Sinks, Toilets, and Urinals can now be unanchored and moved with a wrench. Standard sinks and toilets can also be rotated when unanchored by hitting them with a wrench again. - Urinals and kitchen sinks cannot be rotated because they looked horrible in other directional states. - I removed the directional states from them because we don't use them and MAN were they bad. When re-anchoring a sink or urinal, it will automagically offset itself to match its direction. This means sinks will appear against walls (or at least the edge of the tile). While unanchored, sinks cannot be used to wash hands or objects. Toilets can still have things hidden in their cistern while unanchored, however. At this time, showers cannot be moved and there is no way to obtain new fixtures. I'll be adding that later in this PR. --- code/game/objects/structures/watercloset.dm | 166 ++++++++++++++++++-- icons/obj/watercloset.dmi | Bin 12615 -> 13089 bytes 2 files changed, 153 insertions(+), 13 deletions(-) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index d3cc48d46bf..5223b438404 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -50,9 +50,61 @@ /obj/structure/toilet/update_icon() icon_state = "toilet[open][cistern]" + if(!anchored) + pixel_x = 0 + pixel_y = 0 + layer = OBJ_LAYER + else + if(dir == SOUTH) + pixel_x = 0 + pixel_y = 8 + if(dir == NORTH) + pixel_x = 0 + pixel_y = -8 + layer = FLY_LAYER /obj/structure/toilet/attackby(obj/item/I, mob/living/user, params) + if(iswrench(I)) + if(anchored) + var/response = "Disconnect" + if(cistern) + response = alert(user, "Do you want to stash [I] or disconnect [src]?", "Wrench", "Stash", "Disconnect", "Cancel") + if(response == "Stash") + stash_goods(I, user) + else if(response == "Disconnect") + user.visible_message("[user] begins disconnecting [src]...", "You begin disconnecting [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || !anchored) + return + user.visible_message("[user] disconnected [src]!", "You disconnected [src]!") + anchored = 0 + return + else + var/response = "Connect" + if(cistern) + response = alert(user, "Do you want to stash [I], rotate / connect [src]?", "Wrench", "Stash", "Rotate or Connect", "Cancel") + if(response == "Stash") + stash_goods(I, user) + return + if(response == "Cancel") + return + response = alert(user, "Do you want to rotate or connect [src]?", "Wrench", "Rotate", "Connect", "Cancel") + if(response == "Rotate") + var/list/choices = list("North" = NORTH, "East" = EAST, "South" = SOUTH, "West" = WEST) + var/selected = input(user,"Select a direction for the connector.", "Connector Direction") in choices + dir = choices[selected] + update_icon() //is this necessary? probably not + else if(response == "Connect") + user.visible_message("[user] is connecting [src].", "You are connecting [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || anchored) + return + user.visible_message("[user] connected [src]!", "You connected [src]!") + anchored = 1 + update_icon() + return + if(istype(I, /obj/item/weapon/crowbar)) to_chat(user, "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...") playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) @@ -106,20 +158,25 @@ to_chat(user, "You need a tighter grip!") if(cistern) - if(I.w_class > WEIGHT_CLASS_NORMAL) - to_chat(user, "[I] does not fit!") - return - if(w_items + I.w_class > WEIGHT_CLASS_HUGE) - to_chat(user, "The cistern is full!") - return - if(!user.drop_item()) - to_chat(user, "\The [I] is stuck to your hand, you cannot put it in the cistern!") - return - I.loc = src - w_items += I.w_class - to_chat(user, "You carefully place [I] into the cistern.") + stash_goods(I, user) return +/obj/structure/toilet/proc/stash_goods(obj/item/I, mob/user) + if(!I) + return + if(I.w_class > WEIGHT_CLASS_NORMAL) + to_chat(user, "[I] does not fit!") + return + if(w_items + I.w_class > WEIGHT_CLASS_HUGE) + to_chat(user, "The cistern is full!") + return + if(!user.drop_item()) + to_chat(user, "\The [I] is stuck to your hand, you cannot put it in the cistern!") + return + I.loc = src + w_items += I.w_class + to_chat(user, "You carefully place [I] into the cistern.") + /obj/structure/toilet/secret var/secret_type = null @@ -141,6 +198,27 @@ /obj/structure/urinal/attackby(obj/item/I, mob/user, params) + if(iswrench(I)) + if(anchored) + user.visible_message("[user] begins disconnecting [src]...", "You begin to disconnect [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || !anchored) + return + user.visible_message("[user] disconnected [src]!", "You disconnected [src]!") + anchored = 0 + pixel_x = 0 + pixel_y = 0 + else + user.visible_message("[user] begins connecting [src]...", "You begin to connect [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || anchored) + return + user.visible_message("[user] connected [src]!", "You connected [src]!") + anchored = 1 + pixel_x = 0 + pixel_y = 32 + return + if(istype(I, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = I if(!G.confirm()) @@ -398,7 +476,9 @@ return if(!Adjacent(user)) return - + if(!anchored) + to_chat(user, "This [src] isn't connected, wrench it into position first!") + return if(ishuman(user)) var/mob/living/carbon/human/H = user var/obj/item/organ/external/temp = H.bodyparts_by_name["r_hand"] @@ -445,6 +525,45 @@ if(!(istype(O))) return + if(iswrench(O) && !istype(src, /obj/structure/sink/puddle)) //puddles laugh at your attempt to disconnect them. you can't remove a puddle from the ground with a wrench! + var/obj/item/weapon/wrench/W = O + if(anchored) + var/response = alert(user, "Would you like to wash [W] or disconnect [src]?", "Wrench", "Wash", "Disconnect") + if(response == "Disconnect") + user.visible_message("[user] is disconnecting [src].", "You are disconnecting [src]...") + if(do_after(user, 40 * W.toolspeed, target = src)) + if(!loc || !anchored) + return + user.visible_message("[user] disconnected [src]!", "You disconnected [src]!") + anchored = 0 + update_icon() + return + else if(response == "Cancel") + return + else + var/response + if(istype(src, /obj/structure/sink/kitchen)) + response = "Connect" //Kitchen sinks can't be rotated because they only have one directional state (SOUTH) + else + response = alert(user, "Would you like to rotate or connect [src]?", "Wrench", "Rotate", "Connect", "Cancel") + if(response == "Connect") + user.visible_message("[user] is connecting [src].", "You are connecting [src]...") + if(do_after(user, 40 * W.toolspeed, target = src)) + if(!loc || anchored) + return + user.visible_message("[user] connected [src]!", "You connected [src]!") + anchored = 1 + update_icon() + else if(response == "Rotate") + var/list/choices = list("North" = NORTH, "East" = EAST, "South" = SOUTH, "West" = WEST) + var/selected = input(user,"Select a direction for the connector.", "Connector Direction") in choices + dir = choices[selected] + update_icon() //is this necessary? probably not + return + + if(!anchored) + to_chat(user, "This [src] isn't connected, wrench it into position first!") + return busy = 1 var/wateract = 0 @@ -453,6 +572,27 @@ if(wateract) O.water_act(20,310.15,src) +/obj/structure/sink/update_icon() + ..() + if(!anchored) + pixel_x = 0 + pixel_y = 0 + else + if(istype(src, /obj/structure/sink/puddle)) + return + if(istype(src, /obj/structure/sink/kitchen)) + pixel_x = 0 + pixel_y = 28 + return + else //normal sinks + if(dir == NORTH || dir == SOUTH) + pixel_x = 0 + pixel_y = (dir == NORTH) ? -30 : 30 + else + pixel_x = (dir == EAST) ? 12 : -12 + pixel_y = 0 + + /obj/structure/sink/kitchen name = "kitchen sink" icon_state = "sink_alt" diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index 61ea7ad3aac04a9d2efa7a82725d0ac2ec3630a5..f1bd3ce0e99fa02dd7cf10966b6c71a8a35ea765 100644 GIT binary patch literal 13089 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 literal 12615 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