diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index 34f41e2a1b5..d7ac49381b9 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -7,9 +7,16 @@
var/unwrenched = 0
var/wait = 0
-/obj/machinery/pipedispenser/attack_hand(user as mob)
+/obj/machinery/pipedispenser/attack_hand(mob/user)
if(..())
- return
+ return 1
+
+ interact(user)
+
+/obj/machinery/pipedispenser/attack_ghost(mob/user)
+ interact(user)
+
+/obj/machinery/pipedispenser/interact(mob/user)
var/dat = {"
Regular pipes:
Pipe
@@ -65,21 +72,19 @@
popup.set_content(dat)
popup.open(0)
onclose(user, "pipedispenser")
- return
/obj/machinery/pipedispenser/Topic(href, href_list)
- if(..())
- return
- if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
- usr << browse(null, "window=pipedispenser")
- return
+ if(..() || unwrenched)
+ return 1
+
usr.set_machine(src)
- src.add_fingerprint(usr)
+ add_fingerprint(usr)
+
if(href_list["make"])
if(!wait)
var/p_type = text2num(href_list["make"])
var/p_dir = text2num(href_list["dir"])
- var/obj/item/pipe/P = new (/*usr.loc*/ src.loc, pipe_type=p_type, dir=p_dir)
+ var/obj/item/pipe/P = new (loc, pipe_type=p_type, dir=p_dir)
P.update()
P.add_fingerprint(usr)
wait = 1
@@ -87,50 +92,49 @@
wait = 0
if(href_list["makemeter"])
if(!wait)
- new /obj/item/pipe_meter(/*usr.loc*/ src.loc)
+ new /obj/item/pipe_meter(loc)
wait = 1
spawn(15)
wait = 0
if(href_list["makegsensor"])
if(!wait)
- new /obj/item/pipe_gsensor(/*usr.loc*/ src.loc)
+ new /obj/item/pipe_gsensor(loc)
wait = 1
spawn(15)
wait = 0
- return
/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob, params)
- src.add_fingerprint(usr)
+ add_fingerprint(usr)
if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor))
- to_chat(usr, "\blue You put [W] back to [src].")
+ to_chat(usr, "You put [W] back to [src].")
user.drop_item()
qdel(W)
return
else if(istype(W, /obj/item/weapon/wrench))
if(unwrenched==0)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- to_chat(user, "\blue You begin to unfasten \the [src] from the floor...")
+ playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ to_chat(user, "You begin to unfasten \the [src] from the floor...")
if(do_after(user, 40, target = src))
user.visible_message( \
"[user] unfastens \the [src].", \
- "\blue You have unfastened \the [src]. Now it can be pulled somewhere else.", \
+ "You have unfastened \the [src]. Now it can be pulled somewhere else.", \
"You hear ratchet.")
- src.anchored = 0
- src.stat |= MAINT
- src.unwrenched = 1
+ anchored = 0
+ stat |= MAINT
+ unwrenched = 1
if(usr.machine==src)
usr << browse(null, "window=pipedispenser")
else /*if(unwrenched==1)*/
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- to_chat(user, "\blue You begin to fasten \the [src] to the floor...")
+ playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ to_chat(user, "You begin to fasten \the [src] to the floor...")
if(do_after(user, 20, target = src))
user.visible_message( \
"[user] fastens \the [src].", \
- "\blue You have fastened \the [src]. Now it can dispense pipes.", \
+ "You have fastened \the [src]. Now it can dispense pipes.", \
"You hear ratchet.")
- src.anchored = 1
- src.stat &= ~MAINT
- src.unwrenched = 0
+ anchored = 1
+ stat &= ~MAINT
+ unwrenched = 0
power_change()
else
return ..()
@@ -143,21 +147,12 @@
density = 1
anchored = 1.0
-/*
-//Allow you to push disposal pipes into it (for those with density 1)
-/obj/machinery/pipedispenser/disposal/Crossed(var/obj/structure/disposalconstruct/pipe as obj)
- if(istype(pipe) && !pipe.anchored)
- qdel(pipe)
-
-Nah
-*/
-
//Allow you to drag-drop disposal pipes into it
-/obj/machinery/pipedispenser/disposal/MouseDrop_T(var/obj/structure/disposalconstruct/pipe as obj, mob/usr as mob)
- if(!usr.canmove || usr.stat || usr.restrained())
+/obj/machinery/pipedispenser/disposal/MouseDrop_T(var/obj/structure/disposalconstruct/pipe, mob/usr)
+ if(usr.incapacitated())
return
- if(!istype(pipe) || get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 )
+ if(!istype(pipe) || get_dist(usr, src) > 1 || get_dist(src, pipe) > 1 )
return
if(pipe.anchored)
@@ -165,10 +160,16 @@ Nah
qdel(pipe)
-/obj/machinery/pipedispenser/disposal/attack_hand(user as mob)
+/obj/machinery/pipedispenser/disposal/attack_hand(mob/user)
if(..())
return
-
+
+ interact(user)
+
+/obj/machinery/pipedispenser/disposal/attack_ghost(mob/user)
+ interact(user)
+
+/obj/machinery/pipedispenser/disposal/interact(mob/user)
var/dat = {"Disposal Pipes
Pipe
Bent Pipe
@@ -183,47 +184,39 @@ Nah
var/datum/browser/popup = new(user, "pipedispenser", name, 400, 400)
popup.set_content(dat)
popup.open()
- return
-
-// 0=straight, 1=bent, 2=junction-j1, 3=junction-j2, 4=junction-y, 5=trunk
-
/obj/machinery/pipedispenser/disposal/Topic(href, href_list)
- if(..())
- return
- usr.set_machine(src)
- src.add_fingerprint(usr)
- if(href_list["dmake"])
- if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
- usr << browse(null, "window=pipedispenser")
- return
- if(!wait)
- var/p_type = text2num(href_list["dmake"])
- var/obj/structure/disposalconstruct/C = new (src.loc)
- switch(p_type)
- if(0)
- C.ptype = 0
- if(1)
- C.ptype = 1
- if(2)
- C.ptype = 2
- if(3)
- C.ptype = 4
- if(4)
- C.ptype = 5
- if(5)
- C.ptype = 6
- C.density = 1
- if(6)
- C.ptype = 7
- C.density = 1
- if(7)
- C.ptype = 8
- C.density = 1
- C.add_fingerprint(usr)
- C.update()
- wait = 1
- spawn(15)
- wait = 0
- return
+ if(..() || unwrenched)
+ return 1
+ usr.set_machine(src)
+ add_fingerprint(usr)
+
+ if(!wait)
+ var/p_type = text2num(href_list["dmake"])
+ var/obj/structure/disposalconstruct/C = new (loc)
+ switch(p_type)
+ if(0)
+ C.ptype = 0
+ if(1)
+ C.ptype = 1
+ if(2)
+ C.ptype = 2
+ if(3)
+ C.ptype = 4
+ if(4)
+ C.ptype = 5
+ if(5)
+ C.ptype = 6
+ C.density = 1
+ if(6)
+ C.ptype = 7
+ C.density = 1
+ if(7)
+ C.ptype = 8
+ C.density = 1
+ C.add_fingerprint(usr)
+ C.update()
+ wait = 1
+ spawn(15)
+ wait = 0
\ No newline at end of file