/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