/obj/machinery/pipedispenser name = "Pipe Dispenser" icon = 'icons/obj/stationobjs.dmi' icon_state = "pipe_d" density = TRUE anchored = TRUE var/unwrenched = 0 var/wait = 0 /obj/machinery/pipedispenser/attack_hand(mob/user) if(..()) return 1 interact(user) /obj/machinery/pipedispenser/attack_ghost(mob/user) interact(user) /obj/machinery/pipedispenser/interact(mob/user) var/dat = {" Regular pipes:
Pipe
Bent Pipe
Manifold
Manual Valve
Digital Valve
Pipe Cap
4-Way Manifold
Manual T-Valve
Digital T-Valve
Supply pipes:
Pipe
Bent Pipe
Manifold
Pipe Cap
4-Way Manifold
Scrubbers pipes:
Pipe
Bent Pipe
Manifold
Pipe Cap
4-Way Manifold
Devices:
Universal Pipe Adapter
Connector
Unary Vent
Gas Pump
Passive Gate
Volume Pump
Scrubber
Meter
Gas Sensor
Gas Filter
Gas Mixer
Air Injector
Dual-Port Vent Pump
Passive Vent
Heat exchange:
Pipe
Bent Pipe
Junction
Heat Exchanger
Insulated pipes:
Pipe
Bent Pipe
"} //What number the make points to is in the define # at the top of construction.dm in same folder //which for some reason couldn't just be left defined, so it could be used here, top kek var/datum/browser/popup = new(user, "pipedispenser", name, 400, 400) popup.set_content(dat) popup.open(0) onclose(user, "pipedispenser") /obj/machinery/pipedispenser/Topic(href, href_list) if(..() || unwrenched) return usr.set_machine(src) add_fingerprint(usr) if(world.time < wait + 4) return wait = world.time if(href_list["make"]) var/p_type = text2num(href_list["make"]) var/p_dir = text2num(href_list["dir"]) var/obj/item/pipe/P = new (loc, pipe_type=p_type, dir=p_dir) P.update() P.add_fingerprint(usr) if(href_list["makemeter"]) new /obj/item/pipe_meter(loc) if(href_list["makegsensor"]) new /obj/item/pipe_gsensor(loc) return TRUE /obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob, params) add_fingerprint(usr) if(istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter) || istype(W, /obj/item/pipe_gsensor)) to_chat(usr, "You put [W] back to [src].") user.drop_item() qdel(W) return else if(istype(W, /obj/item/wrench)) if(unwrenched==0) playsound(loc, W.usesound, 50, 1) to_chat(user, "You begin to unfasten \the [src] from the floor...") if(do_after(user, 40 * W.toolspeed, target = src)) user.visible_message( \ "[user] unfastens \the [src].", \ "You have unfastened \the [src]. Now it can be pulled somewhere else.", \ "You hear ratchet.") anchored = 0 stat |= MAINT unwrenched = 1 if(usr.machine==src) usr << browse(null, "window=pipedispenser") else /*if(unwrenched==1)*/ playsound(loc, W.usesound, 50, 1) to_chat(user, "You begin to fasten \the [src] to the floor...") if(do_after(user, 20 * W.toolspeed, target = src)) user.visible_message( \ "[user] fastens \the [src].", \ "You have fastened \the [src]. Now it can dispense pipes.", \ "You hear ratchet.") anchored = 1 stat &= ~MAINT unwrenched = 0 power_change() else return ..() /obj/machinery/pipedispenser/disposal name = "Disposal Pipe Dispenser" icon = 'icons/obj/stationobjs.dmi' icon_state = "pipe_d" //Allow you to drag-drop disposal pipes into it /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 ) return if(pipe.anchored) return qdel(pipe) /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
Junction
Y-Junction
Trunk
Bin
Outlet
Chute
"} var/datum/browser/popup = new(user, "pipedispenser", name, 400, 400) popup.set_content(dat) popup.open() /obj/machinery/pipedispenser/disposal/Topic(href, href_list) if(!..()) return if(href_list["dmake"]) var/p_type = text2num(href_list["dmake"]) var/obj/structure/disposalconstruct/C = new(loc, p_type) if(p_type in list(PIPE_DISPOSALS_BIN, PIPE_DISPOSALS_OUTLET, PIPE_DISPOSALS_CHUTE)) C.density = TRUE