NewPipe
-Supply and scrubber pipes can be run in parallel without connecting to each other -Supply pipes will only connect to supply pipes, vents and Universal Pipe Adapters(UPAs) -Scrubber pipes will only connect to scrubber pipes, scrubbers and UPAs -Supply and scrubber pipes are offset along the x and y axes to prevent sprite overlap -UPAs will connect to regular, scrubber and supply pipes, as well as anything else that connects to a regular pipe. UPAs will be used to interface between the supply/scrubber loops and atmos
@@ -1,7 +1,7 @@
|
|||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
// Pipe colors
|
// Pipe colors
|
||||||
//
|
//
|
||||||
// Add them here and to the pipe_colors list
|
// Add them here and to the pipe_colors list
|
||||||
// to automatically add them to all relevant
|
// to automatically add them to all relevant
|
||||||
// atmospherics devices.
|
// atmospherics devices.
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
@@ -37,11 +37,12 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
var/list/pipe_icons[]
|
var/list/pipe_icons[]
|
||||||
var/list/manifold_icons[]
|
var/list/manifold_icons[]
|
||||||
var/list/device_icons[]
|
var/list/device_icons[]
|
||||||
var/list/underlays_down[]
|
var/list/underlays[]
|
||||||
var/list/underlays_exposed[]
|
//var/list/underlays_down[]
|
||||||
var/list/underlays_intact[]
|
//var/list/underlays_exposed[]
|
||||||
var/list/pipe_underlays_exposed[]
|
//var/list/underlays_intact[]
|
||||||
var/list/pipe_underlays_intact[]
|
//var/list/pipe_underlays_exposed[]
|
||||||
|
//var/list/pipe_underlays_intact[]
|
||||||
var/list/omni_icons[]
|
var/list/omni_icons[]
|
||||||
|
|
||||||
/datum/pipe_icon_manager/New()
|
/datum/pipe_icon_manager/New()
|
||||||
@@ -64,16 +65,18 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
return device_icons[state]
|
return device_icons[state]
|
||||||
if("omni")
|
if("omni")
|
||||||
return omni_icons[state]
|
return omni_icons[state]
|
||||||
if("underlay_intact")
|
if("underlay")
|
||||||
return underlays_intact[dir + color]
|
return underlays[state + dir + color]
|
||||||
if("underlay_exposed")
|
//if("underlay_intact")
|
||||||
return underlays_exposed[dir + color]
|
// return underlays_intact[state + dir + color]
|
||||||
if("underlay_down")
|
// if("underlay_exposed")
|
||||||
return underlays_down[dir + color]
|
// return underlays_exposed[state + dir + color]
|
||||||
if("pipe_underlay_exposed")
|
// if("underlay_down")
|
||||||
return pipe_underlays_exposed[dir + color]
|
// return underlays_down[state + dir + color]
|
||||||
if("pipe_underlay_intact")
|
// if("pipe_underlay_exposed")
|
||||||
return pipe_underlays_intact[dir + color]
|
// return pipe_underlays_exposed[state + dir + color]
|
||||||
|
// if("pipe_underlay_intact")
|
||||||
|
// return pipe_underlays_intact[state + dir + color]
|
||||||
|
|
||||||
/datum/pipe_icon_manager/proc/check_icons()
|
/datum/pipe_icon_manager/proc/check_icons()
|
||||||
if(!pipe_icons)
|
if(!pipe_icons)
|
||||||
@@ -84,13 +87,14 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
gen_device_icons()
|
gen_device_icons()
|
||||||
if(!omni_icons)
|
if(!omni_icons)
|
||||||
gen_omni_icons()
|
gen_omni_icons()
|
||||||
if(!underlays_intact || !underlays_down || !underlays_exposed || !pipe_underlays_exposed || !pipe_underlays_intact)
|
//if(!underlays_intact || !underlays_down || !underlays_exposed || !pipe_underlays_exposed || !pipe_underlays_intact)
|
||||||
|
if(!underlays)
|
||||||
gen_underlay_icons()
|
gen_underlay_icons()
|
||||||
|
|
||||||
/datum/pipe_icon_manager/proc/gen_pipe_icons()
|
/datum/pipe_icon_manager/proc/gen_pipe_icons()
|
||||||
if(!pipe_icons)
|
if(!pipe_icons)
|
||||||
pipe_icons = new()
|
pipe_icons = new()
|
||||||
|
|
||||||
var/icon/pipe = new('icons/atmos/pipes.dmi')
|
var/icon/pipe = new('icons/atmos/pipes.dmi')
|
||||||
|
|
||||||
for(var/state in pipe.IconStates())
|
for(var/state in pipe.IconStates())
|
||||||
@@ -109,7 +113,7 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
/datum/pipe_icon_manager/proc/gen_manifold_icons()
|
/datum/pipe_icon_manager/proc/gen_manifold_icons()
|
||||||
if(!manifold_icons)
|
if(!manifold_icons)
|
||||||
manifold_icons = new()
|
manifold_icons = new()
|
||||||
|
|
||||||
var/icon/pipe = new('icons/atmos/manifold.dmi')
|
var/icon/pipe = new('icons/atmos/manifold.dmi')
|
||||||
|
|
||||||
for(var/state in pipe.IconStates())
|
for(var/state in pipe.IconStates())
|
||||||
@@ -118,7 +122,7 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
manifold_icons[state] = I
|
manifold_icons[state] = I
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if(state == "core" || state == "4way")
|
if(findtext(state, "core") || findtext(state, "4way"))
|
||||||
var/image/I = image('icons/atmos/manifold.dmi', icon_state = state)
|
var/image/I = image('icons/atmos/manifold.dmi', icon_state = state)
|
||||||
manifold_icons[state] = I
|
manifold_icons[state] = I
|
||||||
for(var/pipe_color in pipe_colors)
|
for(var/pipe_color in pipe_colors)
|
||||||
@@ -129,7 +133,7 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
/datum/pipe_icon_manager/proc/gen_device_icons()
|
/datum/pipe_icon_manager/proc/gen_device_icons()
|
||||||
if(!device_icons)
|
if(!device_icons)
|
||||||
device_icons = new()
|
device_icons = new()
|
||||||
|
|
||||||
var/icon/device
|
var/icon/device
|
||||||
|
|
||||||
device = new('icons/atmos/vent_pump.dmi')
|
device = new('icons/atmos/vent_pump.dmi')
|
||||||
@@ -147,14 +151,37 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
/datum/pipe_icon_manager/proc/gen_omni_icons()
|
/datum/pipe_icon_manager/proc/gen_omni_icons()
|
||||||
if(!omni_icons)
|
if(!omni_icons)
|
||||||
omni_icons = new()
|
omni_icons = new()
|
||||||
|
|
||||||
var/icon/omni = new('icons/atmos/omni_devices.dmi')
|
var/icon/omni = new('icons/atmos/omni_devices.dmi')
|
||||||
|
|
||||||
for(var/state in omni.IconStates())
|
for(var/state in omni.IconStates())
|
||||||
if(!state || findtext(state, "map"))
|
if(!state || findtext(state, "map"))
|
||||||
continue
|
continue
|
||||||
omni_icons[state] = image('icons/atmos/omni_devices.dmi', icon_state = state)
|
omni_icons[state] = image('icons/atmos/omni_devices.dmi', icon_state = state)
|
||||||
|
|
||||||
|
|
||||||
|
/datum/pipe_icon_manager/proc/gen_underlay_icons()
|
||||||
|
|
||||||
|
if(!underlays)
|
||||||
|
underlays = new()
|
||||||
|
|
||||||
|
var/icon/pipe = new('icons/atmos/pipe_underlays.dmi')
|
||||||
|
|
||||||
|
for(var/state in pipe.IconStates())
|
||||||
|
if(state == "")
|
||||||
|
continue
|
||||||
|
|
||||||
|
var/cache_name = state
|
||||||
|
|
||||||
|
for(var/D in cardinal)
|
||||||
|
var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)
|
||||||
|
underlays[cache_name + "[D]"] = I
|
||||||
|
for(var/pipe_color in pipe_colors)
|
||||||
|
I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)
|
||||||
|
I.color = pipe_colors[pipe_color]
|
||||||
|
underlays[state + "[D]" + "[pipe_colors[pipe_color]]"] = I
|
||||||
|
|
||||||
|
/*
|
||||||
/datum/pipe_icon_manager/proc/gen_underlay_icons()
|
/datum/pipe_icon_manager/proc/gen_underlay_icons()
|
||||||
if(!underlays_intact)
|
if(!underlays_intact)
|
||||||
underlays_intact = new()
|
underlays_intact = new()
|
||||||
@@ -168,11 +195,11 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
pipe_underlays_intact = new()
|
pipe_underlays_intact = new()
|
||||||
|
|
||||||
var/icon/pipe = new('icons/atmos/pipe_underlays.dmi')
|
var/icon/pipe = new('icons/atmos/pipe_underlays.dmi')
|
||||||
|
|
||||||
for(var/state in pipe.IconStates())
|
for(var/state in pipe.IconStates())
|
||||||
if(state == "")
|
if(state == "")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for(var/D in cardinal)
|
for(var/D in cardinal)
|
||||||
var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)
|
var/image/I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)
|
||||||
switch(state)
|
switch(state)
|
||||||
@@ -186,6 +213,26 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
pipe_underlays_exposed["[D]"] = I
|
pipe_underlays_exposed["[D]"] = I
|
||||||
if("pipe_intact")
|
if("pipe_intact")
|
||||||
pipe_underlays_intact["[D]"] = I
|
pipe_underlays_intact["[D]"] = I
|
||||||
|
if("intact-supply")
|
||||||
|
underlays_intact["[D]"] = I
|
||||||
|
if("exposed-supply")
|
||||||
|
underlays_exposed["[D]"] = I
|
||||||
|
if("down-supply")
|
||||||
|
underlays_down["[D]"] = I
|
||||||
|
if("pipe_exposed-supply")
|
||||||
|
pipe_underlays_exposed["[D]"] = I
|
||||||
|
if("pipe_intact-supply")
|
||||||
|
pipe_underlays_intact["[D]"] = I
|
||||||
|
if("intact-scrubbers")
|
||||||
|
underlays_intact["[D]"] = I
|
||||||
|
if("exposed-scrubbers")
|
||||||
|
underlays_exposed["[D]"] = I
|
||||||
|
if("down-scrubbers")
|
||||||
|
underlays_down["[D]"] = I
|
||||||
|
if("pipe_exposed-scrubbers")
|
||||||
|
pipe_underlays_exposed["[D]"] = I
|
||||||
|
if("pipe_intact-scrubbers")
|
||||||
|
pipe_underlays_intact["[D]"] = I
|
||||||
for(var/pipe_color in pipe_colors)
|
for(var/pipe_color in pipe_colors)
|
||||||
I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)
|
I = image('icons/atmos/pipe_underlays.dmi', icon_state = state, dir = D)
|
||||||
I.color = pipe_colors[pipe_color]
|
I.color = pipe_colors[pipe_color]
|
||||||
@@ -199,4 +246,26 @@ var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_
|
|||||||
if("pipe_exposed")
|
if("pipe_exposed")
|
||||||
pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I
|
pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I
|
||||||
if("pipe_intact")
|
if("pipe_intact")
|
||||||
pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I
|
pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("intact-supply")
|
||||||
|
underlays_intact["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("exposed-supply")
|
||||||
|
underlays_exposed["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("down-supply")
|
||||||
|
underlays_down["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("pipe_exposed-supply")
|
||||||
|
pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("pipe_intact-supply")
|
||||||
|
pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("intact-scrubbers")
|
||||||
|
underlays_intact["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("exposed-scrubbers")
|
||||||
|
underlays_exposed["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("down-scrubbers")
|
||||||
|
underlays_down["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("pipe_exposed-scrubbers")
|
||||||
|
pipe_underlays_exposed["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
if("pipe_intact-scrubbers")
|
||||||
|
pipe_underlays_intact["[D]" + pipe_colors[pipe_color]] = I
|
||||||
|
|
||||||
|
*/
|
||||||
@@ -16,19 +16,25 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
power_channel = ENVIRON
|
power_channel = ENVIRON
|
||||||
var/nodealert = 0
|
var/nodealert = 0
|
||||||
|
|
||||||
|
layer = 2.4 //under wires with their 2.44
|
||||||
|
|
||||||
|
var/connect_types[] = list(1) //1=regular, 2=supply, 3=scrubber
|
||||||
|
var/connected_to = 1 //same as above, currently not used for anything
|
||||||
|
var/icon_connect_type = "" //"-supply" or "-scrubbers"
|
||||||
|
|
||||||
var/initialize_directions = 0
|
var/initialize_directions = 0
|
||||||
var/pipe_color
|
var/pipe_color
|
||||||
|
|
||||||
var/global/datum/pipe_icon_manager/icon_manager
|
var/global/datum/pipe_icon_manager/icon_manager
|
||||||
|
|
||||||
/obj/machinery/atmospherics/New()
|
/obj/machinery/atmospherics/New()
|
||||||
if(!icon_manager)
|
if(!icon_manager)
|
||||||
icon_manager = new()
|
icon_manager = new()
|
||||||
|
|
||||||
if(!pipe_color)
|
if(!pipe_color)
|
||||||
pipe_color = color
|
pipe_color = color
|
||||||
color = null
|
color = null
|
||||||
|
|
||||||
if(!pipe_color_check(pipe_color))
|
if(!pipe_color_check(pipe_color))
|
||||||
pipe_color = null
|
pipe_color = null
|
||||||
..()
|
..()
|
||||||
@@ -38,14 +44,17 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/proc/add_underlay(var/turf/T, var/obj/machinery/atmospherics/node, var/direction)
|
/obj/machinery/atmospherics/proc/add_underlay(var/turf/T, var/obj/machinery/atmospherics/node, var/direction, var/icon_connect_type)
|
||||||
if(node)
|
if(node)
|
||||||
if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||||
underlays += icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node))
|
//underlays += icon_manager.get_atmos_icon("underlay_down", direction, color_cache_name(node))
|
||||||
|
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
|
||||||
else
|
else
|
||||||
underlays += icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node))
|
//underlays += icon_manager.get_atmos_icon("underlay_intact", direction, color_cache_name(node))
|
||||||
|
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
|
||||||
else
|
else
|
||||||
underlays += icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color)
|
//underlays += icon_manager.get_atmos_icon("underlay_exposed", direction, pipe_color)
|
||||||
|
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "exposed" + icon_connect_type)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/proc/update_underlays()
|
/obj/machinery/atmospherics/proc/update_underlays()
|
||||||
if(check_icon_cache())
|
if(check_icon_cache())
|
||||||
@@ -53,20 +62,45 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/proc/check_connect_types(obj/machinery/atmospherics/atmos1, obj/machinery/atmospherics/atmos2)
|
||||||
|
var/i
|
||||||
|
var/list1[] = atmos1.connect_types
|
||||||
|
var/list2[] = atmos2.connect_types
|
||||||
|
for(i=1,i<=list1.len,i++)
|
||||||
|
var/j
|
||||||
|
for(j=1,j<=list2.len,j++)
|
||||||
|
if(list1[i] == list2[j])
|
||||||
|
var/n = list1[i]
|
||||||
|
return n
|
||||||
|
return 0
|
||||||
|
|
||||||
|
obj/machinery/atmospherics/proc/check_connect_types_construction(obj/machinery/atmospherics/atmos1, obj/item/pipe/pipe2)
|
||||||
|
var/i
|
||||||
|
var/list1[] = atmos1.connect_types
|
||||||
|
var/list2[] = pipe2.connect_types
|
||||||
|
for(i=1,i<=list1.len,i++)
|
||||||
|
var/j
|
||||||
|
for(j=1,j<=list2.len,j++)
|
||||||
|
if(list1[i] == list2[j])
|
||||||
|
var/n = list1[i]
|
||||||
|
return n
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/proc/check_icon_cache(var/safety = 0)
|
/obj/machinery/atmospherics/proc/check_icon_cache(var/safety = 0)
|
||||||
if(!istype(icon_manager))
|
if(!istype(icon_manager))
|
||||||
if(!safety) //to prevent infinite loops
|
if(!safety) //to prevent infinite loops
|
||||||
icon_manager = new()
|
icon_manager = new()
|
||||||
check_icon_cache(1)
|
check_icon_cache(1)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/proc/color_cache_name(var/obj/machinery/atmospherics/node)
|
/obj/machinery/atmospherics/proc/color_cache_name(var/obj/machinery/atmospherics/node)
|
||||||
//Don't use this for standard pipes
|
//Don't use this for standard pipes
|
||||||
if(!istype(node))
|
if(!istype(node))
|
||||||
return null
|
return null
|
||||||
|
|
||||||
return node.pipe_color
|
return node.pipe_color
|
||||||
|
|
||||||
/obj/machinery/atmospherics/process()
|
/obj/machinery/atmospherics/process()
|
||||||
|
|||||||
@@ -67,13 +67,21 @@ obj/machinery/atmospherics/binary
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
/obj/machinery/atmospherics/omni/New()
|
/obj/machinery/atmospherics/omni/New()
|
||||||
..()
|
..()
|
||||||
icon_state = "base"
|
icon_state = "base"
|
||||||
|
|
||||||
ports = new()
|
ports = new()
|
||||||
for(var/d in cardinal)
|
for(var/d in cardinal)
|
||||||
var/datum/omni_port/new_port = new(src, d)
|
var/datum/omni_port/new_port = new(src, d)
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
if(new_port.mode > 0)
|
if(new_port.mode > 0)
|
||||||
initialize_directions |= d
|
initialize_directions |= d
|
||||||
ports += new_port
|
ports += new_port
|
||||||
|
|
||||||
build_icons()
|
build_icons()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/omni/update_icon()
|
/obj/machinery/atmospherics/omni/update_icon()
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
if(ATM_O2 to ATM_N2O)
|
if(ATM_O2 to ATM_N2O)
|
||||||
ic_on += "_filter"
|
ic_on += "_filter"
|
||||||
ic_off += "_out"
|
ic_off += "_out"
|
||||||
|
|
||||||
ic_on = icon_manager.get_atmos_icon("omni", , , ic_on)
|
ic_on = icon_manager.get_atmos_icon("omni", , , ic_on)
|
||||||
ic_off = icon_manager.get_atmos_icon("omni", , , ic_off)
|
ic_off = icon_manager.get_atmos_icon("omni", , , ic_off)
|
||||||
|
|
||||||
@@ -238,8 +238,12 @@
|
|||||||
continue
|
continue
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src, P.dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src, P.dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
P.node = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
P.node = target
|
||||||
|
break
|
||||||
|
|
||||||
for(var/datum/omni_port/P in ports)
|
for(var/datum/omni_port/P in ports)
|
||||||
P.update = 1
|
P.update = 1
|
||||||
@@ -285,7 +289,7 @@
|
|||||||
P.node = null
|
P.node = null
|
||||||
P.update = 1
|
P.update = 1
|
||||||
break
|
break
|
||||||
|
|
||||||
update_ports()
|
update_ports()
|
||||||
|
|
||||||
return null
|
return null
|
||||||
@@ -81,8 +81,12 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node = target
|
||||||
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
@@ -123,7 +127,7 @@
|
|||||||
if(reference==node)
|
if(reference==node)
|
||||||
del(network)
|
del(network)
|
||||||
node = null
|
node = null
|
||||||
|
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
return null
|
return null
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ obj/machinery/atmospherics/trinary
|
|||||||
dir = SOUTH
|
dir = SOUTH
|
||||||
initialize_directions = SOUTH|NORTH|WEST
|
initialize_directions = SOUTH|NORTH|WEST
|
||||||
use_power = 1
|
use_power = 1
|
||||||
|
|
||||||
var/on = 0
|
var/on = 0
|
||||||
|
|
||||||
var/datum/gas_mixture/air1
|
var/datum/gas_mixture/air1
|
||||||
@@ -82,18 +82,29 @@ obj/machinery/atmospherics/trinary
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node3_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node3 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node3 = target
|
||||||
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
@@ -163,7 +174,7 @@ obj/machinery/atmospherics/trinary
|
|||||||
else if(reference==node3)
|
else if(reference==node3)
|
||||||
del(network3)
|
del(network3)
|
||||||
node3 = null
|
node3 = null
|
||||||
|
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
return null
|
return null
|
||||||
@@ -37,12 +37,12 @@
|
|||||||
if(!istype(T))
|
if(!istype(T))
|
||||||
return
|
return
|
||||||
add_underlay(T, node1, turn(dir, -180))
|
add_underlay(T, node1, turn(dir, -180))
|
||||||
|
|
||||||
if(istype(src, /obj/machinery/atmospherics/tvalve/mirrored))
|
if(istype(src, /obj/machinery/atmospherics/tvalve/mirrored))
|
||||||
add_underlay(T, node2, turn(dir, 90))
|
add_underlay(T, node2, turn(dir, 90))
|
||||||
else
|
else
|
||||||
add_underlay(T, node2, turn(dir, -90))
|
add_underlay(T, node2, turn(dir, -90))
|
||||||
|
|
||||||
add_underlay(T, node3, dir)
|
add_underlay(T, node3, dir)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/tvalve/hide(var/i)
|
/obj/machinery/atmospherics/tvalve/hide(var/i)
|
||||||
@@ -202,17 +202,29 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node3_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node3 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node3 = target
|
||||||
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
@@ -407,7 +419,7 @@
|
|||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node3 = target
|
node3 = target
|
||||||
break
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/obj/machinery/atmospherics/unary
|
/obj/machinery/atmospherics/unary
|
||||||
dir = SOUTH
|
dir = SOUTH
|
||||||
initialize_directions = SOUTH
|
initialize_directions = SOUTH
|
||||||
layer = TURF_LAYER+0.1
|
//layer = TURF_LAYER+0.1
|
||||||
|
|
||||||
var/datum/gas_mixture/air_contents
|
var/datum/gas_mixture/air_contents
|
||||||
|
|
||||||
@@ -46,8 +46,12 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node_connect))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node_connect))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node = target
|
||||||
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|||||||
@@ -18,7 +18,9 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 150 //internal circuitry, friction losses and stuff
|
idle_power_usage = 150 //internal circuitry, friction losses and stuff
|
||||||
active_power_usage = 7500 //This also doubles as a measure of how powerful the pump is, in Watts. 7500 W ~ 10 HP
|
active_power_usage = 7500 //This also doubles as a measure of how powerful the pump is, in Watts. 7500 W ~ 10 HP
|
||||||
|
|
||||||
|
connect_types = list(1,2) //connects to regular and supply pipes
|
||||||
|
|
||||||
var/area/initial_loc
|
var/area/initial_loc
|
||||||
level = 1
|
level = 1
|
||||||
var/area_uid
|
var/area_uid
|
||||||
@@ -64,7 +66,7 @@
|
|||||||
/obj/machinery/atmospherics/unary/vent_pump/New()
|
/obj/machinery/atmospherics/unary/vent_pump/New()
|
||||||
..()
|
..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP
|
||||||
|
|
||||||
icon = null
|
icon = null
|
||||||
initial_loc = get_area(loc)
|
initial_loc = get_area(loc)
|
||||||
if (initial_loc.master)
|
if (initial_loc.master)
|
||||||
@@ -87,13 +89,13 @@
|
|||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
|
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
|
||||||
if(!check_icon_cache())
|
if(!check_icon_cache())
|
||||||
return
|
return
|
||||||
if (!node)
|
if (!node)
|
||||||
on = 0
|
on = 0
|
||||||
|
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
|
|
||||||
var/vent_icon = "vent"
|
var/vent_icon = "vent"
|
||||||
|
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
@@ -102,7 +104,7 @@
|
|||||||
|
|
||||||
if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||||
vent_icon += "h"
|
vent_icon += "h"
|
||||||
|
|
||||||
if(welded)
|
if(welded)
|
||||||
vent_icon += "weld"
|
vent_icon += "weld"
|
||||||
else if(!powered())
|
else if(!powered())
|
||||||
@@ -121,7 +123,10 @@
|
|||||||
if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
add_underlay(T, node, dir)
|
if(node)
|
||||||
|
add_underlay(T, node, dir, node.icon_connect_type)
|
||||||
|
else
|
||||||
|
add_underlay(T,, dir)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/hide()
|
/obj/machinery/atmospherics/unary/vent_pump/hide()
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -138,7 +143,7 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/process()
|
/obj/machinery/atmospherics/unary/vent_pump/process()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
on = 0
|
on = 0
|
||||||
if(!can_pump())
|
if(!can_pump())
|
||||||
@@ -150,27 +155,27 @@
|
|||||||
var/datum/gas_mixture/environment = loc.return_air()
|
var/datum/gas_mixture/environment = loc.return_air()
|
||||||
|
|
||||||
var/power_draw = -1
|
var/power_draw = -1
|
||||||
|
|
||||||
//Figure out the target pressure difference
|
//Figure out the target pressure difference
|
||||||
var/pressure_delta = get_pressure_delta(environment)
|
var/pressure_delta = get_pressure_delta(environment)
|
||||||
//src.visible_message("DEBUG >>> [src]: pressure_delta = [pressure_delta]")
|
//src.visible_message("DEBUG >>> [src]: pressure_delta = [pressure_delta]")
|
||||||
|
|
||||||
if((environment.temperature || air_contents.temperature) && pressure_delta > 0.5)
|
if((environment.temperature || air_contents.temperature) && pressure_delta > 0.5)
|
||||||
if(pump_direction) //internal -> external
|
if(pump_direction) //internal -> external
|
||||||
var/output_volume = environment.volume * environment.group_multiplier
|
var/output_volume = environment.volume * environment.group_multiplier
|
||||||
var/air_temperature = environment.temperature? environment.temperature : air_contents.temperature
|
var/air_temperature = environment.temperature? environment.temperature : air_contents.temperature
|
||||||
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
|
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
|
||||||
//src.visible_message("DEBUG >>> [src]: output_volume = [output_volume]L; air_temperature = [air_temperature]K; transfer_moles = [transfer_moles] mol")
|
//src.visible_message("DEBUG >>> [src]: output_volume = [output_volume]L; air_temperature = [air_temperature]K; transfer_moles = [transfer_moles] mol")
|
||||||
|
|
||||||
power_draw = pump_gas(src, air_contents, environment, transfer_moles, active_power_usage)
|
power_draw = pump_gas(src, air_contents, environment, transfer_moles, active_power_usage)
|
||||||
else //external -> internal
|
else //external -> internal
|
||||||
var/output_volume = air_contents.volume + (network? network.volume : 0)
|
var/output_volume = air_contents.volume + (network? network.volume : 0)
|
||||||
var/air_temperature = air_contents.temperature? air_contents.temperature : environment.temperature
|
var/air_temperature = air_contents.temperature? air_contents.temperature : environment.temperature
|
||||||
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
|
var/transfer_moles = pressure_delta*output_volume/(air_temperature * R_IDEAL_GAS_EQUATION)
|
||||||
|
|
||||||
//limit flow rate from turfs
|
//limit flow rate from turfs
|
||||||
transfer_moles = min(transfer_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
|
transfer_moles = min(transfer_moles, environment.total_moles*MAX_SIPHON_FLOWRATE/environment.volume) //group_multiplier gets divided out here
|
||||||
|
|
||||||
power_draw = pump_gas(src, environment, air_contents, transfer_moles, active_power_usage)
|
power_draw = pump_gas(src, environment, air_contents, transfer_moles, active_power_usage)
|
||||||
|
|
||||||
if (power_draw < 0)
|
if (power_draw < 0)
|
||||||
@@ -182,13 +187,13 @@
|
|||||||
last_power_draw = handle_power_draw(power_draw)
|
last_power_draw = handle_power_draw(power_draw)
|
||||||
if(network)
|
if(network)
|
||||||
network.update = 1
|
network.update = 1
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_pump/proc/get_pressure_delta(datum/gas_mixture/environment)
|
/obj/machinery/atmospherics/unary/vent_pump/proc/get_pressure_delta(datum/gas_mixture/environment)
|
||||||
var/pressure_delta = DEFAULT_PRESSURE_DELTA
|
var/pressure_delta = DEFAULT_PRESSURE_DELTA
|
||||||
var/environment_pressure = environment.return_pressure()
|
var/environment_pressure = environment.return_pressure()
|
||||||
|
|
||||||
if(pump_direction) //internal -> external
|
if(pump_direction) //internal -> external
|
||||||
if(pressure_checks & PRESSURE_CHECK_EXTERNAL)
|
if(pressure_checks & PRESSURE_CHECK_EXTERNAL)
|
||||||
pressure_delta = min(pressure_delta, external_pressure_bound - environment_pressure) //increasing the pressure here
|
pressure_delta = min(pressure_delta, external_pressure_bound - environment_pressure) //increasing the pressure here
|
||||||
@@ -199,7 +204,7 @@
|
|||||||
pressure_delta = min(pressure_delta, environment_pressure - external_pressure_bound) //decreasing the pressure here
|
pressure_delta = min(pressure_delta, environment_pressure - external_pressure_bound) //decreasing the pressure here
|
||||||
if(pressure_checks & PRESSURE_CHECK_INTERNAL)
|
if(pressure_checks & PRESSURE_CHECK_INTERNAL)
|
||||||
pressure_delta = min(pressure_delta, internal_pressure_bound - air_contents.return_pressure()) //increasing the pressure here
|
pressure_delta = min(pressure_delta, internal_pressure_bound - air_contents.return_pressure()) //increasing the pressure here
|
||||||
|
|
||||||
return pressure_delta
|
return pressure_delta
|
||||||
|
|
||||||
//Radio remote control
|
//Radio remote control
|
||||||
@@ -282,7 +287,7 @@
|
|||||||
|
|
||||||
if(signal.data["checks_toggle"] != null)
|
if(signal.data["checks_toggle"] != null)
|
||||||
pressure_checks = (pressure_checks?0:3)
|
pressure_checks = (pressure_checks?0:3)
|
||||||
|
|
||||||
if(signal.data["direction"] != null)
|
if(signal.data["direction"] != null)
|
||||||
pump_direction = text2num(signal.data["direction"])
|
pump_direction = text2num(signal.data["direction"])
|
||||||
|
|
||||||
@@ -325,7 +330,7 @@
|
|||||||
if(signal.data["init"] != null)
|
if(signal.data["init"] != null)
|
||||||
name = signal.data["init"]
|
name = signal.data["init"]
|
||||||
return
|
return
|
||||||
|
|
||||||
if(signal.data["status"] != null)
|
if(signal.data["status"] != null)
|
||||||
spawn(2)
|
spawn(2)
|
||||||
broadcast_status()
|
broadcast_status()
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
active_power_usage = 7500 //This also doubles as a measure of how powerful the pump is, in Watts. 7500 W ~ 10 HP
|
active_power_usage = 7500 //This also doubles as a measure of how powerful the pump is, in Watts. 7500 W ~ 10 HP
|
||||||
var/last_power_draw = 0
|
var/last_power_draw = 0
|
||||||
|
|
||||||
|
connect_types = list(1,3) //connects to regular and scrubber pipes
|
||||||
|
|
||||||
level = 1
|
level = 1
|
||||||
|
|
||||||
var/area/initial_loc
|
var/area/initial_loc
|
||||||
@@ -29,7 +31,7 @@
|
|||||||
/obj/machinery/atmospherics/unary/vent_scrubber/New()
|
/obj/machinery/atmospherics/unary/vent_scrubber/New()
|
||||||
..()
|
..()
|
||||||
air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
|
air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
|
||||||
|
|
||||||
icon = null
|
icon = null
|
||||||
initial_loc = get_area(loc)
|
initial_loc = get_area(loc)
|
||||||
if (initial_loc.master)
|
if (initial_loc.master)
|
||||||
@@ -70,7 +72,10 @@
|
|||||||
if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
if(T.intact && node && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
add_underlay(T, node, dir)
|
if(node)
|
||||||
|
add_underlay(T, node, dir, node.icon_connect_type)
|
||||||
|
else
|
||||||
|
add_underlay(T,, dir)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
|
/obj/machinery/atmospherics/unary/vent_scrubber/proc/set_frequency(new_frequency)
|
||||||
radio_controller.remove_object(src, frequency)
|
radio_controller.remove_object(src, frequency)
|
||||||
@@ -130,7 +135,7 @@
|
|||||||
if(scrubbing)
|
if(scrubbing)
|
||||||
//limit flow rate from turfs
|
//limit flow rate from turfs
|
||||||
var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SCRUBBER_FLOWRATE/environment.volume) //group_multiplier gets divided out here
|
var/transfer_moles = min(environment.total_moles, environment.total_moles*MAX_SCRUBBER_FLOWRATE/environment.volume) //group_multiplier gets divided out here
|
||||||
|
|
||||||
power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, active_power_usage)
|
power_draw = scrub_gas(src, scrubbing_gas, environment, air_contents, transfer_moles, active_power_usage)
|
||||||
else //Just siphon all air
|
else //Just siphon all air
|
||||||
//limit flow rate from turfs
|
//limit flow rate from turfs
|
||||||
@@ -145,14 +150,15 @@
|
|||||||
last_flow_rate = 0
|
last_flow_rate = 0
|
||||||
else
|
else
|
||||||
last_power_draw = handle_power_draw(power_draw)
|
last_power_draw = handle_power_draw(power_draw)
|
||||||
|
|
||||||
if(network)
|
if(network)
|
||||||
network.update = 1
|
network.update = 1
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_scrubber/hide(var/i) //to make the little pipe section invisible, the icon changes.
|
/obj/machinery/atmospherics/unary/vent_scrubber/hide(var/i) //to make the little pipe section invisible, the icon changes.
|
||||||
update_icon()
|
update_icon()
|
||||||
|
update_underlays()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/unary/vent_scrubber/receive_signal(datum/signal/signal)
|
/obj/machinery/atmospherics/unary/vent_scrubber/receive_signal(datum/signal/signal)
|
||||||
if(stat & (NOPOWER|BROKEN))
|
if(stat & (NOPOWER|BROKEN))
|
||||||
@@ -186,7 +192,7 @@
|
|||||||
scrubbing = !scrubbing
|
scrubbing = !scrubbing
|
||||||
|
|
||||||
var/list/toggle = list()
|
var/list/toggle = list()
|
||||||
|
|
||||||
if(!isnull(signal.data["co2_scrub"]) && text2num(signal.data["co2_scrub"]) != ("carbon_dioxide" in scrubbing_gas))
|
if(!isnull(signal.data["co2_scrub"]) && text2num(signal.data["co2_scrub"]) != ("carbon_dioxide" in scrubbing_gas))
|
||||||
toggle += "carbon_dioxide"
|
toggle += "carbon_dioxide"
|
||||||
else if(signal.data["toggle_co2_scrub"])
|
else if(signal.data["toggle_co2_scrub"])
|
||||||
|
|||||||
@@ -163,15 +163,23 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
build_network()
|
build_network()
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
@@ -230,7 +238,7 @@
|
|||||||
name = "digital valve"
|
name = "digital valve"
|
||||||
desc = "A digitally controlled valve."
|
desc = "A digitally controlled valve."
|
||||||
icon = 'icons/atmos/digital_valve.dmi'
|
icon = 'icons/atmos/digital_valve.dmi'
|
||||||
|
|
||||||
var/frequency = 0
|
var/frequency = 0
|
||||||
var/id = null
|
var/id = null
|
||||||
var/datum/radio_frequency/radio_connection
|
var/datum/radio_frequency/radio_connection
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
var/volume = 0
|
var/volume = 0
|
||||||
force = 20
|
force = 20
|
||||||
|
|
||||||
layer = 2.4 //under wires with their 2.44
|
//layer = 2.4 //under wires with their 2.44
|
||||||
use_power = 0
|
use_power = 0
|
||||||
|
|
||||||
var/alert_pressure = 80*ONE_ATMOSPHERE
|
var/alert_pressure = 80*ONE_ATMOSPHERE
|
||||||
@@ -105,6 +105,7 @@
|
|||||||
pipe_color = new_color
|
pipe_color = new_color
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
/*
|
||||||
/obj/machinery/atmospherics/pipe/add_underlay(var/obj/machinery/atmospherics/node, var/direction)
|
/obj/machinery/atmospherics/pipe/add_underlay(var/obj/machinery/atmospherics/node, var/direction)
|
||||||
if(istype(src, /obj/machinery/atmospherics/pipe/tank)) //todo: move tanks to unary devices
|
if(istype(src, /obj/machinery/atmospherics/pipe/tank)) //todo: move tanks to unary devices
|
||||||
return ..()
|
return ..()
|
||||||
@@ -117,6 +118,7 @@
|
|||||||
underlays += icon_manager.get_atmos_icon("pipe_underlay_exposed", direction, pipe_color)
|
underlays += icon_manager.get_atmos_icon("pipe_underlay_exposed", direction, pipe_color)
|
||||||
else
|
else
|
||||||
return null
|
return null
|
||||||
|
*/
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/color_cache_name(var/obj/machinery/atmospherics/node)
|
/obj/machinery/atmospherics/pipe/color_cache_name(var/obj/machinery/atmospherics/node)
|
||||||
if(istype(src, /obj/machinery/atmospherics/pipe/tank))
|
if(istype(src, /obj/machinery/atmospherics/pipe/tank))
|
||||||
@@ -134,7 +136,7 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple
|
/obj/machinery/atmospherics/pipe/simple
|
||||||
icon = 'icons/atmos/pipes.dmi'
|
icon = 'icons/atmos/pipes.dmi'
|
||||||
icon_state = ""
|
icon_state = ""
|
||||||
name = "pipe"
|
name = "pipe"
|
||||||
desc = "A one meter section of regular pipe"
|
desc = "A one meter section of regular pipe"
|
||||||
|
|
||||||
@@ -253,9 +255,9 @@
|
|||||||
del(meter)
|
del(meter)
|
||||||
del(src)
|
del(src)
|
||||||
else if(node1 && node2)
|
else if(node1 && node2)
|
||||||
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "intact")
|
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "intact" + icon_connect_type)
|
||||||
else
|
else
|
||||||
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "exposed[node1?1:0][node2?1:0]")
|
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "exposed[node1?1:0][node2?1:0]" + icon_connect_type)
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/update_underlays()
|
/obj/machinery/atmospherics/pipe/simple/update_underlays()
|
||||||
return
|
return
|
||||||
@@ -274,12 +276,20 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
if(!node1 && !node2)
|
if(!node1 && !node2)
|
||||||
del(src)
|
del(src)
|
||||||
@@ -305,16 +315,26 @@
|
|||||||
|
|
||||||
return null
|
return null
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/visible
|
/obj/machinery/atmospherics/pipe/simple/visible
|
||||||
icon_state = "intact"
|
icon_state = "intact"
|
||||||
level = 2
|
level = 2
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/visible/scrubbers
|
/obj/machinery/atmospherics/pipe/simple/visible/scrubbers
|
||||||
name = "Scrubbers pipe"
|
name = "Scrubbers pipe"
|
||||||
|
desc = "A one meter section of scrubbers pipe"
|
||||||
|
icon = 'icons/obj/pipes_scrubbers.dmi'
|
||||||
|
connect_types = list(3)
|
||||||
|
layer = 2.38
|
||||||
|
icon_connect_type = "-scrubbers"
|
||||||
color = PIPE_COLOR_RED
|
color = PIPE_COLOR_RED
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/visible/supply
|
/obj/machinery/atmospherics/pipe/simple/visible/supply
|
||||||
name = "Air supply pipe"
|
name = "Air supply pipe"
|
||||||
|
desc = "A one meter section of supply pipe"
|
||||||
|
icon = 'icons/obj/pipes_supply.dmi'
|
||||||
|
connect_types = list(2)
|
||||||
|
layer = 2.39
|
||||||
|
icon_connect_type = "-supply"
|
||||||
color = PIPE_COLOR_BLUE
|
color = PIPE_COLOR_BLUE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/visible/yellow
|
/obj/machinery/atmospherics/pipe/simple/visible/yellow
|
||||||
@@ -329,19 +349,131 @@
|
|||||||
/obj/machinery/atmospherics/pipe/simple/visible/purple
|
/obj/machinery/atmospherics/pipe/simple/visible/purple
|
||||||
color = PIPE_COLOR_PURPLE
|
color = PIPE_COLOR_PURPLE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden
|
/obj/machinery/atmospherics/pipe/simple/hidden
|
||||||
icon_state = "intact"
|
icon_state = "intact"
|
||||||
level = 1
|
level = 1
|
||||||
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
|
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers
|
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers
|
||||||
name = "Scrubbers pipe"
|
name = "Scrubbers pipe"
|
||||||
|
desc = "A one meter section of scrubbers pipe"
|
||||||
|
icon = 'icons/obj/pipes_scrubbers.dmi'
|
||||||
|
connect_types = list(3)
|
||||||
|
layer = 2.38
|
||||||
|
icon_connect_type = "-scrubbers"
|
||||||
color = PIPE_COLOR_RED
|
color = PIPE_COLOR_RED
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply
|
/obj/machinery/atmospherics/pipe/simple/hidden/supply
|
||||||
name = "Air supply pipe"
|
name = "Air supply pipe"
|
||||||
|
desc = "A one meter section of supply pipe"
|
||||||
|
icon = 'icons/obj/pipes_supply.dmi'
|
||||||
|
connect_types = list(2)
|
||||||
|
layer = 2.39
|
||||||
|
icon_connect_type = "-supply"
|
||||||
color = PIPE_COLOR_BLUE
|
color = PIPE_COLOR_BLUE
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/visible/universal
|
||||||
|
name="Universal pipe adapter"
|
||||||
|
desc = "An adapter for regular, supply and scrubbers pipes"
|
||||||
|
connect_types = list(1,2,3)
|
||||||
|
icon_state = "map_universal"
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_icon(var/safety = 0)
|
||||||
|
if(!check_icon_cache())
|
||||||
|
return
|
||||||
|
|
||||||
|
alpha = 255
|
||||||
|
|
||||||
|
overlays.Cut()
|
||||||
|
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "universal")
|
||||||
|
underlays.Cut()
|
||||||
|
|
||||||
|
if (node1)
|
||||||
|
universal_underlays(node1)
|
||||||
|
if(node2)
|
||||||
|
universal_underlays(node2)
|
||||||
|
else
|
||||||
|
var/node1_dir = get_dir(node1,src)
|
||||||
|
universal_underlays(,node1_dir)
|
||||||
|
else if (node2)
|
||||||
|
universal_underlays(node2)
|
||||||
|
else
|
||||||
|
universal_underlays(,dir)
|
||||||
|
universal_underlays(dir, -180)
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/visible/universal/update_underlays()
|
||||||
|
..()
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/universal
|
||||||
|
name="Universal pipe adapter"
|
||||||
|
desc = "An adapter for regular, supply and scrubbers pipes"
|
||||||
|
connect_types = list(1,2,3)
|
||||||
|
icon_state = "map_universal"
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_icon(var/safety = 0)
|
||||||
|
if(!check_icon_cache())
|
||||||
|
return
|
||||||
|
|
||||||
|
alpha = 255
|
||||||
|
|
||||||
|
overlays.Cut()
|
||||||
|
overlays += icon_manager.get_atmos_icon("pipe", , pipe_color, "universal")
|
||||||
|
underlays.Cut()
|
||||||
|
|
||||||
|
if (node1)
|
||||||
|
universal_underlays(node1)
|
||||||
|
if(node2)
|
||||||
|
universal_underlays(node2)
|
||||||
|
else
|
||||||
|
var/node2_dir = turn(get_dir(src,node1),-180)
|
||||||
|
universal_underlays(,node2_dir)
|
||||||
|
else if (node2)
|
||||||
|
universal_underlays(node2)
|
||||||
|
var/node1_dir = turn(get_dir(src,node2),-180)
|
||||||
|
universal_underlays(,node1_dir)
|
||||||
|
else
|
||||||
|
universal_underlays(,dir)
|
||||||
|
universal_underlays(,turn(dir, -180))
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/pipe/simple/hidden/universal/update_underlays()
|
||||||
|
..()
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/proc/universal_underlays(var/obj/machinery/atmospherics/node, var/direction)
|
||||||
|
var/turf/T = loc
|
||||||
|
if(node)
|
||||||
|
var/node_dir = get_dir(src,node)
|
||||||
|
if(node.icon_connect_type == "-supply")
|
||||||
|
add_underlay_adapter(T, , node_dir, "")
|
||||||
|
add_underlay_adapter(T, node, node_dir, "-supply")
|
||||||
|
add_underlay_adapter(T, , node_dir, "-scrubbers")
|
||||||
|
else if (node.icon_connect_type == "-scrubbers")
|
||||||
|
add_underlay_adapter(T, , node_dir, "")
|
||||||
|
add_underlay_adapter(T, , node_dir, "-supply")
|
||||||
|
add_underlay_adapter(T, node, node_dir, "-scrubbers")
|
||||||
|
else
|
||||||
|
add_underlay_adapter(T, node, node_dir, "")
|
||||||
|
add_underlay_adapter(T, , node_dir, "-supply")
|
||||||
|
add_underlay_adapter(T, , node_dir, "-scrubbers")
|
||||||
|
else
|
||||||
|
add_underlay_adapter(T, , direction, "-supply")
|
||||||
|
add_underlay_adapter(T, , direction, "-scrubbers")
|
||||||
|
add_underlay_adapter(T, , direction, "")
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/proc/add_underlay_adapter(var/turf/T, var/obj/machinery/atmospherics/node, var/direction, var/icon_connect_type) //modified from add_underlay, does not make exposed underlays
|
||||||
|
if(node)
|
||||||
|
if(T.intact && node.level == 1 && istype(node, /obj/machinery/atmospherics/pipe))
|
||||||
|
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "down" + icon_connect_type)
|
||||||
|
else
|
||||||
|
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "intact" + icon_connect_type)
|
||||||
|
else
|
||||||
|
underlays += icon_manager.get_atmos_icon("underlay", direction, color_cache_name(node), "retracted" + icon_connect_type)
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/yellow
|
/obj/machinery/atmospherics/pipe/simple/hidden/yellow
|
||||||
color = PIPE_COLOR_YELLOW
|
color = PIPE_COLOR_YELLOW
|
||||||
|
|
||||||
@@ -368,8 +500,8 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold
|
/obj/machinery/atmospherics/pipe/manifold
|
||||||
icon = 'icons/atmos/manifold.dmi'
|
icon = 'icons/atmos/manifold.dmi'
|
||||||
icon_state = ""
|
icon_state = ""
|
||||||
name = "pipe manifold"
|
name = "pipe manifold"
|
||||||
desc = "A manifold composed of regular pipes"
|
desc = "A manifold composed of regular pipes"
|
||||||
|
|
||||||
@@ -470,19 +602,25 @@
|
|||||||
del(src)
|
del(src)
|
||||||
else
|
else
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "core")
|
overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "core" + icon_connect_type)
|
||||||
overlays += icon_manager.get_atmos_icon("manifold", , , "clamps")
|
overlays += icon_manager.get_atmos_icon("manifold", , , "clamps" + icon_connect_type)
|
||||||
underlays.Cut()
|
underlays.Cut()
|
||||||
|
|
||||||
|
var/turf/T = get_turf(src)
|
||||||
var/list/directions = list(NORTH, SOUTH, EAST, WEST)
|
var/list/directions = list(NORTH, SOUTH, EAST, WEST)
|
||||||
|
var/node1_direction = get_dir(src, node1)
|
||||||
|
var/node2_direction = get_dir(src, node2)
|
||||||
|
var/node3_direction = get_dir(src, node3)
|
||||||
|
|
||||||
directions -= dir
|
directions -= dir
|
||||||
|
|
||||||
directions -= add_underlay(node1)
|
directions -= add_underlay(T,node1,node1_direction,icon_connect_type)
|
||||||
directions -= add_underlay(node2)
|
directions -= add_underlay(T,node2,node2_direction,icon_connect_type)
|
||||||
directions -= add_underlay(node3)
|
directions -= add_underlay(T,node3,node3_direction,icon_connect_type)
|
||||||
|
|
||||||
for(var/D in directions)
|
for(var/D in directions)
|
||||||
add_underlay(,D)
|
add_underlay(T,,D,icon_connect_type)
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/update_underlays()
|
/obj/machinery/atmospherics/pipe/manifold/update_underlays()
|
||||||
..()
|
..()
|
||||||
@@ -495,9 +633,13 @@
|
|||||||
if(direction&connect_directions)
|
if(direction&connect_directions)
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
|
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
connect_directions &= ~direction
|
if (c)
|
||||||
break
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
connect_directions &= ~direction
|
||||||
|
break
|
||||||
if (node1)
|
if (node1)
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -506,9 +648,13 @@
|
|||||||
if(direction&connect_directions)
|
if(direction&connect_directions)
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
|
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
connect_directions &= ~direction
|
if (c)
|
||||||
break
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
connect_directions &= ~direction
|
||||||
|
break
|
||||||
if (node2)
|
if (node2)
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -517,9 +663,13 @@
|
|||||||
if(direction&connect_directions)
|
if(direction&connect_directions)
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
|
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node3 = target
|
var/c = check_connect_types(target,src)
|
||||||
connect_directions &= ~direction
|
if (c)
|
||||||
break
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node3 = target
|
||||||
|
connect_directions &= ~direction
|
||||||
|
break
|
||||||
if (node3)
|
if (node3)
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -529,15 +679,25 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/visible
|
/obj/machinery/atmospherics/pipe/manifold/visible
|
||||||
icon_state = "map"
|
icon_state = "map"
|
||||||
level = 2
|
level = 2
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers
|
/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers
|
||||||
name = "Scrubbers pipe"
|
name="Scrubbers pipe manifold"
|
||||||
|
desc = "A manifold composed of scrubbers pipes"
|
||||||
|
icon_state = "map-scrubbers"
|
||||||
|
connect_types = list(3)
|
||||||
|
layer = 2.38
|
||||||
|
icon_connect_type = "-scrubbers"
|
||||||
color = PIPE_COLOR_RED
|
color = PIPE_COLOR_RED
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/visible/supply
|
/obj/machinery/atmospherics/pipe/manifold/visible/supply
|
||||||
name = "Air supply pipe"
|
name="Air supply pipe manifold"
|
||||||
|
desc = "A manifold composed of supply pipes"
|
||||||
|
icon_state = "map-supply"
|
||||||
|
connect_types = list(2)
|
||||||
|
layer = 2.39
|
||||||
|
icon_connect_type = "-supply"
|
||||||
color = PIPE_COLOR_BLUE
|
color = PIPE_COLOR_BLUE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/visible/yellow
|
/obj/machinery/atmospherics/pipe/manifold/visible/yellow
|
||||||
@@ -553,16 +713,26 @@
|
|||||||
color = PIPE_COLOR_PURPLE
|
color = PIPE_COLOR_PURPLE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hidden
|
/obj/machinery/atmospherics/pipe/manifold/hidden
|
||||||
icon_state = "map"
|
icon_state = "map"
|
||||||
level = 1
|
level = 1
|
||||||
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
|
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers
|
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers
|
||||||
name = "Scrubbers pipe"
|
name="Scrubbers pipe manifold"
|
||||||
|
desc = "A manifold composed of scrubbers pipes"
|
||||||
|
icon_state = "map-scrubbers"
|
||||||
|
connect_types = list(3)
|
||||||
|
layer = 2.38
|
||||||
|
icon_connect_type = "-scrubbers"
|
||||||
color = PIPE_COLOR_RED
|
color = PIPE_COLOR_RED
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hidden/supply
|
/obj/machinery/atmospherics/pipe/manifold/hidden/supply
|
||||||
name = "Air supply pipe"
|
name="Air supply pipe manifold"
|
||||||
|
desc = "A manifold composed of supply pipes"
|
||||||
|
icon_state = "map-supply"
|
||||||
|
connect_types = list(2)
|
||||||
|
layer = 2.39
|
||||||
|
icon_connect_type = "-supply"
|
||||||
color = PIPE_COLOR_BLUE
|
color = PIPE_COLOR_BLUE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold/hidden/yellow
|
/obj/machinery/atmospherics/pipe/manifold/hidden/yellow
|
||||||
@@ -578,8 +748,8 @@
|
|||||||
color = PIPE_COLOR_PURPLE
|
color = PIPE_COLOR_PURPLE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w
|
/obj/machinery/atmospherics/pipe/manifold4w
|
||||||
icon = 'icons/atmos/manifold.dmi'
|
icon = 'icons/atmos/manifold.dmi'
|
||||||
icon_state = ""
|
icon_state = ""
|
||||||
name = "4-way pipe manifold"
|
name = "4-way pipe manifold"
|
||||||
desc = "A manifold composed of regular pipes"
|
desc = "A manifold composed of regular pipes"
|
||||||
|
|
||||||
@@ -675,12 +845,14 @@
|
|||||||
del(src)
|
del(src)
|
||||||
else
|
else
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "4way")
|
overlays += icon_manager.get_atmos_icon("manifold", , pipe_color, "4way" + icon_connect_type)
|
||||||
overlays += icon_manager.get_atmos_icon("manifold", , , "clamps_4way")
|
overlays += icon_manager.get_atmos_icon("manifold", , , "clamps_4way" + icon_connect_type)
|
||||||
underlays.Cut()
|
underlays.Cut()
|
||||||
|
|
||||||
|
/*
|
||||||
var/list/directions = list(NORTH, SOUTH, EAST, WEST)
|
var/list/directions = list(NORTH, SOUTH, EAST, WEST)
|
||||||
|
|
||||||
|
|
||||||
directions -= add_underlay(node1)
|
directions -= add_underlay(node1)
|
||||||
directions -= add_underlay(node2)
|
directions -= add_underlay(node2)
|
||||||
directions -= add_underlay(node3)
|
directions -= add_underlay(node3)
|
||||||
@@ -688,6 +860,25 @@
|
|||||||
|
|
||||||
for(var/D in directions)
|
for(var/D in directions)
|
||||||
add_underlay(,D)
|
add_underlay(,D)
|
||||||
|
*/
|
||||||
|
|
||||||
|
var/turf/T = get_turf(src)
|
||||||
|
var/list/directions = list(NORTH, SOUTH, EAST, WEST)
|
||||||
|
var/node1_direction = get_dir(src, node1)
|
||||||
|
var/node2_direction = get_dir(src, node2)
|
||||||
|
var/node3_direction = get_dir(src, node3)
|
||||||
|
var/node4_direction = get_dir(src, node4)
|
||||||
|
|
||||||
|
directions -= dir
|
||||||
|
|
||||||
|
directions -= add_underlay(T,node1,node1_direction,icon_connect_type)
|
||||||
|
directions -= add_underlay(T,node2,node2_direction,icon_connect_type)
|
||||||
|
directions -= add_underlay(T,node3,node3_direction,icon_connect_type)
|
||||||
|
directions -= add_underlay(T,node4,node4_direction,icon_connect_type)
|
||||||
|
|
||||||
|
for(var/D in directions)
|
||||||
|
add_underlay(T,,D,icon_connect_type)
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/update_underlays()
|
/obj/machinery/atmospherics/pipe/manifold4w/update_underlays()
|
||||||
..()
|
..()
|
||||||
@@ -702,39 +893,65 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,1))
|
for(var/obj/machinery/atmospherics/target in get_step(src,1))
|
||||||
if(target.initialize_directions & 2)
|
if(target.initialize_directions & 2)
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,2))
|
for(var/obj/machinery/atmospherics/target in get_step(src,2))
|
||||||
if(target.initialize_directions & 1)
|
if(target.initialize_directions & 1)
|
||||||
node2 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node2 = target
|
||||||
|
break
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,4))
|
for(var/obj/machinery/atmospherics/target in get_step(src,4))
|
||||||
if(target.initialize_directions & 8)
|
if(target.initialize_directions & 8)
|
||||||
node3 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node3 = target
|
||||||
|
break
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,8))
|
for(var/obj/machinery/atmospherics/target in get_step(src,8))
|
||||||
if(target.initialize_directions & 4)
|
if(target.initialize_directions & 4)
|
||||||
node4 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node4 = target
|
||||||
|
break
|
||||||
|
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
if(istype(T))
|
if(istype(T))
|
||||||
hide(T.intact)
|
hide(T.intact)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/visible
|
/obj/machinery/atmospherics/pipe/manifold4w/visible
|
||||||
icon_state = "map_4way"
|
icon_state = "map_4way"
|
||||||
level = 2
|
level = 2
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers
|
/obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers
|
||||||
name = "Scrubbers pipe"
|
name="4-way scrubbers pipe manifold"
|
||||||
|
desc = "A manifold composed of scrubbers pipes"
|
||||||
|
icon_state = "map_4way-scrubbers"
|
||||||
|
connect_types = list(3)
|
||||||
|
layer = 2.38
|
||||||
|
icon_connect_type = "-scrubbers"
|
||||||
color = PIPE_COLOR_RED
|
color = PIPE_COLOR_RED
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/visible/supply
|
/obj/machinery/atmospherics/pipe/manifold4w/visible/supply
|
||||||
name = "Air supply pipe"
|
name="4-way air supply pipe manifold"
|
||||||
|
desc = "A manifold composed of supply pipes"
|
||||||
|
icon_state = "map_4way-supply"
|
||||||
|
connect_types = list(2)
|
||||||
|
layer = 2.39
|
||||||
|
icon_connect_type = "-supply"
|
||||||
color = PIPE_COLOR_BLUE
|
color = PIPE_COLOR_BLUE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow
|
/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow
|
||||||
@@ -749,17 +966,27 @@
|
|||||||
/obj/machinery/atmospherics/pipe/manifold4w/visible/purple
|
/obj/machinery/atmospherics/pipe/manifold4w/visible/purple
|
||||||
color = PIPE_COLOR_PURPLE
|
color = PIPE_COLOR_PURPLE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/hidden
|
/obj/machinery/atmospherics/pipe/manifold4w/hidden
|
||||||
icon_state = "map_4way"
|
icon_state = "map_4way"
|
||||||
level = 1
|
level = 1
|
||||||
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
|
alpha = 128 //set for the benefit of mapping - this is reset to opaque when the pipe is spawned in game
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers
|
/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers
|
||||||
name = "Scrubbers pipe"
|
name="4-way scrubbers pipe manifold"
|
||||||
|
desc = "A manifold composed of scrubbers pipes"
|
||||||
|
icon_state = "map_4way-scrubbers"
|
||||||
|
connect_types = list(3)
|
||||||
|
layer = 2.38
|
||||||
|
icon_connect_type = "-scrubbers"
|
||||||
color = PIPE_COLOR_RED
|
color = PIPE_COLOR_RED
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply
|
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply
|
||||||
name = "Air supply pipe"
|
name="4-way air supply pipe manifold"
|
||||||
|
desc = "A manifold composed of supply pipes"
|
||||||
|
icon_state = "map_4way-supply"
|
||||||
|
connect_types = list(2)
|
||||||
|
layer = 2.39
|
||||||
|
icon_connect_type = "-supply"
|
||||||
color = PIPE_COLOR_BLUE
|
color = PIPE_COLOR_BLUE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow
|
/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow
|
||||||
@@ -839,8 +1066,12 @@
|
|||||||
/obj/machinery/atmospherics/pipe/cap/initialize()
|
/obj/machinery/atmospherics/pipe/cap/initialize()
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src, dir))
|
for(var/obj/machinery/atmospherics/target in get_step(src, dir))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node = target
|
||||||
|
break
|
||||||
|
|
||||||
var/turf/T = src.loc // hide if turf is not intact
|
var/turf/T = src.loc // hide if turf is not intact
|
||||||
hide(T.intact)
|
hide(T.intact)
|
||||||
@@ -907,8 +1138,12 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction))
|
for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
update_underlays()
|
update_underlays()
|
||||||
|
|
||||||
@@ -1088,8 +1323,12 @@
|
|||||||
|
|
||||||
for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction))
|
for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction))
|
||||||
if(target.initialize_directions & get_dir(target,src))
|
if(target.initialize_directions & get_dir(target,src))
|
||||||
node1 = target
|
var/c = check_connect_types(target,src)
|
||||||
break
|
if (c)
|
||||||
|
target.connected_to = c
|
||||||
|
src.connected_to = c
|
||||||
|
node1 = target
|
||||||
|
break
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,16 @@ Buildable meters
|
|||||||
#define PIPE_GAS_MIXER_M 25
|
#define PIPE_GAS_MIXER_M 25
|
||||||
#define PIPE_OMNI_MIXER 26
|
#define PIPE_OMNI_MIXER 26
|
||||||
#define PIPE_OMNI_FILTER 27
|
#define PIPE_OMNI_FILTER 27
|
||||||
|
///// Supply, scrubbers and universal pipes
|
||||||
|
#define PIPE_UNIVERSAL 28
|
||||||
|
#define PIPE_SUPPLY_STRAIGHT 29
|
||||||
|
#define PIPE_SUPPLY_BENT 30
|
||||||
|
#define PIPE_SCRUBBERS_STRAIGHT 31
|
||||||
|
#define PIPE_SCRUBBERS_BENT 32
|
||||||
|
#define PIPE_SUPPLY_MANIFOLD 33
|
||||||
|
#define PIPE_SCRUBBERS_MANIFOLD 34
|
||||||
|
#define PIPE_SUPPLY_MANIFOLD4W 35
|
||||||
|
#define PIPE_SCRUBBERS_MANIFOLD4W 36
|
||||||
|
|
||||||
/obj/item/pipe
|
/obj/item/pipe
|
||||||
name = "pipe"
|
name = "pipe"
|
||||||
@@ -39,6 +49,7 @@ Buildable meters
|
|||||||
var/pipe_type = 0
|
var/pipe_type = 0
|
||||||
//var/pipe_dir = 0
|
//var/pipe_dir = 0
|
||||||
var/pipename
|
var/pipename
|
||||||
|
var/connect_types[] = list(1) //1=regular, 2=supply, 3=scrubber
|
||||||
force = 7
|
force = 7
|
||||||
icon = 'icons/obj/pipe-item.dmi'
|
icon = 'icons/obj/pipe-item.dmi'
|
||||||
icon_state = "simple"
|
icon_state = "simple"
|
||||||
@@ -64,10 +75,29 @@ Buildable meters
|
|||||||
src.pipe_type = PIPE_HE_STRAIGHT + is_bent
|
src.pipe_type = PIPE_HE_STRAIGHT + is_bent
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/insulated))
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/insulated))
|
||||||
src.pipe_type = PIPE_INSULATED_STRAIGHT + is_bent
|
src.pipe_type = PIPE_INSULATED_STRAIGHT + is_bent
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/simple/hidden/supply))
|
||||||
|
src.pipe_type = PIPE_SUPPLY_STRAIGHT + is_bent
|
||||||
|
connect_types = list(2)
|
||||||
|
src.color = PIPE_COLOR_BLUE
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers))
|
||||||
|
src.pipe_type = PIPE_SCRUBBERS_STRAIGHT + is_bent
|
||||||
|
connect_types = list(3)
|
||||||
|
src.color = PIPE_COLOR_RED
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/visible/universal) || istype(make_from, /obj/machinery/atmospherics/pipe/simple/hidden/universal))
|
||||||
|
src.pipe_type = PIPE_UNIVERSAL
|
||||||
|
connect_types = list(1,2,3)
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple))
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple))
|
||||||
src.pipe_type = PIPE_SIMPLE_STRAIGHT + is_bent
|
src.pipe_type = PIPE_SIMPLE_STRAIGHT + is_bent
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/portables_connector))
|
else if(istype(make_from, /obj/machinery/atmospherics/portables_connector))
|
||||||
src.pipe_type = PIPE_CONNECTOR
|
src.pipe_type = PIPE_CONNECTOR
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold/hidden/supply))
|
||||||
|
src.pipe_type = PIPE_SUPPLY_MANIFOLD
|
||||||
|
connect_types = list(2)
|
||||||
|
src.color = PIPE_COLOR_BLUE
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers))
|
||||||
|
src.pipe_type = PIPE_SCRUBBERS_MANIFOLD
|
||||||
|
connect_types = list(3)
|
||||||
|
src.color = PIPE_COLOR_RED
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold))
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold))
|
||||||
src.pipe_type = PIPE_MANIFOLD
|
src.pipe_type = PIPE_MANIFOLD
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_pump))
|
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_pump))
|
||||||
@@ -96,6 +126,14 @@ Buildable meters
|
|||||||
src.pipe_type = PIPE_HEAT_EXCHANGE
|
src.pipe_type = PIPE_HEAT_EXCHANGE
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/tvalve))
|
else if(istype(make_from, /obj/machinery/atmospherics/tvalve))
|
||||||
src.pipe_type = PIPE_MTVALVE
|
src.pipe_type = PIPE_MTVALVE
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply))
|
||||||
|
src.pipe_type = PIPE_SUPPLY_MANIFOLD4W
|
||||||
|
connect_types = list(2)
|
||||||
|
src.color = PIPE_COLOR_BLUE
|
||||||
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/visible/scrubbers) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers))
|
||||||
|
src.pipe_type = PIPE_SCRUBBERS_MANIFOLD4W
|
||||||
|
connect_types = list(3)
|
||||||
|
src.color = PIPE_COLOR_RED
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w))
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w))
|
||||||
src.pipe_type = PIPE_MANIFOLD4W
|
src.pipe_type = PIPE_MANIFOLD4W
|
||||||
else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap))
|
else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap))
|
||||||
@@ -113,6 +151,14 @@ Buildable meters
|
|||||||
else
|
else
|
||||||
src.pipe_type = pipe_type
|
src.pipe_type = pipe_type
|
||||||
src.dir = dir
|
src.dir = dir
|
||||||
|
if (pipe_type == 29 || pipe_type == 30 || pipe_type == 33 || pipe_type == 35)
|
||||||
|
connect_types = list(2)
|
||||||
|
src.color = PIPE_COLOR_BLUE
|
||||||
|
else if (pipe_type == 31 || pipe_type == 32 || pipe_type == 34 || pipe_type == 36)
|
||||||
|
connect_types = list(3)
|
||||||
|
src.color = PIPE_COLOR_RED
|
||||||
|
else if (pipe_type == 28)
|
||||||
|
connect_types = list(1,2,3)
|
||||||
//src.pipe_dir = get_pipe_dir()
|
//src.pipe_dir = get_pipe_dir()
|
||||||
update()
|
update()
|
||||||
src.pixel_x = rand(-5, 5)
|
src.pixel_x = rand(-5, 5)
|
||||||
@@ -151,7 +197,17 @@ Buildable meters
|
|||||||
"gas mixer t", \
|
"gas mixer t", \
|
||||||
"gas mixer m", \
|
"gas mixer m", \
|
||||||
"omni mixer", \
|
"omni mixer", \
|
||||||
"omni filter"
|
"omni filter", \
|
||||||
|
///// Supply and scrubbers pipes
|
||||||
|
"universal pipe adapter", \
|
||||||
|
"supply pipe", \
|
||||||
|
"bent supply pipe", \
|
||||||
|
"scrubbers pipe", \
|
||||||
|
"bent scrubbers pipe", \
|
||||||
|
"supply manifold", \
|
||||||
|
"scrubbers manifold", \
|
||||||
|
"supply 4-way manifold", \
|
||||||
|
"scrubbers 4-way manifold", \
|
||||||
)
|
)
|
||||||
name = nlist[pipe_type+1] + " fitting"
|
name = nlist[pipe_type+1] + " fitting"
|
||||||
var/list/islist = list( \
|
var/list/islist = list( \
|
||||||
@@ -184,7 +240,17 @@ Buildable meters
|
|||||||
"t_mixer", \
|
"t_mixer", \
|
||||||
"m_mixer", \
|
"m_mixer", \
|
||||||
"omni_mixer", \
|
"omni_mixer", \
|
||||||
"omni_filter"
|
"omni_filter", \
|
||||||
|
///// Supply and scrubbers pipes
|
||||||
|
"universal", \
|
||||||
|
"simple", \
|
||||||
|
"simple", \
|
||||||
|
"simple", \
|
||||||
|
"simple", \
|
||||||
|
"manifold", \
|
||||||
|
"manifold", \
|
||||||
|
"manifold4w", \
|
||||||
|
"manifold4w", \
|
||||||
)
|
)
|
||||||
icon_state = islist[pipe_type + 1]
|
icon_state = islist[pipe_type + 1]
|
||||||
|
|
||||||
@@ -208,22 +274,22 @@ Buildable meters
|
|||||||
|
|
||||||
src.dir = turn(src.dir, -90)
|
src.dir = turn(src.dir, -90)
|
||||||
|
|
||||||
if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
|
if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
|
||||||
if(dir==2)
|
if(dir==2)
|
||||||
dir = 1
|
dir = 1
|
||||||
else if(dir==8)
|
else if(dir==8)
|
||||||
dir = 4
|
dir = 4
|
||||||
else if (pipe_type == PIPE_MANIFOLD4W)
|
else if (pipe_type in list (PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W))
|
||||||
dir = 2
|
dir = 2
|
||||||
//src.pipe_dir = get_pipe_dir()
|
//src.pipe_dir = get_pipe_dir()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/pipe/Move()
|
/obj/item/pipe/Move()
|
||||||
..()
|
..()
|
||||||
if ((pipe_type in list (PIPE_SIMPLE_BENT, PIPE_HE_BENT, PIPE_INSULATED_BENT)) \
|
if ((pipe_type in list (PIPE_SIMPLE_BENT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_BENT, PIPE_HE_BENT, PIPE_INSULATED_BENT)) \
|
||||||
&& (src.dir in cardinal))
|
&& (src.dir in cardinal))
|
||||||
src.dir = src.dir|turn(src.dir, 90)
|
src.dir = src.dir|turn(src.dir, 90)
|
||||||
else if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
|
else if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
|
||||||
if(dir==2)
|
if(dir==2)
|
||||||
dir = 1
|
dir = 1
|
||||||
else if(dir==8)
|
else if(dir==8)
|
||||||
@@ -247,16 +313,19 @@ Buildable meters
|
|||||||
PIPE_PUMP ,\
|
PIPE_PUMP ,\
|
||||||
PIPE_VOLUME_PUMP ,\
|
PIPE_VOLUME_PUMP ,\
|
||||||
PIPE_PASSIVE_GATE ,\
|
PIPE_PASSIVE_GATE ,\
|
||||||
PIPE_MVALVE \
|
PIPE_MVALVE, \
|
||||||
|
PIPE_SUPPLY_STRAIGHT, \
|
||||||
|
PIPE_SCRUBBERS_STRAIGHT, \
|
||||||
|
PIPE_UNIVERSAL, \
|
||||||
)
|
)
|
||||||
return dir|flip
|
return dir|flip
|
||||||
if(PIPE_SIMPLE_BENT, PIPE_INSULATED_BENT, PIPE_HE_BENT)
|
if(PIPE_SIMPLE_BENT, PIPE_INSULATED_BENT, PIPE_HE_BENT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_BENT)
|
||||||
return dir //dir|acw
|
return dir //dir|acw
|
||||||
if(PIPE_CONNECTOR,PIPE_UVENT,PIPE_SCRUBBER,PIPE_HEAT_EXCHANGE)
|
if(PIPE_CONNECTOR,PIPE_UVENT,PIPE_SCRUBBER,PIPE_HEAT_EXCHANGE)
|
||||||
return dir
|
return dir
|
||||||
if(PIPE_MANIFOLD4W, PIPE_OMNI_MIXER, PIPE_OMNI_FILTER)
|
if(PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_OMNI_MIXER, PIPE_OMNI_FILTER)
|
||||||
return dir|flip|cw|acw
|
return dir|flip|cw|acw
|
||||||
if(PIPE_MANIFOLD)
|
if(PIPE_MANIFOLD, PIPE_SUPPLY_MANIFOLD, PIPE_SCRUBBERS_MANIFOLD)
|
||||||
return flip|cw|acw
|
return flip|cw|acw
|
||||||
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE)
|
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE)
|
||||||
return dir|flip|cw
|
return dir|flip|cw
|
||||||
@@ -314,18 +383,18 @@ Buildable meters
|
|||||||
return ..()
|
return ..()
|
||||||
if (!isturf(src.loc))
|
if (!isturf(src.loc))
|
||||||
return 1
|
return 1
|
||||||
if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
|
if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
|
||||||
if(dir==2)
|
if(dir==2)
|
||||||
dir = 1
|
dir = 1
|
||||||
else if(dir==8)
|
else if(dir==8)
|
||||||
dir = 4
|
dir = 4
|
||||||
else if (pipe_type in list(PIPE_MANIFOLD4W, PIPE_OMNI_MIXER, PIPE_OMNI_FILTER))
|
else if (pipe_type in list(PIPE_MANIFOLD4W, PIPE_SUPPLY_MANIFOLD4W, PIPE_SCRUBBERS_MANIFOLD4W, PIPE_OMNI_MIXER, PIPE_OMNI_FILTER))
|
||||||
dir = 2
|
dir = 2
|
||||||
var/pipe_dir = get_pipe_dir()
|
var/pipe_dir = get_pipe_dir()
|
||||||
|
|
||||||
for(var/obj/machinery/atmospherics/M in src.loc)
|
for(var/obj/machinery/atmospherics/M in src.loc)
|
||||||
if(M.initialize_directions & pipe_dir) // matches at least one direction on either type of pipe
|
if((M.initialize_directions & pipe_dir) && M.check_connect_types_construction(M,src)) // matches at least one direction on either type of pipe & same connection type
|
||||||
user << "\red There is already a pipe at that location."
|
user << "\red There is already a pipe of the same type at this location."
|
||||||
return 1
|
return 1
|
||||||
// no conflicts found
|
// no conflicts found
|
||||||
|
|
||||||
@@ -351,6 +420,63 @@ Buildable meters
|
|||||||
P.node2.initialize()
|
P.node2.initialize()
|
||||||
P.node2.build_network()
|
P.node2.build_network()
|
||||||
|
|
||||||
|
if(PIPE_SUPPLY_STRAIGHT, PIPE_SUPPLY_BENT)
|
||||||
|
var/obj/machinery/atmospherics/pipe/simple/hidden/supply/P = new( src.loc )
|
||||||
|
P.color = color
|
||||||
|
P.dir = src.dir
|
||||||
|
P.initialize_directions = pipe_dir
|
||||||
|
var/turf/T = P.loc
|
||||||
|
P.level = T.intact ? 2 : 1
|
||||||
|
P.initialize()
|
||||||
|
if (!P)
|
||||||
|
usr << pipefailtext
|
||||||
|
return 1
|
||||||
|
P.build_network()
|
||||||
|
if (P.node1)
|
||||||
|
P.node1.initialize()
|
||||||
|
P.node1.build_network()
|
||||||
|
if (P.node2)
|
||||||
|
P.node2.initialize()
|
||||||
|
P.node2.build_network()
|
||||||
|
|
||||||
|
if(PIPE_SCRUBBERS_STRAIGHT, PIPE_SCRUBBERS_BENT)
|
||||||
|
var/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers/P = new( src.loc )
|
||||||
|
P.color = color
|
||||||
|
P.dir = src.dir
|
||||||
|
P.initialize_directions = pipe_dir
|
||||||
|
var/turf/T = P.loc
|
||||||
|
P.level = T.intact ? 2 : 1
|
||||||
|
P.initialize()
|
||||||
|
if (!P)
|
||||||
|
usr << pipefailtext
|
||||||
|
return 1
|
||||||
|
P.build_network()
|
||||||
|
if (P.node1)
|
||||||
|
P.node1.initialize()
|
||||||
|
P.node1.build_network()
|
||||||
|
if (P.node2)
|
||||||
|
P.node2.initialize()
|
||||||
|
P.node2.build_network()
|
||||||
|
|
||||||
|
if(PIPE_UNIVERSAL)
|
||||||
|
var/obj/machinery/atmospherics/pipe/simple/hidden/universal/P = new( src.loc )
|
||||||
|
P.color = color
|
||||||
|
P.dir = src.dir
|
||||||
|
P.initialize_directions = pipe_dir
|
||||||
|
var/turf/T = P.loc
|
||||||
|
P.level = T.intact ? 2 : 1
|
||||||
|
P.initialize()
|
||||||
|
if (!P)
|
||||||
|
usr << pipefailtext
|
||||||
|
return 1
|
||||||
|
P.build_network()
|
||||||
|
if (P.node1)
|
||||||
|
P.node1.initialize()
|
||||||
|
P.node1.build_network()
|
||||||
|
if (P.node2)
|
||||||
|
P.node2.initialize()
|
||||||
|
P.node2.build_network()
|
||||||
|
|
||||||
if(PIPE_HE_STRAIGHT, PIPE_HE_BENT)
|
if(PIPE_HE_STRAIGHT, PIPE_HE_BENT)
|
||||||
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/P = new ( src.loc )
|
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/P = new ( src.loc )
|
||||||
P.dir = src.dir
|
P.dir = src.dir
|
||||||
@@ -408,6 +534,52 @@ Buildable meters
|
|||||||
M.node3.initialize()
|
M.node3.initialize()
|
||||||
M.node3.build_network()
|
M.node3.build_network()
|
||||||
|
|
||||||
|
if(PIPE_SUPPLY_MANIFOLD) //manifold
|
||||||
|
var/obj/machinery/atmospherics/pipe/manifold/hidden/supply/M = new( src.loc )
|
||||||
|
M.color = color
|
||||||
|
M.dir = dir
|
||||||
|
M.initialize_directions = pipe_dir
|
||||||
|
//M.New()
|
||||||
|
var/turf/T = M.loc
|
||||||
|
M.level = T.intact ? 2 : 1
|
||||||
|
M.initialize()
|
||||||
|
if (!M)
|
||||||
|
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
|
||||||
|
return 1
|
||||||
|
M.build_network()
|
||||||
|
if (M.node1)
|
||||||
|
M.node1.initialize()
|
||||||
|
M.node1.build_network()
|
||||||
|
if (M.node2)
|
||||||
|
M.node2.initialize()
|
||||||
|
M.node2.build_network()
|
||||||
|
if (M.node3)
|
||||||
|
M.node3.initialize()
|
||||||
|
M.node3.build_network()
|
||||||
|
|
||||||
|
if(PIPE_SCRUBBERS_MANIFOLD) //manifold
|
||||||
|
var/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers/M = new( src.loc )
|
||||||
|
M.color = color
|
||||||
|
M.dir = dir
|
||||||
|
M.initialize_directions = pipe_dir
|
||||||
|
//M.New()
|
||||||
|
var/turf/T = M.loc
|
||||||
|
M.level = T.intact ? 2 : 1
|
||||||
|
M.initialize()
|
||||||
|
if (!M)
|
||||||
|
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
|
||||||
|
return 1
|
||||||
|
M.build_network()
|
||||||
|
if (M.node1)
|
||||||
|
M.node1.initialize()
|
||||||
|
M.node1.build_network()
|
||||||
|
if (M.node2)
|
||||||
|
M.node2.initialize()
|
||||||
|
M.node2.build_network()
|
||||||
|
if (M.node3)
|
||||||
|
M.node3.initialize()
|
||||||
|
M.node3.build_network()
|
||||||
|
|
||||||
if(PIPE_MANIFOLD4W) //4-way manifold
|
if(PIPE_MANIFOLD4W) //4-way manifold
|
||||||
var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc )
|
var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc )
|
||||||
M.pipe_color = color
|
M.pipe_color = color
|
||||||
@@ -434,6 +606,60 @@ Buildable meters
|
|||||||
M.node4.initialize()
|
M.node4.initialize()
|
||||||
M.node4.build_network()
|
M.node4.build_network()
|
||||||
|
|
||||||
|
if(PIPE_SUPPLY_MANIFOLD4W) //4-way manifold
|
||||||
|
var/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply/M = new( src.loc )
|
||||||
|
M.color = color
|
||||||
|
M.dir = dir
|
||||||
|
M.initialize_directions = pipe_dir
|
||||||
|
M.connect_types = src.connect_types
|
||||||
|
//M.New()
|
||||||
|
var/turf/T = M.loc
|
||||||
|
M.level = T.intact ? 2 : 1
|
||||||
|
M.initialize()
|
||||||
|
if (!M)
|
||||||
|
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
|
||||||
|
return 1
|
||||||
|
M.build_network()
|
||||||
|
if (M.node1)
|
||||||
|
M.node1.initialize()
|
||||||
|
M.node1.build_network()
|
||||||
|
if (M.node2)
|
||||||
|
M.node2.initialize()
|
||||||
|
M.node2.build_network()
|
||||||
|
if (M.node3)
|
||||||
|
M.node3.initialize()
|
||||||
|
M.node3.build_network()
|
||||||
|
if (M.node4)
|
||||||
|
M.node4.initialize()
|
||||||
|
M.node4.build_network()
|
||||||
|
|
||||||
|
if(PIPE_SCRUBBERS_MANIFOLD4W) //4-way manifold
|
||||||
|
var/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers/M = new( src.loc )
|
||||||
|
M.color = color
|
||||||
|
M.dir = dir
|
||||||
|
M.initialize_directions = pipe_dir
|
||||||
|
M.connect_types = src.connect_types
|
||||||
|
//M.New()
|
||||||
|
var/turf/T = M.loc
|
||||||
|
M.level = T.intact ? 2 : 1
|
||||||
|
M.initialize()
|
||||||
|
if (!M)
|
||||||
|
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
|
||||||
|
return 1
|
||||||
|
M.build_network()
|
||||||
|
if (M.node1)
|
||||||
|
M.node1.initialize()
|
||||||
|
M.node1.build_network()
|
||||||
|
if (M.node2)
|
||||||
|
M.node2.initialize()
|
||||||
|
M.node2.build_network()
|
||||||
|
if (M.node3)
|
||||||
|
M.node3.initialize()
|
||||||
|
M.node3.build_network()
|
||||||
|
if (M.node4)
|
||||||
|
M.node4.initialize()
|
||||||
|
M.node4.build_network()
|
||||||
|
|
||||||
if(PIPE_JUNCTION)
|
if(PIPE_JUNCTION)
|
||||||
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/P = new ( src.loc )
|
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/P = new ( src.loc )
|
||||||
P.dir = src.dir
|
P.dir = src.dir
|
||||||
@@ -818,4 +1044,11 @@ Buildable meters
|
|||||||
#undef PIPE_GAS_FILTER_M
|
#undef PIPE_GAS_FILTER_M
|
||||||
#undef PIPE_GAS_MIXER_T
|
#undef PIPE_GAS_MIXER_T
|
||||||
#undef PIPE_GAS_MIXER_M
|
#undef PIPE_GAS_MIXER_M
|
||||||
|
#undef PIPE_SUPPLY_STRAIGHT
|
||||||
|
#undef PIPE_SUPPLY_BENT
|
||||||
|
#undef PIPE_SCRUBBERS_STRAIGHT
|
||||||
|
#undef PIPE_SCRUBBERS_BENT
|
||||||
|
#undef PIPE_SUPPLY_MANIFOLD
|
||||||
|
#undef PIPE_SCRUBBERS_MANIFOLD
|
||||||
|
#undef PIPE_UNIVERSAL
|
||||||
//#undef PIPE_MANIFOLD4W
|
//#undef PIPE_MANIFOLD4W
|
||||||
|
|||||||
@@ -25,7 +25,18 @@
|
|||||||
<A href='?src=\ref[src];make=18;dir=1'>Manual T-Valve</A><BR>
|
<A href='?src=\ref[src];make=18;dir=1'>Manual T-Valve</A><BR>
|
||||||
<A href='?src=\ref[src];make=21;dir=1'>upward Pipe</A><BR>
|
<A href='?src=\ref[src];make=21;dir=1'>upward Pipe</A><BR>
|
||||||
<A href='?src=\ref[src];make=22;dir=1'>downward Pipe</A><BR>
|
<A href='?src=\ref[src];make=22;dir=1'>downward Pipe</A><BR>
|
||||||
|
<b>Supply pipes:</b><BR>
|
||||||
|
<A href='?src=\ref[src];make=29;dir=1'>Pipe</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=30;dir=5'>Bent Pipe</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=33;dir=1'>Manifold</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=35;dir=1'>4-Way Manifold</A><BR>
|
||||||
|
<b>Scrubbers pipes:</b><BR>
|
||||||
|
<A href='?src=\ref[src];make=31;dir=1'>Pipe</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=32;dir=5'>Bent Pipe</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=34;dir=1'>Manifold</A><BR>
|
||||||
|
<A href='?src=\ref[src];make=36;dir=1'>4-Way Manifold</A><BR>
|
||||||
<b>Devices:</b><BR>
|
<b>Devices:</b><BR>
|
||||||
|
<A href='?src=\ref[src];make=28;dir=1'>Universal pipe adapter</A><BR>
|
||||||
<A href='?src=\ref[src];make=4;dir=1'>Connector</A><BR>
|
<A href='?src=\ref[src];make=4;dir=1'>Connector</A><BR>
|
||||||
<A href='?src=\ref[src];make=7;dir=1'>Unary Vent</A><BR>
|
<A href='?src=\ref[src];make=7;dir=1'>Unary Vent</A><BR>
|
||||||
<A href='?src=\ref[src];make=9;dir=1'>Gas Pump</A><BR>
|
<A href='?src=\ref[src];make=9;dir=1'>Gas Pump</A><BR>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |