/obj/machinery/pipedispenser name = "pipe dispenser" icon = 'icons/obj/stationobjs.dmi' icon_state = "pipe_d" density = 1 anchored = 1 var/wait = 0 /obj/machinery/pipedispenser/attack_paw(mob/user) return src.attack_hand(user) /obj/machinery/pipedispenser/attack_hand(mob/user) if(..()) return 1 var/dat = {" Regular pipes:
Pipe
Bent Pipe
Manifold
4-Way Manifold
Manual Valve
Digital Valve
Devices:
Connector
Vent
Gas Pump
Passive Gate
Volume Pump
Scrubber
Meter
Gas Filter
Gas Mixer
Heat exchange:
Pipe
Bent Pipe
Manifold
4-Way Manifold
Junction
Heat Exchanger
"} user << browse("[src][dat]", "window=pipedispenser") onclose(user, "pipedispenser") return /obj/machinery/pipedispenser/Topic(href, href_list) if(..()) return 1 if(!anchored|| !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=pipedispenser") return 1 usr.set_machine(src) src.add_fingerprint(usr) if(href_list["make"]) if(!wait) var/p_type = text2path(href_list["make"]) var/p_dir = text2num(href_list["dir"]) var/obj/item/pipe/P = new (src.loc, pipe_type=p_type, dir=p_dir) P.add_fingerprint(usr) wait = 1 spawn(10) wait = 0 if(href_list["makemeter"]) if(!wait) new /obj/item/pipe_meter(src.loc) wait = 1 spawn(15) wait = 0 return /obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) add_fingerprint(user) if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter)) usr << "You put [W] back into [src]." if(!user.drop_item()) return qdel(W) return else if (istype(W, /obj/item/weapon/wrench)) if (!anchored && !isinspace()) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "You begin to fasten \the [src] to the floor..." if (do_after(user, 40/W.toolspeed, target = src)) add_fingerprint(user) user.visible_message( \ "[user] fastens \the [src].", \ "You fasten \the [src]. Now it can dispense pipes.", \ "You hear ratchet.") anchored = 1 stat &= MAINT if (usr.machine==src) usr << browse(null, "window=pipedispenser") else if(anchored) playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) user << "You begin to unfasten \the [src] from the floor..." if (do_after(user, 20/W.toolspeed, target = src)) add_fingerprint(user) user.visible_message( \ "[user] unfastens \the [src].", \ "You unfasten \the [src]. Now it can be pulled somewhere else.", \ "You hear ratchet.") anchored = 0 stat |= ~MAINT power_change() else return ..() /obj/machinery/pipedispenser/disposal name = "disposal pipe dispenser" icon = 'icons/obj/stationobjs.dmi' icon_state = "pipe_d" density = 1 anchored = 1 /* //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 and transit tubes into it /obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr) if(!usr.canmove || usr.stat || usr.restrained()) return if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) return if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1 ) return if (pipe.anchored) return qdel(pipe) /obj/machinery/pipedispenser/disposal/attack_hand(mob/user) if(..()) return 1 var/dat = {"Disposal Pipes

Pipe
Bent Pipe
Junction
Y-Junction
Trunk
Bin
Outlet
Chute
Sort Junction
"} user << browse("[src][dat]", "window=pipedispenser") return /obj/machinery/pipedispenser/disposal/Topic(href, href_list) if(..()) return 1 usr.set_machine(src) src.add_fingerprint(usr) if(href_list["dmake"]) if(!wait) var/p_type = text2num(href_list["dmake"]) var/obj/structure/disposalconstruct/C = new (src.loc,p_type) if(!C.can_place()) usr << "There's not enough room to build that here!" qdel(C) return C.add_fingerprint(usr) C.update_icon() wait = 1 spawn(15) wait = 0 return //transit tube dispenser //inherit disposal for the dragging proc /obj/machinery/pipedispenser/disposal/transit_tube name = "transit tube dispenser" icon = 'icons/obj/stationobjs.dmi' icon_state = "pipe_d" density = 1 anchored = 1 /obj/machinery/pipedispenser/disposal/transit_tube/attack_hand(mob/user) if(..()) return 1 var/dat = {"Transit Tubes:
Straight Tube
Straight Tube with Crossing
Curved Tube
Diagonal Tube
Junction
Station Equipment:
Through Tube Station
Terminus Tube Station
Tube Blocker
Transit Tube Pod
"} user << browse("[src][dat]", "window=pipedispenser") return /obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list) if(..()) return 1 usr.set_machine(src) src.add_fingerprint(usr) if(!wait) if(href_list["tube"]) var/tube_type = text2num(href_list["tube"]) if(tube_type <= 4) var/obj/structure/c_transit_tube/C = new/obj/structure/c_transit_tube(src.loc) switch(tube_type) if(0) C.icon_state = "E-W" if(1) C.icon_state = "E-W-Pass" if(2) C.icon_state = "S-NE" if(3) C.icon_state = "NE-SW" if(4) C.icon_state = "W-NE-SE" C.add_fingerprint(usr) else switch(tube_type) if(5) var/obj/structure/c_transit_tube/station/C = new/obj/structure/c_transit_tube/station(src.loc) C.add_fingerprint(usr) if(6) var/obj/structure/c_transit_tube/station/reverse/C = new/obj/structure/c_transit_tube/station/reverse(src.loc) C.add_fingerprint(usr) if(7) var/obj/structure/c_transit_tube/station/block/C = new/obj/structure/c_transit_tube/station/block(src.loc) C.add_fingerprint(usr) if(8) var/obj/structure/c_transit_tube_pod/C = new/obj/structure/c_transit_tube_pod(src.loc) C.add_fingerprint(usr) wait = 1 spawn(15) wait = 0 return