Bigger air pumps (#27894)

* Icons for bigger portable pumps.

* Bigger portable pumps.

* Correc bluespace attachments.

* Expanded Engineering ERT Storage
This commit is contained in:
Charlie Nolan
2025-01-15 06:40:24 -08:00
committed by GitHub
parent 584ff75c8d
commit 39fa268f54
4 changed files with 315 additions and 295 deletions
@@ -1,6 +1,6 @@
/// The maximum `target_pressure` you can set on the pump. Equates to about 1013.25 kPa.
#define MAX_TARGET_PRESSURE 10 * ONE_ATMOSPHERE
/// The maximum `target_pressure` you can set on the pump.
#define MAX_TARGET_PRESSURE 45 * ONE_ATMOSPHERE
/// The pump will be siphoning gas.
#define DIRECTION_IN 0
/// The pump will be pumping gas out.
@@ -9,7 +9,9 @@
/obj/machinery/atmospherics/portable/pump
name = "portable air pump"
icon = 'icons/obj/atmos.dmi'
icon_state = "psiphon:0"
icon_state = "ppump:0"
base_icon_state = "ppump"
var/base_attachment_icon_state = "ppump"
density = TRUE
volume = 1000
/// The direction the pump is operating in. This should be either `DIRECTION_IN` or `DIRECTION_OUT`.
@@ -18,6 +20,12 @@
target_pressure = 101.325
resistance_flags = NONE
/obj/machinery/atmospherics/portable/pump/Initialize(mapload)
. = ..()
// Fill with normal air.
air_contents.set_oxygen(MAX_TARGET_PRESSURE * O2STANDARD * volume / (T20C * R_IDEAL_GAS_EQUATION))
air_contents.set_nitrogen(MAX_TARGET_PRESSURE * N2STANDARD * volume / (T20C * R_IDEAL_GAS_EQUATION))
/obj/machinery/atmospherics/portable/pump/examine(mob/user)
. = ..()
. += "<span class='notice'>Invaluable for filling air in a room rapidly after a breach repair. The internal gas container can be filled by \
@@ -26,14 +34,14 @@
A tank of gas can also be attached to the air pump, allowing you to fill or empty the tank, via the internal one.</span>"
/obj/machinery/atmospherics/portable/pump/update_icon_state()
icon_state = "psiphon:[on]"
icon_state = "[base_icon_state]:[on]"
/obj/machinery/atmospherics/portable/pump/update_overlays()
. = ..()
if(holding_tank)
. += "siphon-open"
. += "[base_attachment_icon_state]-open"
if(connected_port)
. += "siphon-connector"
. += "[base_attachment_icon_state]-connector"
/obj/machinery/atmospherics/portable/pump/emp_act(severity)
if(stat & (BROKEN|NOPOWER))
@@ -166,6 +174,7 @@
direction = DIRECTION_OUT
if(on && holding_tank)
investigate_log("[key_name(usr)] started a transfer into [holding_tank].<br>", "atmos")
update_icon()
return TRUE
if("remove_tank")
@@ -179,6 +188,34 @@
add_fingerprint(usr)
/obj/machinery/atmospherics/portable/pump/big
name = "large portable air pump"
icon_state = "ppump_big:0"
base_icon_state = "ppump_big"
base_attachment_icon_state = "ppump_big"
volume = 5000
/obj/machinery/atmospherics/portable/pump/big/examine(mob/user)
. = ..()
. += "<br><span class='notice'>This one is quite large, enabling it to hold more air.</span>"
/obj/machinery/atmospherics/portable/pump/bluespace
name = "bluespace portable air pump"
icon_state = "ppump_bs:0"
base_icon_state = "ppump_bs"
base_attachment_icon_state = "ppump_big"
volume = 25000
/obj/machinery/atmospherics/portable/pump/bluespace/examine(mob/user)
. = ..()
. += "<br><span class='notice'>This one is not only large, but made of exotic materials, and uses bluespace technology to hold even more air.</span>"
/obj/machinery/atmospherics/portable/pump/bluespace/update_icon_state()
if(on && direction == DIRECTION_IN)
icon_state = "[base_icon_state]:[on]-r"
else
icon_state = "[base_icon_state]:[on]"
#undef MAX_TARGET_PRESSURE
#undef DIRECTION_IN
#undef DIRECTION_OUT
@@ -40,9 +40,9 @@
/obj/machinery/atmospherics/portable/scrubber/update_overlays()
. = ..()
if(holding_tank)
. += "scrubber-open"
. += "pscrubber-open"
if(connected_port)
. += "scrubber-connector"
. += "pscrubber-connector"
/obj/machinery/atmospherics/portable/scrubber/process_atmos()
..()