From aea13f75cdfd5737b3bc1fac5d6e8b304329a81f Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Mon, 20 Nov 2017 04:07:34 -0500 Subject: [PATCH] Allows rotating computer frames, fixes rotation on deconstruction, switches dropped materials to use drop_location() --- code/game/machinery/computer/_computer.dm | 7 +-- .../game/machinery/computer/buildandrepair.dm | 54 ++++++++++++------- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 77bb50e8c4..cab6c98536 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -111,15 +111,16 @@ if(!(flags_1 & NODECONSTRUCT_1)) if(circuit) //no circuit, no computer frame var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc) + A.dir = dir A.circuit = circuit A.anchored = TRUE if(stat & BROKEN) if(user) to_chat(user, "The broken glass falls out.") else - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) - new /obj/item/shard(src.loc) - new /obj/item/shard(src.loc) + playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) + new /obj/item/shard(drop_location()) + new /obj/item/shard(drop_location()) A.state = 3 A.icon_state = "3" else diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 58d29d0698..4e65cc6951 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -8,7 +8,7 @@ switch(state) if(0) if(istype(P, /obj/item/wrench)) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You start wrenching the frame into place...") if(do_after(user, 20*P.toolspeed, target = src)) to_chat(user, "You wrench the frame into place.") @@ -21,19 +21,19 @@ if(!WT.isOn()) to_chat(user, "[WT] must be on to complete this task!") return - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You start deconstructing the frame...") if(do_after(user, 20*P.toolspeed, target = src)) if(!src || !WT.isOn()) return to_chat(user, "You deconstruct the frame.") - var/obj/item/stack/sheet/metal/M = new (loc, 5) + var/obj/item/stack/sheet/metal/M = new (drop_location(), 5) M.add_fingerprint(user) qdel(src) return if(1) if(istype(P, /obj/item/wrench)) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You start to unfasten the frame...") if(do_after(user, 20*P.toolspeed, target = src)) to_chat(user, "You unfasten the frame.") @@ -43,7 +43,7 @@ if(istype(P, /obj/item/circuitboard/computer) && !circuit) if(!user.transferItemToLoc(P, null)) return - playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You place [P] inside the frame.") icon_state = "1" circuit = P @@ -54,13 +54,13 @@ to_chat(user, "This frame does not accept circuit boards of this type!") return if(istype(P, /obj/item/screwdriver) && circuit) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You screw [circuit] into place.") state = 2 icon_state = "2" return if(istype(P, /obj/item/crowbar) && circuit) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You remove [circuit].") state = 1 icon_state = "0" @@ -70,7 +70,7 @@ return if(2) if(istype(P, /obj/item/screwdriver) && circuit) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You unfasten the circuit board.") state = 1 icon_state = "1" @@ -78,7 +78,7 @@ if(istype(P, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = P if(C.get_amount() >= 5) - playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You start adding cables to the frame...") if(do_after(user, 20*P.toolspeed, target = src)) if(C.get_amount() >= 5 && state == 2) @@ -91,11 +91,11 @@ return if(3) if(istype(P, /obj/item/wirecutters)) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You remove the cables.") state = 2 icon_state = "2" - var/obj/item/stack/cable_coil/A = new (loc) + var/obj/item/stack/cable_coil/A = new (drop_location()) A.amount = 5 A.add_fingerprint(user) return @@ -106,7 +106,7 @@ to_chat(user, "You need two glass sheets to continue construction!") return else - playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1) + playsound(src, 'sound/items/deconstruct.ogg', 50, 1) to_chat(user, "You start to put in the glass panel...") if(do_after(user, 20, target = src)) if(G.get_amount() >= 2 && state == 3) @@ -117,17 +117,17 @@ return if(4) if(istype(P, /obj/item/crowbar)) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You remove the glass panel.") state = 3 icon_state = "3" - var/obj/item/stack/sheet/glass/G = new (loc, 2) + var/obj/item/stack/sheet/glass/G = new (drop_location(), 2) G.add_fingerprint(user) return if(istype(P, /obj/item/screwdriver)) - playsound(src.loc, P.usesound, 50, 1) + playsound(src, P.usesound, 50, 1) to_chat(user, "You connect the monitor.") - var/obj/B = new src.circuit.build_path (src.loc, circuit) + var/obj/B = new src.circuit.build_path (src, circuit) transfer_fingerprints_to(B) qdel(src) return @@ -138,8 +138,24 @@ /obj/structure/frame/computer/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(state == 4) - new /obj/item/shard(loc) - new /obj/item/shard(loc) + new /obj/item/shard(drop_location()) + new /obj/item/shard(drop_location()) if(state >= 3) +<<<<<<< HEAD new /obj/item/stack/cable_coil(loc , 5) - ..() \ No newline at end of file + ..() +======= + new /obj/item/stack/cable_coil(drop_location(), 5) + ..() + +/obj/structure/frame/computer/AltClick(mob/user) + ..() + if(!in_range(src, user) || !isliving(user) || user.incapacitated()) + return + + if(anchored) + to_chat(usr, "You must unwrench [src] before rotating it!") + return + + setDir(turn(dir, -90)) +>>>>>>> d89eb78... Allows rotating computer frames, fixes rotation on deconstruction, switches dropped materials to use drop_location() (#32877)