/obj/machinery/pipedispenser
name = "Pipe Dispenser"
icon = 'stationobjs.dmi'
icon_state = "pipe_d"
density = 1
anchored = 1
var/unwrenched = 0
var/wait = 0
/obj/machinery/pipedispenser/attack_paw(user as mob)
return src.attack_hand(user)
/obj/machinery/pipedispenser/attack_hand(user as mob)
if(..())
return
var/dat = {"
Regular pipes:
Pipe
Bent Pipe
Manifold
Manual Valve
Devices:
Connector
Unary Vent
Gas Pump
Scrubber
Meter
Gas Filter
Gas Mixer
Heat exchange:
Pipe
Bent Pipe
Junction
Insulated pipes:
Pipe
Bent Pipe
"}
user << browse("
[src][dat]", "window=pipedispenser")
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
usr.machine = src
src.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)
P.update()
wait = 1
spawn(10)
wait = 0
if(href_list["makemeter"])
if(!wait)
new /obj/item/pipe_meter(/*usr.loc*/ src.loc)
wait = 1
spawn(15)
wait = 0
return
/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter))
usr << "\blue You put [W] back to [src]."
del(W)
return
else if (istype(W, /obj/item/weapon/wrench))
if (unwrenched==0)
playsound(src.loc, 'Ratchet.ogg', 50, 1)
user << "\blue You begin to unfasten \the [src] from the floor..."
if (do_after(user, 40))
user.visible_message( \
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src]. Now it can be pulled somewhere else.", \
"You hear ratchet.")
src.anchored = 0
src.stat |= MAINT
src.unwrenched = 1
if (usr.machine==src)
usr << browse(null, "window=pipedispenser")
else /*if (unwrenched==1)*/
playsound(src.loc, 'Ratchet.ogg', 50, 1)
user << "\blue You begin to fasten \the [src] to the floor..."
if (do_after(user, 20))
user.visible_message( \
"[user] fastens \the [src].", \
"\blue You have fastened \the [src]. Now it can dispense pipes.", \
"You hear ratchet.")
src.anchored = 1
src.stat &= ~MAINT
src.unwrenched = 0
power_change()
else
return ..()
/obj/machinery/pipedispenser/disposal
name = "Disposal Pipe Dispenser"
icon = 'stationobjs.dmi'
icon_state = "pipe_d"
density = 1
anchored = 1.0
/*
//Allow you to push disposal pipes into it (for those with density 1)
/obj/machinery/pipedispenser/disposal/HasEntered(var/obj/structure/disposalconstruct/pipe as obj)
if(istype(pipe) && !pipe.anchored)
del(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())
return
if (!istype(pipe) || get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 )
return
if (pipe.anchored)
return
del(pipe)
/obj/machinery/pipedispenser/disposal/attack_hand(user as mob)
if(..())
return
var/dat = {"Disposal Pipes
Pipe
Bent Pipe
Junction
Y-Junction
Trunk
Bin
Outlet
Chute
"}
user << browse("[src][dat]", "window=pipedispenser")
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.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.update()
wait = 1
spawn(15)
wait = 0
return