Adds reversed trinaries and digital tvalve.

This commit is contained in:
ComicIronic
2014-12-01 23:01:09 +00:00
parent 2713ec1bb1
commit 0de8d6846f
12 changed files with 208 additions and 89 deletions

View File

@@ -23,6 +23,8 @@ Pipelines + Other Objects -> Pipe network
// Which directions can we connect with?
var/initialize_directions = 0
var/obj/machinery/atmospherics/mirror //not actually an object reference, but a type. The reflection of the current pipe
// Pipe painter color setting.
var/_color

View File

@@ -5,6 +5,8 @@ obj/machinery/atmospherics/trinary/filter
name = "Gas filter"
mirror = /obj/machinery/atmospherics/trinary/filter/mirrored
var/on = 0
var/temp = null // -- TLE
@@ -235,3 +237,25 @@ obj/machinery/atmospherics/trinary/filter/Topic(href, href_list) // -- TLE
return
/obj/machinery/atmospherics/trinary/filter/mirrored
icon_state = "intactm_off"
/obj/machinery/atmospherics/trinary/filter/mirrored/initialize()
if(node1 && node2 && node3) return
node1 = findConnecting(dir)
node2 = findConnecting(turn(dir, -90))
node3 = findConnecting(turn(dir, -180))
update_icon()
/obj/machinery/atmospherics/trinary/filter/mirrored/update_icon()
if(stat & NOPOWER)
icon_state = "intactm_off"
else if(node2 && node3 && node1)
icon_state = "intactm_[on?("on"):("off")]"
else
icon_state = "intactm_off"
on = 0
return

View File

@@ -5,6 +5,8 @@ obj/machinery/atmospherics/trinary/mixer
name = "Gas mixer"
mirror = /obj/machinery/atmospherics/trinary/mixer/mirrored
var/on = 0
var/target_pressure = ONE_ATMOSPHERE
@@ -160,3 +162,26 @@ obj/machinery/atmospherics/trinary/mixer
src.update_icon()
src.updateUsrDialog()
return
/obj/machinery/atmospherics/trinary/mixer/mirrored
icon_state = "intactm_off"
/obj/machinery/atmospherics/trinary/mixer/mirrored/update_icon()
if(stat & NOPOWER)
icon_state = "intactm_off"
else if(node2 && node3 && node1)
icon_state = "intactm_[on?("on"):("off")]"
else
icon_state = "intactm_off"
on = 0
return
/obj/machinery/atmospherics/trinary/mixer/mirrored/initialize()
if(node1 && node2 && node3) return
node1 = findConnecting(dir)
node2 = findConnecting(turn(dir, -90))
node3 = findConnecting(turn(dir, -180))
update_icon()

View File

@@ -35,6 +35,11 @@ obj/machinery/atmospherics/trinary
air3.volume = 200
buildFrom(var/mob/usr,var/obj/item/pipe/pipe)
if(!(pipe.dir in list(NORTH, SOUTH, EAST, WEST)) && src.mirror) //because the dir isn't in the right set, we want to make the mirror kind
var/obj/machinery/atmospherics/trinary/mirrored_pipe = new mirror(src.loc)
pipe.dir = turn(pipe.dir, -45)
qdel(src)
return mirrored_pipe.buildFrom(usr, pipe)
dir = pipe.dir
initialize_directions = pipe.get_pipe_dir()
if (pipe.pipename)

View File

