Files
Paradise/code/datums/pipe_datums.dm
warriorstar-orion 0667f20681 move all EOL comments on typepath names to dmdoc (#23928)
* move all EOL comments on typepath names to dmdoc

* Apply suggestions from code review

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>

---------

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
2024-03-01 20:05:49 +00:00

368 lines
8.9 KiB
Plaintext

GLOBAL_LIST_EMPTY(construction_pipe_list) //List of all pipe datums
GLOBAL_LIST_EMPTY(rpd_pipe_list) //Some pipes we don't want to be dispensable by the RPD, so we have a separate thing
/datum/pipes
var/pipe_name //What the pipe is called in the interface
var/pipe_id //Use the pipe define for this
var/pipe_type //Atmos, disposals etc.
var/pipe_category //What category of pipe
var/bendy = FALSE //Is this pipe bendy?
var/orientations //Number of orientations (for interface purposes)
var/pipe_icon //icon_state of the dispensed pipe (for interface purposes)
var/rpd_dispensable = FALSE
/datum/pipes/atmospheric
pipe_type = PIPETYPE_ATMOS
pipe_category = PIPETYPE_ATMOS
/datum/pipes/disposal
pipe_type = PIPETYPE_DISPOSAL
//Normal pipes
/datum/pipes/atmospheric/simple
pipe_name = "straight pipe"
pipe_id = PIPE_SIMPLE_STRAIGHT
orientations = 2
pipe_icon = "simple"
rpd_dispensable = TRUE
/// Why is this not atmospheric/simple/bent you ask? Because otherwise the ordering of the pipes in the UI menu gets weird
/datum/pipes/atmospheric/bent
pipe_name = "bent pipe"
pipe_id = PIPE_SIMPLE_BENT
orientations = 4
bendy = TRUE
pipe_icon = "simple"
rpd_dispensable = TRUE
/datum/pipes/atmospheric/manifold
pipe_name = "t-manifold"
pipe_id = PIPE_MANIFOLD
orientations = 4
pipe_icon = "manifold"
rpd_dispensable = TRUE
/datum/pipes/atmospheric/manifold4w
pipe_name = "4-way manifold"
pipe_id = PIPE_MANIFOLD4W
orientations = 1
pipe_icon = "manifold4w"
rpd_dispensable = TRUE
/datum/pipes/atmospheric/cap
pipe_name = "pipe cap"
pipe_id = PIPE_CAP
orientations = 4
pipe_icon = "cap"
rpd_dispensable = TRUE
/datum/pipes/atmospheric/valve
pipe_name = "manual valve"
pipe_id = PIPE_MVALVE
orientations = 2
pipe_icon = "mvalve"
rpd_dispensable = TRUE
/datum/pipes/atmospheric/valve/digital
pipe_name = "digital valve"
pipe_id = PIPE_DVALVE
pipe_icon = "dvalve"
/datum/pipes/atmospheric/tvalve
pipe_name = "manual t-valve"
pipe_id = PIPE_TVALVE
orientations = 4
pipe_icon = "tvalve"
rpd_dispensable = TRUE
/datum/pipes/atmospheric/tvalve/digital
pipe_name = "digital t-valve"
pipe_id = PIPE_DTVALVE
pipe_icon = "dtvalve"
//Supply pipes
/datum/pipes/atmospheric/simple/supply
pipe_name = "straight supply pipe"
pipe_id = PIPE_SUPPLY_STRAIGHT
pipe_category = RPD_SUPPLY_PIPING
/datum/pipes/atmospheric/bent/supply
pipe_name = "bent supply pipe"
pipe_id = PIPE_SUPPLY_BENT
pipe_category = RPD_SUPPLY_PIPING
/datum/pipes/atmospheric/manifold/supply
pipe_name = "supply T-manifold"
pipe_id = PIPE_SUPPLY_MANIFOLD
pipe_category = RPD_SUPPLY_PIPING
/datum/pipes/atmospheric/manifold4w/supply
pipe_name = "4-way supply manifold"
pipe_id = PIPE_SUPPLY_MANIFOLD4W
pipe_category = RPD_SUPPLY_PIPING
/datum/pipes/atmospheric/cap/supply
pipe_name = "supply pipe cap"
pipe_id = PIPE_SUPPLY_CAP
pipe_category = RPD_SUPPLY_PIPING
//Scrubbers pipes
/datum/pipes/atmospheric/simple/scrubbers
pipe_name = "straight scrubbers pipe"
pipe_id = PIPE_SCRUBBERS_STRAIGHT
pipe_category = RPD_SCRUBBERS_PIPING
/datum/pipes/atmospheric/bent/scrubbers
pipe_name = "bent scrubbers pipe"
pipe_id = PIPE_SCRUBBERS_BENT
pipe_category = RPD_SCRUBBERS_PIPING
/datum/pipes/atmospheric/manifold/scrubbers
pipe_name = "scrubbers t-manifold"
pipe_id = PIPE_SCRUBBERS_MANIFOLD
pipe_category = RPD_SCRUBBERS_PIPING
/datum/pipes/atmospheric/manifold4w/scrubbers
pipe_name = "4-way scrubbers manifold"
pipe_id = PIPE_SCRUBBERS_MANIFOLD4W
pipe_category = RPD_SCRUBBERS_PIPING
/datum/pipes/atmospheric/cap/scrubbers
pipe_name = "scrubbers pipe cap"
pipe_id = PIPE_SCRUBBERS_CAP
pipe_category = RPD_SCRUBBERS_PIPING
//Devices
/datum/pipes/atmospheric/upa
pipe_name = "universal pipe adapter"
pipe_id = PIPE_UNIVERSAL
orientations = 2
pipe_icon = "universal"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/connector
pipe_name = "connector"
pipe_id = PIPE_CONNECTOR
orientations = 4
pipe_icon = "connector"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/unaryvent
pipe_name = "unary vent"
pipe_id = PIPE_UVENT
orientations = 4
pipe_icon = "uvent"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/scrubber
pipe_name = "scrubber"
pipe_id = PIPE_SCRUBBER
orientations = 4
pipe_icon = "scrubber"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/pump
pipe_name = "pump"
pipe_id = PIPE_PUMP
orientations = 4
pipe_icon = "pump"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/volume_pump
pipe_name = "volume pump"
pipe_id = PIPE_VOLUME_PUMP
orientations = 4
pipe_icon = "volumepump"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/gate
pipe_name = "passive gate"
pipe_id = PIPE_PASSIVE_GATE
orientations = 4
pipe_icon = "passivegate"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/filter
pipe_name = "gas filter"
pipe_id = PIPE_GAS_FILTER
orientations = 4
pipe_icon = "filter"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/mixer
pipe_name = "gas mixer"
pipe_id = PIPE_GAS_MIXER
orientations = 4
pipe_icon = "mixer"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/sensor
pipe_name = "gas sensor"
pipe_id = PIPE_GAS_SENSOR
orientations = 1
pipe_icon = "sensor"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/meter
pipe_name = "meter"
pipe_id = PIPE_METER
orientations = 1
pipe_icon = "meter"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/passive_vent
pipe_name = "passive vent"
pipe_id = PIPE_PASV_VENT
orientations = 4
pipe_icon = "passive_vent"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
/datum/pipes/atmospheric/injector
pipe_name = "air injector"
pipe_id = PIPE_INJECTOR
orientations = 4
pipe_icon = "injector"
pipe_category = RPD_DEVICES
rpd_dispensable = TRUE
//Heat exchange pipes
/datum/pipes/atmospheric/simple/he
pipe_name = "straight h/e pipe"
pipe_id = PIPE_HE_STRAIGHT
pipe_icon = "he"
pipe_category = RPD_HEAT_PIPING
/datum/pipes/atmospheric/bent/he
pipe_name = "bent h/e pipe"
pipe_id = PIPE_HE_BENT
pipe_icon = "he"
bendy = TRUE
pipe_category = RPD_HEAT_PIPING
/datum/pipes/atmospheric/he_junction
pipe_name = "junction"
pipe_id = PIPE_JUNCTION
orientations = 4
pipe_icon = "junction"
pipe_category = RPD_HEAT_PIPING
rpd_dispensable = TRUE
/datum/pipes/atmospheric/heat_exchanger
pipe_name = "heat exchanger"
pipe_id = PIPE_HEAT_EXCHANGE
orientations = 4
pipe_icon = "heunary"
pipe_category = RPD_HEAT_PIPING
rpd_dispensable = TRUE
//DISPOSALS PIPES
/datum/pipes/disposal/straight
pipe_name = "straight disposals pipe"
pipe_id = PIPE_DISPOSALS_STRAIGHT
orientations = 2
pipe_icon = "pipe-s"
rpd_dispensable = TRUE
/datum/pipes/disposal/bent
pipe_name = "bent disposals pipe"
pipe_id = PIPE_DISPOSALS_BENT
orientations = 4
pipe_icon = "pipe-c"
rpd_dispensable = TRUE
/datum/pipes/disposal/junction
pipe_name = "disposals junction"
pipe_id = PIPE_DISPOSALS_JUNCTION_RIGHT
orientations = 4
pipe_icon = "pipe-j1"
rpd_dispensable = TRUE
/datum/pipes/disposal/y_junction
pipe_name = "disposals y-junction"
pipe_id = PIPE_DISPOSALS_Y_JUNCTION
orientations = 4
pipe_icon = "pipe-y"
rpd_dispensable = TRUE
/datum/pipes/disposal/trunk
pipe_name = "disposals trunk"
pipe_id = PIPE_DISPOSALS_TRUNK
orientations = 4
pipe_icon = "pipe-t"
rpd_dispensable = TRUE
/datum/pipes/disposal/bin
pipe_name = "disposals pipe bin"
pipe_id = PIPE_DISPOSALS_BIN
orientations = 1
pipe_icon = "disposal"
rpd_dispensable = TRUE
/datum/pipes/disposal/outlet
pipe_name = "disposals outlet"
pipe_id = PIPE_DISPOSALS_OUTLET
orientations = 4
pipe_icon = "outlet"
rpd_dispensable = TRUE
/datum/pipes/disposal/chute
pipe_name = "disposals chute"
pipe_id = PIPE_DISPOSALS_CHUTE
orientations = 4
pipe_icon = "intake"
rpd_dispensable = TRUE
/datum/pipes/disposal/sortjunction
pipe_name = "disposals sort junction"
pipe_id = PIPE_DISPOSALS_SORT_RIGHT
orientations = 4
pipe_icon = "pipe-j1s"
rpd_dispensable = TRUE
//Pipes the RPD can't dispense. Since these don't use an interface, we don't need to bother with setting an icon. We do, however, want to name these for other purposes
/datum/pipes/atmospheric/circulator
pipe_name = "circulator / heat exchanger"
pipe_id = PIPE_CIRCULATOR
pipe_icon = "circ"
/datum/pipes/disposal/left_sortjunction
pipe_name = "disposals sort junction left"
pipe_id = PIPE_DISPOSALS_SORT_LEFT
pipe_icon = "pipe-j2s"
/datum/pipes/disposal/left_junction
pipe_name = "disposals junction"
pipe_id = PIPE_DISPOSALS_JUNCTION_LEFT
pipe_icon = "pipe-j2"
/proc/get_pipe_name(pipe_id, pipe_type)
for(var/datum/pipes/P in GLOB.construction_pipe_list)
if(P.pipe_id == pipe_id && P.pipe_type == pipe_type)
return P.pipe_name
return "unknown pipe"
/proc/get_pipe_icon(pipe_id)
for(var/datum/pipes/P in GLOB.construction_pipe_list)
if(P.pipe_id == pipe_id)
return P.pipe_icon
return "unknown icon"