@@ -8,6 +8,8 @@ obj/machinery/atmospherics/tvalve
dir = SOUTH
initialize_directions = SOUTH|NORTH|WEST
mirror = /obj/machinery/atmospherics/tvalve/mirrored
state = 0 // 0 = go straight, 1 = go to side
// like a trinary component, node1 is input, node2 is side output, node3 is straight output
@@ -30,6 +32,11 @@ obj/machinery/atmospherics/tvalve
..()
buildFrom(var/mob/usr,var/obj/item/pipe/pipe)
if(!(pipe.dir in list(NORTH, SOUTH, EAST, WEST)) && src.mirror)
var/obj/machinery/atmospherics/tvalve/mirrored_pipe = new mirror(src.loc)
pipe.dir = turn(pipe.dir, -45)
qdel(src)
return mirrored_pipe.buildFrom(usr, pipe)
dir = pipe.dir
initialize_directions = pipe.get_pipe_dir()
if (pipe.pipename)
@@ -272,6 +279,8 @@ obj/machinery/atmospherics/tvalve
desc = "A digitally controlled valve."
icon = 'icons/obj/atmospherics/digital_valve.dmi'
mirror = /obj/machinery/atmospherics/tvalve/mirrored/digital
attack_ai(mob/user as mob)
src.add_hiddenprint(user)
return src.attack_hand(user)
@@ -322,9 +331,6 @@ obj/machinery/atmospherics/tvalve
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (istype(src, /obj/machinery/atmospherics/tvalve/digital))
user << "\red You cannot unwrench this [src], it's too complicated."
return 1
var/turf/T = src.loc
if (level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first."

View File

@@ -2,6 +2,8 @@
Buildable pipes
Buildable meters
*/
//Gas piping numbers - do NOT hardcode these, use the defines
#define PIPE_SIMPLE_STRAIGHT 0
#define PIPE_SIMPLE_BENT 1
#define PIPE_HE_STRAIGHT 2
@@ -28,6 +30,17 @@ Buildable meters
#define PIPE_INJECTOR 23
#define PIPE_DP_VENT 24
#define PIPE_PASV_VENT 25
#define PIPE_DTVALVE 26
//Disposal piping numbers - do NOT hardcode these, use the defines
#define DISP_PIPE_STRAIGHT 0
#define DISP_PIPE_BENT 1
#define DISP_JUNCTION 2
#define DISP_YJUNCTION 3
#define DISP_END_TRUNK 4
#define DISP_END_BIN 5
#define DISP_END_OUTLET 6
#define DISP_END_CHUTE 7
/obj/item/pipe_spawner
name = "Pipe Spawner"
@@ -101,8 +114,12 @@ Buildable meters
src.pipe_type = PIPE_PUMP
else if(istype(make_from, /obj/machinery/atmospherics/trinary/filter))
src.pipe_type = PIPE_GAS_FILTER
if(istype(make_from, /obj/machinery/atmospherics/trinary/filter/mirrored))
src.dir = turn(src.dir, 45) //adjust it to have the proper icon
else if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer))
src.pipe_type = PIPE_GAS_MIXER
if(istype(make_from, /obj/machinery/atmospherics/trinary/mixer/mirrored))
src.dir = turn(src.dir, 45)
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_scrubber))
src.pipe_type = PIPE_SCRUBBER
else if(istype(make_from, /obj/machinery/atmospherics/binary/passive_gate))
@@ -112,7 +129,12 @@ Buildable meters
else if(istype(make_from, /obj/machinery/atmospherics/unary/heat_exchanger))
src.pipe_type = PIPE_HEAT_EXCHANGE
else if(istype(make_from, /obj/machinery/atmospherics/tvalve))
src.pipe_type = PIPE_MTVALVE
if(istype(make_from, /obj/machinery/atmospherics/tvalve/digital) || istype(make_from, /obj/machinery/atmospherics/tvalve/mirrored/digital))
src.pipe_type = PIPE_DTVALVE
else
src.pipe_type = PIPE_MTVALVE
if(istype(make_from, /obj/machinery/atmospherics/tvalve/mirrored))
src.dir = turn(src.dir, 45) //sets the angle and icon correctly
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w))
src.pipe_type = PIPE_MANIFOLD4W
else if(istype(make_from, /obj/machinery/atmospherics/unary/cap))
@@ -161,7 +183,8 @@ var/global/list/pipeID2State = list(
"thermalplate",
"injector",
"binary vent",
"passive vent"
"passive vent",
"dtvalve"
)
/obj/item/pipe/proc/update()
var/list/nlist = list( \
@@ -190,7 +213,8 @@ var/global/list/pipeID2State = list(
"thermal plate", \
"injector", \
"dual-port vent", \
"passive vent"
"passive vent", \
"digital t-valve"
)
name = nlist[pipe_type+1] + " fitting"
icon = 'icons/obj/pipe-item.dmi'
@@ -262,7 +286,7 @@ var/global/list/pipeID2State = list(
return dir|flip|cw|acw
if(PIPE_MANIFOLD)
return flip|cw|acw
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE)
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE,PIPE_DTVALVE)
return dir|flip|cw
if(PIPE_CAP)
return flip
@@ -396,6 +420,9 @@ var/global/list/pipeID2State = list(
if(PIPE_PASV_VENT)
P=new /obj/machinery/atmospherics/pipe/vent(src.loc)
if(PIPE_DTVALVE)
P=new /obj/machinery/atmospherics/tvalve/digital(src.loc)
if(P.buildFrom(usr,src))
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
user.visible_message( \

View File

@@ -4,7 +4,6 @@
icon_state = "pipe_d"
density = 1
anchored = 1
var/unwrenched = 0
var/wait = 0
machine_flags = WRENCHMOVE | FIXED2WORK
@@ -36,42 +35,43 @@
var/dat = {"
<b>Regular pipes:</b>
<ul>
<li><a href='?src=\ref[src];make=0;dir=1'>Pipe</a></li>
<li><a href='?src=\ref[src];make=1;dir=5'>Bent Pipe</a></li>
<li><a href='?src=\ref[src];make=5;dir=1'>Manifold</a></li>
<li><a href='?src=\ref[src];make=8;dir=1'>Manual Valve</a></li>
<li><a href='?src=\ref[src];make=18;dir=1'>Digital Valve</a></li>
<li><a href='?src=\ref[src];make=21;dir=1'>Pipe Cap</a></li>
<li><a href='?src=\ref[src];make=20;dir=1'>4-Way Manifold</a></li>
<li><a href='?src=\ref[src];make=19;dir=1'>Manual T-Valve</a></li>
<li><a href='?src=\ref[src];make=[PIPE_SIMPLE_STRAIGHT];dir=1'>Pipe</a></li>
<li><a href='?src=\ref[src];make=[PIPE_SIMPLE_BENT];dir=5'>Bent Pipe</a></li>
<li><a href='?src=\ref[src];make=[PIPE_MANIFOLD];dir=1'>Manifold</a></li>
<li><a href='?src=\ref[src];make=[PIPE_MVALVE];dir=1'>Manual Valve</a></li>
<li><a href='?src=\ref[src];make=[PIPE_DVALVE];dir=1'>Digital Valve</a></li>
<li><a href='?src=\ref[src];make=[PIPE_CAP];dir=1'>Pipe Cap</a></li>
<li><a href='?src=\ref[src];make=[PIPE_MANIFOLD4W];dir=1'>4-Way Manifold</a></li>
<li><a href='?src=\ref[src];make=[PIPE_MTVALVE];dir=1'>Manual T-Valve</a></li>
<li><a href='?src=\ref[src];make=[PIPE_DTVALVE];dir=1'>Digital T-Valve</a></li>
</ul>
<b>Devices:</b>
<ul>
<li><a href='?src=\ref[src];make=4;dir=1'>Connector</a></li>
<li><a href='?src=\ref[src];make=7;dir=1'>Unary Vent</a></li>
<li><a href='?src=\ref[src];make=[PIPE_CONNECTOR];dir=1'>Connector</a></li>
<li><a href='?src=\ref[src];make=[PIPE_UVENT];dir=1'>Unary Vent</a></li>
<li><a href='?src=\ref[src];make=[PIPE_PASV_VENT];dir=1'>Passive Vent</a></li>
<li><a href='?src=\ref[src];make=9;dir=1'>Gas Pump</a></li>
<li><a href='?src=\ref[src];make=15;dir=1'>Passive Gate</a></li>
<li><a href='?src=\ref[src];make=16;dir=1'>Volume Pump</a></li>
<li><a href='?src=\ref[src];make=10;dir=1'>Scrubber</a></li>
<li><a href='?src=\ref[src];make=[PIPE_PUMP];dir=1'>Gas Pump</a></li>
<li><a href='?src=\ref[src];make=[PIPE_PASSIVE_GATE];dir=1'>Passive Gate</a></li>
<li><a href='?src=\ref[src];make=[PIPE_VOLUME_PUMP];dir=1'>Volume Pump</a></li>
<li><a href='?src=\ref[src];make=[PIPE_SCRUBBER];dir=1'>Scrubber</a></li>
<li><a href='?src=\ref[src];makemeter=1'>Meter</a></li>
<li><a href='?src=\ref[src];makegsensor=1'>Gas Sensor</a></li>
<li><a href='?src=\ref[src];make=13;dir=1'>Gas Filter</a></li>
<li><a href='?src=\ref[src];make=14;dir=1'>Gas Mixer</a></li>
<li><a href='?src=\ref[src];make=[PIPE_GAS_FILTER];dir=1'>Gas Filter</a></li>
<li><a href='?src=\ref[src];make=[PIPE_GAS_MIXER];dir=1'>Gas Mixer</a></li>
<li><a href='?src=\ref[src];make=[PIPE_THERMAL_PLATE];dir=1'>Thermal Plate</a></li>
<li><a href='?src=\ref[src];make=[PIPE_INJECTOR];dir=1'>Injector</a></li>
</ul>
<b>Heat exchange:</b>
<ul>
<li><a href='?src=\ref[src];make=2;dir=1'>Pipe</a></li>
<li><a href='?src=\ref[src];make=3;dir=5'>Bent Pipe</a></li>
<li><a href='?src=\ref[src];make=6;dir=1'>Junction</a></li>
<li><a href='?src=\ref[src];make=17;dir=1'>Heat Exchanger</a></li>
<li><a href='?src=\ref[src];make=[PIPE_HE_STRAIGHT];dir=1'>Pipe</a></li>
<li><a href='?src=\ref[src];make=[PIPE_HE_BENT];dir=5'>Bent Pipe</a></li>
<li><a href='?src=\ref[src];make=[PIPE_JUNCTION];dir=1'>Junction</a></li>
<li><a href='?src=\ref[src];make=[PIPE_HEAT_EXCHANGE];dir=1'>Heat Exchanger</a></li>
</ul>
<b>Insulated pipes:</b>
<ul>
<li><a href='?src=\ref[src];make=11;dir=1'>Pipe</a></li>
<li><a href='?src=\ref[src];make=12;dir=5'>Bent Pipe</a></li>
<li><a href='?src=\ref[src];make=[PIPE_INSULATED_STRAIGHT];dir=1'>Pipe</a></li>
<li><a href='?src=\ref[src];make=[PIPE_INSULATED_BENT];dir=5'>Bent Pipe</a></li>
</ul>
"}
//What number the make points to is in the define # at the top of construction.dm in same folder
@@ -83,7 +83,7 @@
/obj/machinery/pipedispenser/Topic(href, href_list)
if(..())
return
if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
if(!anchored || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=pipedispenser")
return
usr.set_machine(src)
@@ -123,16 +123,8 @@
return ..()
/obj/machinery/pipedispenser/wrenchAnchor(mob/user)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You begin to [anchored ? "un" : ""]fasten \the [src] from the floor..."
if (do_after(user, 40))
user.visible_message( \
"[user] unfastens \the [src].", \
"\blue You have [anchored ? "un" : ""]fastened \the [src]. Now it can [anchored ? "be pulled somewhere else" : "dispense pipes"].", \
"You hear ratchet.")
src.anchored = !src.anchored
src.unwrenched = !src.unwrenched
if (unwrenched==0)
if(..() == 1)
if(anchored)
src.stat |= MAINT
if (usr.machine==src)
usr << browse(null, "window=pipedispenser")
@@ -191,14 +183,14 @@ Nah
return
var/dat = {"<b>Disposal Pipes</b><br><br>
<A href='?src=\ref[src];dmake=0'>Pipe</A><BR>
<A href='?src=\ref[src];dmake=1'>Bent Pipe</A><BR>
<A href='?src=\ref[src];dmake=2'>Junction</A><BR>
<A href='?src=\ref[src];dmake=3'>Y-Junction</A><BR>
<A href='?src=\ref[src];dmake=4'>Trunk</A><BR>
<A href='?src=\ref[src];dmake=5'>Bin</A><BR>
<A href='?src=\ref[src];dmake=6'>Outlet</A><BR>
<A href='?src=\ref[src];dmake=7'>Chute</A><BR>
<A href='?src=\ref[src];dmake=[DISP_PIPE_STRAIGHT]'>Pipe</A><BR>
<A href='?src=\ref[src];dmake=[DISP_PIPE_BENT]'>Bent Pipe</A><BR>
<A href='?src=\ref[src];dmake=[DISP_JUNCTION]'>Junction</A><BR>
<A href='?src=\ref[src];dmake=[DISP_YJUNCTION]'>Y-Junction</A><BR>
<A href='?src=\ref[src];dmake=[DISP_END_TRUNK]'>Trunk</A><BR>
<A href='?src=\ref[src];dmake=[DISP_END_BIN]'>Bin</A><BR>
<A href='?src=\ref[src];dmake=[DISP_END_OUTLET]'>Outlet</A><BR>
<A href='?src=\ref[src];dmake=[DISP_END_CHUTE]'>Chute</A><BR>
"}
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "window=pipedispenser")
@@ -213,14 +205,14 @@ Nah
usr.set_machine(src)
src.add_fingerprint(usr)
if(href_list["dmake"])
if(unwrenched || !usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
if(!anchored || !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)
if(0, 1, 2, 3, 4, 5)
C.ptype = 0
if(1)
C.ptype = 1

View File

@@ -4,10 +4,11 @@
CONTAINS:
RPD
*/
#define PIPE_BINARY 0
#define PIPE_BENT 1
#define PIPE_TRINARY 2
#define PIPE_UNARY 3
#define PIPE_BINARY 0
#define PIPE_BENT 1
#define PIPE_TRINARY 2
#define PIPE_TRIN_M 3
#define PIPE_UNARY 4
/datum/pipe_info
var/id=-1
@@ -59,6 +60,7 @@ var/global/list/disposalpipeID2State=list(
"pipe-j1s",
"pipe-j2s"
)
/datum/pipe_info/disposal
icon = 'icons/obj/pipes/disposal.dmi'
icon_state = "meterX"
@@ -74,51 +76,53 @@ var/global/list/disposalpipeID2State=list(
/datum/pipe_info/disposal/Render(var/dispenser,var/label)
return "<li><a href='?src=\ref[dispenser];dmake=[id];type=3'>[label]</a></li>"
//find these defines in code\game\machinery\pipe\consruction.dm
var/global/list/RPD_recipes=list(
"Regular Pipes" = list(
"Pipe" = new /datum/pipe_info(0, 1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(1, 5, PIPE_BENT),
"Manifold" = new /datum/pipe_info(5, 1, PIPE_TRINARY),
"Manual Valve" = new /datum/pipe_info(8, 1, PIPE_BINARY),
"Digital Valve" = new /datum/pipe_info(18, 1, PIPE_BINARY),
"Pipe Cap" = new /datum/pipe_info(21, 1, PIPE_UNARY),
"4-Way Manifold" = new /datum/pipe_info(20,-1, PIPE_BINARY),
"Manual T-Valve" = new /datum/pipe_info(19, 2, PIPE_TRINARY),
"Pipe" = new /datum/pipe_info(PIPE_SIMPLE_STRAIGHT, 1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(PIPE_SIMPLE_BENT, 5, PIPE_BENT),
"Manifold" = new /datum/pipe_info(PIPE_MANIFOLD, 1, PIPE_TRINARY),
"Manual Valve" = new /datum/pipe_info(PIPE_MVALVE, 1, PIPE_BINARY),
"Digital Valve" = new /datum/pipe_info(PIPE_DVALVE, 1, PIPE_BINARY),
"Pipe Cap" = new /datum/pipe_info(PIPE_CAP, 1, PIPE_UNARY),
"4-Way Manifold" = new /datum/pipe_info(PIPE_MANIFOLD4W, -1, PIPE_BINARY),
"Manual T-Valve" = new /datum/pipe_info(PIPE_MTVALVE, 2, PIPE_TRIN_M),
"Digital T-Valve" = new /datum/pipe_info(PIPE_DTVALVE, 2, PIPE_TRIN_M),
),
"Devices"=list(
"Connector" = new /datum/pipe_info(4, 1, PIPE_UNARY),
"Unary Vent" = new /datum/pipe_info(7, 1, PIPE_UNARY),
"Passive Vent" = new /datum/pipe_info(PIPE_PASV_VENT, 1, PIPE_UNARY),
"Gas Pump" = new /datum/pipe_info(9, 1, PIPE_UNARY),
"Passive Gate" = new /datum/pipe_info(15,1, PIPE_UNARY),
"Volume Pump" = new /datum/pipe_info(16,1, PIPE_UNARY),
"Scrubber" = new /datum/pipe_info(10,1, PIPE_UNARY),
"Connector" = new /datum/pipe_info(PIPE_CONNECTOR, 1, PIPE_UNARY),
"Unary Vent" = new /datum/pipe_info(PIPE_UVENT, 1, PIPE_UNARY),
"Passive Vent" = new /datum/pipe_info(PIPE_PASV_VENT, 1, PIPE_UNARY),
"Gas Pump" = new /datum/pipe_info(PIPE_PUMP, 1, PIPE_UNARY),
"Passive Gate" = new /datum/pipe_info(PIPE_PASSIVE_GATE, 1, PIPE_UNARY),
"Volume Pump" = new /datum/pipe_info(PIPE_VOLUME_PUMP, 1, PIPE_UNARY),
"Scrubber" = new /datum/pipe_info(PIPE_SCRUBBER, 1, PIPE_UNARY),
"Meter" = new /datum/pipe_info/meter(),
"Gas Sensor" = new /datum/pipe_info/gsensor(),
"Gas Filter" = new /datum/pipe_info(13,1, PIPE_TRINARY),
"Gas Mixer" = new /datum/pipe_info(14,1, PIPE_TRINARY),
"Thermal Plate" = new /datum/pipe_info(PIPE_THERMAL_PLATE,1, PIPE_UNARY),
"Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY),
"Gas Filter" = new /datum/pipe_info(PIPE_GAS_FILTER, 1, PIPE_TRIN_M),
"Gas Mixer" = new /datum/pipe_info(PIPE_GAS_MIXER, 1, PIPE_TRIN_M),
"Thermal Plate" = new /datum/pipe_info(PIPE_THERMAL_PLATE, 1, PIPE_UNARY),
"Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY),
),
"Heat Exchange" = list(
"Pipe" = new /datum/pipe_info(2, 1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(3, 5, PIPE_BENT),
"Junction" = new /datum/pipe_info(6, 1, PIPE_UNARY),
"Heat Exchanger" = new /datum/pipe_info(17,1, PIPE_UNARY),
"Pipe" = new /datum/pipe_info(PIPE_HE_STRAIGHT, 1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(PIPE_HE_BENT, 5, PIPE_BENT),
"Junction" = new /datum/pipe_info(PIPE_JUNCTION, 1, PIPE_UNARY),
"Heat Exchanger" = new /datum/pipe_info(PIPE_HEAT_EXCHANGE, 1, PIPE_UNARY),
),
"Insulated Pipes" = list(
"Pipe" = new /datum/pipe_info(11,1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(12,5, PIPE_BENT),
"Pipe" = new /datum/pipe_info(PIPE_INSULATED_STRAIGHT,1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(PIPE_INSULATED_BENT, 5, PIPE_BENT),
),
"Disposal Pipes" = list(
"Pipe" = new /datum/pipe_info/disposal(0, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info/disposal(1, PIPE_BENT),
"Junction" = new /datum/pipe_info/disposal(2, PIPE_TRINARY),
"Y-Junction" = new /datum/pipe_info/disposal(3, PIPE_TRINARY),
"Trunk" = new /datum/pipe_info/disposal(4, PIPE_TRINARY),
"Bin" = new /datum/pipe_info/disposal(5, PIPE_UNARY),
"Outlet" = new /datum/pipe_info/disposal(6, PIPE_UNARY),
"Chute" = new /datum/pipe_info/disposal(7, PIPE_UNARY),
"Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_STRAIGHT, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info/disposal(DISP_PIPE_BENT, PIPE_BENT),
"Junction" = new /datum/pipe_info/disposal(DISP_JUNCTION, PIPE_TRINARY),
"Y-Junction" = new /datum/pipe_info/disposal(DISP_YJUNCTION, PIPE_TRINARY),
"Trunk" = new /datum/pipe_info/disposal(DISP_END_TRUNK, PIPE_TRINARY),
"Bin" = new /datum/pipe_info/disposal(DISP_END_BIN, PIPE_UNARY),
"Outlet" = new /datum/pipe_info/disposal(DISP_END_OUTLET, PIPE_UNARY),
"Chute" = new /datum/pipe_info/disposal(DISP_END_CHUTE, PIPE_UNARY),
)
)
/obj/item/weapon/pipe_dispenser
@@ -169,7 +173,7 @@ var/global/list/RPD_recipes=list(
/obj/item/weapon/pipe_dispenser/proc/render_dir_img(var/_dir,var/pic,var/title)
var/selected=""
if(_dir==p_dir)
if(_dir == p_dir)
selected=" class=\"selected\""
return "<a href=\"?src=\ref[src];setdir=[_dir]\" title=\"[title]\"[selected]><img src=\"[pic]\" /></a>"
@@ -288,6 +292,40 @@ var/global/list/RPD_recipes=list(
<a href="?src=\ref[src];setdir=8" title="South, East, North">&#9568;</a>
</p>
"}
if(PIPE_TRIN_M) // Mirrored ones
if(preview)
user << browse_rsc(new /icon(preview, dir=NORTH), "s.png")
user << browse_rsc(new /icon(preview, dir=EAST), "w.png")
user << browse_rsc(new /icon(preview, dir=SOUTH), "n.png")
user << browse_rsc(new /icon(preview, dir=WEST), "e.png")
user << browse_rsc(new /icon(preview, dir=SOUTHEAST), "sm.png") //each mirror icon is 45 anticlockwise from it's real direction
user << browse_rsc(new /icon(preview, dir=NORTHEAST), "wm.png")
user << browse_rsc(new /icon(preview, dir=NORTHWEST), "nm.png")
user << browse_rsc(new /icon(preview, dir=SOUTHWEST), "em.png")
dirsel += "<p>"
dirsel += render_dir_img(1,"s.png","West South East")
dirsel += render_dir_img(4,"w.png","North West South")
dirsel += "<br />"
dirsel += render_dir_img(2,"n.png","East North West")
dirsel += render_dir_img(8,"e.png","South East North")
dirsel += "<br />"
dirsel += render_dir_img(6,"sm.png","West South East")
dirsel += render_dir_img(5,"wm.png","North West South")
dirsel += "<br />"
dirsel += render_dir_img(9,"nm.png","East North West")
dirsel += render_dir_img(10,"em.png","South East North")
dirsel += "</p>"
else
dirsel+={"
<p>
<a href="?src=\ref[src];setdir=1" title="West, South, East">&#9574;</a>
<a href="?src=\ref[src];setdir=4" title="North, West, South">&#9571;</a>
<br />
<a href="?src=\ref[src];setdir=2" title="East, North, West">&#9577;</a>
<a href="?src=\ref[src];setdir=8" title="South, East, North">&#9568;</a>
</p>
"}
if(PIPE_UNARY) // Unary
if(preview)
user << browse_rsc(new /icon(preview, dir=NORTH), "n.png")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 29 KiB