diff --git a/code/__defines/atmos.dm b/code/__defines/atmos.dm index 209e429d5ec..3eb95c75a07 100644 --- a/code/__defines/atmos.dm +++ b/code/__defines/atmos.dm @@ -93,6 +93,8 @@ #define ZONE_ACTIVE 1 #define ZONE_SLEEPING 0 +#define MAX_PUMP_PRESSURE 15000 // Maximal pressure setting for pumps and vents + // Defines how much of certain gas do the Atmospherics tanks start with. Values are in kpa per tile (assuming 20C) #define ATMOSTANK_NITROGEN 90000 // A lot of N2 is needed to produce air mix, that's why we keep 90MPa of it #define ATMOSTANK_OXYGEN 40000 // O2 is also important for airmix, but not as much as N2 as it's only 21% of it. diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm index 46283f45168..fca543a7c54 100644 --- a/code/__defines/machinery.dm +++ b/code/__defines/machinery.dm @@ -115,8 +115,8 @@ var/list/restricted_camera_networks = list(NETWORK_ERT,NETWORK_MERCENARY,"Secret // The flow rate/effectiveness of various atmos devices is limited by their internal volume, // so for many atmos devices these will control maximum flow rates in L/s. #define ATMOS_DEFAULT_VOLUME_PUMP 200 // Liters. -#define ATMOS_DEFAULT_VOLUME_FILTER 200 // L. -#define ATMOS_DEFAULT_VOLUME_MIXER 200 // L. +#define ATMOS_DEFAULT_VOLUME_FILTER 500 // L. +#define ATMOS_DEFAULT_VOLUME_MIXER 500 // L. #define ATMOS_DEFAULT_VOLUME_PIPE 70 // L. #define ATMOS_DEFAULT_VOLUME_HE_PIPE 70 // L. diff --git a/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm b/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm index 544b2f34955..8debe635fb5 100644 --- a/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm +++ b/code/modules/atmospherics/components/binary_devices/dp_vent_pump.dm @@ -22,7 +22,7 @@ use_power = POWER_USE_OFF idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 7500 //7500 W ~ 10 HP + power_rating = 30000 //30000 W ~ 40 HP connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SUPPLY|CONNECT_TYPE_SCRUBBER //connects to regular, supply and scrubbers pipes diff --git a/code/modules/atmospherics/components/binary_devices/pump.dm b/code/modules/atmospherics/components/binary_devices/pump.dm index e1489b4b0bb..57b618de1d7 100644 --- a/code/modules/atmospherics/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/components/binary_devices/pump.dm @@ -26,7 +26,7 @@ Thus, the two variables affect pump operation are set in New(): use_power = POWER_USE_OFF idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 7500 //7500 W ~ 10 HP + power_rating = 30000 //30000 W ~ 40 HP var/max_pressure_setting = ATMOS_PUMP_MAX_PRESSURE //kPa diff --git a/code/modules/atmospherics/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/components/binary_devices/volume_pump.dm index a2614e20b32..cf9bb073b8f 100644 --- a/code/modules/atmospherics/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/components/binary_devices/volume_pump.dm @@ -6,7 +6,9 @@ name = "high power gas pump" desc = "A pump. Has double the power rating of the standard gas pump." - power_rating = 15000 //15000 W ~ 20 HP + idle_power_usage = 450 + + power_rating = 45000 //45000 W ~ 60 HP /obj/machinery/atmospherics/binary/pump/high_power/on use_power = POWER_USE_IDLE diff --git a/code/modules/atmospherics/components/omni_devices/filter.dm b/code/modules/atmospherics/components/omni_devices/filter.dm index 5191603142b..976d9d95b36 100644 --- a/code/modules/atmospherics/components/omni_devices/filter.dm +++ b/code/modules/atmospherics/components/omni_devices/filter.dm @@ -13,10 +13,10 @@ var/datum/omni_port/output idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 7500 //7500 W ~ 10 HP + power_rating = 15000 //15000 W ~ 20 HP - var/max_flow_rate = 200 - var/set_flow_rate = 200 + var/max_flow_rate = ATMOS_DEFAULT_VOLUME_FILTER + var/set_flow_rate = ATMOS_DEFAULT_VOLUME_FILTER var/list/filtering_outputs = list() //maps gasids to gas_mixtures @@ -97,7 +97,7 @@ ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, "omni_filter.tmpl", "Omni Filter Control", 330, 330) + ui = new(user, src, ui_key, "omni_filter.tmpl", "Omni Filter Control", 470, 330) ui.set_initial_data(data) ui.open() @@ -107,6 +107,8 @@ data["power"] = use_power data["config"] = configuring + data["last_power_draw"] = last_power_draw + data["max_power_draw"] = power_rating var/portData[0] for(var/datum/omni_port/P in ports) diff --git a/code/modules/atmospherics/components/omni_devices/mixer.dm b/code/modules/atmospherics/components/omni_devices/mixer.dm index 571deaa9716..bced9c52845 100644 --- a/code/modules/atmospherics/components/omni_devices/mixer.dm +++ b/code/modules/atmospherics/components/omni_devices/mixer.dm @@ -9,7 +9,7 @@ use_power = POWER_USE_IDLE idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 3700 //3700 W ~ 5 HP + power_rating = 15000 //15000 W ~ 20 HP var/list/inputs = new() var/datum/omni_port/output @@ -20,8 +20,8 @@ var/tag_east_con var/tag_west_con - var/max_flow_rate = 200 - var/set_flow_rate = 200 + var/max_flow_rate = ATMOS_DEFAULT_VOLUME_MIXER + var/set_flow_rate = ATMOS_DEFAULT_VOLUME_MIXER var/list/mixing_inputs = list() @@ -135,7 +135,7 @@ ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, "omni_mixer.tmpl", "Omni Mixer Control", 360, 330) + ui = new(user, src, ui_key, "omni_mixer.tmpl", "Omni Mixer Control", 470, 330) ui.set_initial_data(data) ui.open() @@ -145,6 +145,8 @@ data["power"] = use_power data["config"] = configuring + data["last_power_draw"] = last_power_draw + data["max_power_draw"] = power_rating var/portData[0] for(var/datum/omni_port/P in ports) diff --git a/code/modules/atmospherics/components/trinary_devices/filter.dm b/code/modules/atmospherics/components/trinary_devices/filter.dm index 11144fb72b8..f45722db791 100644 --- a/code/modules/atmospherics/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/components/trinary_devices/filter.dm @@ -8,7 +8,7 @@ use_power = POWER_USE_IDLE idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 7500 //This also doubles as a measure of how powerful the filter is, in Watts. 7500 W ~ 10 HP + power_rating = 15000 //15000 W ~ 20 HP var/temp = null // -- TLE diff --git a/code/modules/atmospherics/components/trinary_devices/mixer.dm b/code/modules/atmospherics/components/trinary_devices/mixer.dm index 29712344e47..77cf636289d 100644 --- a/code/modules/atmospherics/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/components/trinary_devices/mixer.dm @@ -8,7 +8,7 @@ use_power = POWER_USE_IDLE idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 3700 //This also doubles as a measure of how powerful the mixer is, in Watts. 3700 W ~ 5 HP + power_rating = 15000 //15000 W ~ 20 HP var/set_flow_rate = ATMOS_DEFAULT_VOLUME_MIXER var/list/mixing_inputs diff --git a/code/modules/atmospherics/components/unary/outlet_injector.dm b/code/modules/atmospherics/components/unary/outlet_injector.dm index 6be4f46f9dc..af67e85c2d4 100644 --- a/code/modules/atmospherics/components/unary/outlet_injector.dm +++ b/code/modules/atmospherics/components/unary/outlet_injector.dm @@ -13,7 +13,7 @@ use_power = POWER_USE_OFF idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 15000 //15000 W ~ 20 HP + power_rating = 45000 //45000 W ~ 60 HP var/injecting = 0 diff --git a/code/modules/atmospherics/components/unary/vent_pump.dm b/code/modules/atmospherics/components/unary/vent_pump.dm index 38980178ed9..5075b80d5a0 100644 --- a/code/modules/atmospherics/components/unary/vent_pump.dm +++ b/code/modules/atmospherics/components/unary/vent_pump.dm @@ -16,7 +16,7 @@ use_power = POWER_USE_OFF idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 7500 //7500 W ~ 10 HP + power_rating = 30000 //30000 W ~ 40 HP connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SUPPLY //connects to regular and supply pipes @@ -62,8 +62,8 @@ icon_state = "map_vent_in" external_pressure_bound = 0 external_pressure_bound_default = 0 - internal_pressure_bound = 2000 - internal_pressure_bound_default = 2000 + internal_pressure_bound = MAX_PUMP_PRESSURE + internal_pressure_bound_default = MAX_PUMP_PRESSURE pressure_checks = 2 pressure_checks_default = 2 @@ -76,8 +76,8 @@ icon_state = "map_vent_in" external_pressure_bound = 0 external_pressure_bound_default = 0 - internal_pressure_bound = 2000 - internal_pressure_bound_default = 2000 + internal_pressure_bound = MAX_PUMP_PRESSURE + internal_pressure_bound_default = MAX_PUMP_PRESSURE pressure_checks = 2 pressure_checks_default = 2 @@ -119,7 +119,7 @@ /obj/machinery/atmospherics/unary/vent_pump/high_volume name = "Large Air Vent" power_channel = EQUIP - power_rating = 15000 //15 kW ~ 20 HP + power_rating = 45000 //45 kW ~ 60 HP /obj/machinery/atmospherics/unary/vent_pump/high_volume/Initialize() . = ..() @@ -128,7 +128,7 @@ /obj/machinery/atmospherics/unary/vent_pump/engine name = "Reactor Core Vent" power_channel = ENVIRON - power_rating = 30000 //15 kW ~ 20 HP + power_rating = 30000 //30 kW ~ 40 HP /obj/machinery/atmospherics/unary/vent_pump/engine/Initialize() . = ..() diff --git a/code/modules/atmospherics/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm index 435f5fb7f85..f36d52a394f 100644 --- a/code/modules/atmospherics/components/unary/vent_scrubber.dm +++ b/code/modules/atmospherics/components/unary/vent_scrubber.dm @@ -8,7 +8,7 @@ use_power = POWER_USE_OFF idle_power_usage = 150 //internal circuitry, friction losses and stuff - power_rating = 7500 //7500 W ~ 10 HP + power_rating = 30000 //30000 W ~ 40 HP connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_SCRUBBER //connects to regular and scrubber pipes diff --git a/html/changelogs/Sindorman-atmos.yml b/html/changelogs/Sindorman-atmos.yml new file mode 100644 index 00000000000..8311db0cda6 --- /dev/null +++ b/html/changelogs/Sindorman-atmos.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: PoZe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Majorily increased maximum power rating for most atmospherics devices. Refer to the pull request for exact numbers: https://github.com/Aurorastation/Aurora.3/pull/15229" + - tweak: "Refactored atmospherics omni gas filters' and mixers' UI to be more like a gas pump. Added display of current power usage." diff --git a/nano/templates/omni_filter.tmpl b/nano/templates/omni_filter.tmpl index 8a3ffac0af7..7ca17cded15 100644 --- a/nano/templates/omni_filter.tmpl +++ b/nano/templates/omni_filter.tmpl @@ -1,86 +1,125 @@
-
+
+ Power: +
+
{{:helper.link(data.power ? 'On' : 'Off', null, {'command' : 'power'}, data.config ? 'disabled' : null)}}
-
+
+ +
+
+ Config: +
+
{{:helper.link('Configure', null, {'command' : 'configure'}, null, data.config ? 'selected' : null)}}
+
- {{if data.config}} +
+
+ Set Flow Rate Limit: +
+
+
+ {{if data.config}} + {{:helper.link(data.set_flow_rate/10, null, {'command' : 'set_flow_rate'})}} L/s + {{else}} + {{:(data.set_flow_rate/10)}} L/s + {{/if}} +
+
+
-
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Input
- {{for data.ports}} -
- {{:helper.link(' ', null, {'command' : 'switch_mode', 'mode' : 'in', 'dir' : value.dir}, null, value.input ? 'selected' : null)}} -
- {{/for}} -
-
-
Output
- {{for data.ports}} -
- {{:helper.link(' ', null, {'command' : 'switch_mode', 'mode' : 'out', 'dir' : value.dir}, null, value.output ? 'selected' : null)}} -
- {{/for}} -
-
-
Filter
- {{for data.ports}} -
- {{:helper.link(value.f_type ? value.f_type : 'None', null, {'command' : 'switch_filter', 'mode' : value.f_type, 'dir' : value.dir}, value.filter ? null : 'disabled', value.f_type ? 'selected' : null)}} -
- {{/for}} -
-
+
+
+ Current Flow Rate: +
+
+
+ {{:(data.last_flow_rate/10)}} L/s +
+
+
-
- Set Flow Rate Limit: {{:(data.set_flow_rate/10)}} L/s -
-
- {{:helper.link('Set Flow Rate Limit', null, {'command' : 'set_flow_rate'})}} -
+
+
+ Load: +
+
+ {{:helper.displayBar(data.last_power_draw, 0, data.max_power_draw, (data.last_power_draw < data.max_power_draw - 5) ? 'good' : 'average')}} +
+ {{:data.last_power_draw}} W +
+
+
- {{else}} +{{if data.config}} -
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Mode
- {{for data.ports}} -
- {{if value.input}} - Input - {{else value.output}} - Output - {{else value.f_type}} - {{:value.f_type}} - {{else}} - Disabled - {{/if}} -
- {{/for}} -
-
+
+
+
+
Port
+ {{for data.ports}} +
{{:value.dir}} Port
+ {{/for}} +
-
- Set Flow Rate Limit: {{:(data.set_flow_rate/10)}} L/s -
- -
- Flow Rate: {{:(data.last_flow_rate/10)}} L/s -
- {{/if}} -
\ No newline at end of file +
+
Input
+ {{for data.ports}} +
+ {{:helper.link(' ', null, {'command' : 'switch_mode', 'mode' : 'in', 'dir' : value.dir}, null, value.input ? 'selected' : null)}} +
+ {{/for}} +
+ +
+
Output
+ {{for data.ports}} +
+ {{:helper.link(' ', null, {'command' : 'switch_mode', 'mode' : 'out', 'dir' : value.dir}, null, value.output ? 'selected' : null)}} +
+ {{/for}} +
+ +
+
Filter
+ {{for data.ports}} +
+ {{:helper.link(value.f_type ? value.f_type : 'None', null, {'command' : 'switch_filter', 'mode' : value.f_type, 'dir' : value.dir}, value.filter ? null : 'disabled', value.f_type ? 'selected' : null)}} +
+ {{/for}} +
+
+
+{{else}} + +
+
+
+
Port
+ {{for data.ports}} +
{{:value.dir}} Port
+ {{/for}} +
+
+
Mode
+ {{for data.ports}} +
+ {{if value.input}} + Input + {{else value.output}} + Output + {{else value.f_type}} + {{:value.f_type}} + {{else}} + Disabled + {{/if}} +
+ {{/for}} +
+
+
+ +{{/if}} diff --git a/nano/templates/omni_mixer.tmpl b/nano/templates/omni_mixer.tmpl index d2f5b1e2680..52c5d02b05c 100644 --- a/nano/templates/omni_mixer.tmpl +++ b/nano/templates/omni_mixer.tmpl @@ -1,101 +1,141 @@
-
+
+ Power: +
+
{{:helper.link(data.power ? 'On' : 'Off', null, {'command' : 'power'}, data.config ? 'disabled' : null)}}
-
+
+ +
+
+ Config: +
+
{{:helper.link('Configure', null, {'command' : 'configure'}, null, data.config ? 'selected' : null)}}
- - {{if data.config}} - -
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Input
- {{for data.ports}} -
- {{:helper.link(' ', null, value.input ? {'command' : 'switch_mode', 'mode' : 'none', 'dir' : value.dir} : {'command' : 'switch_mode', 'mode' : 'in', 'dir' : value.dir}, value.output ? 'disabled' : null, value.input ? 'selected' : null)}} -
- {{/for}} -
-
-
Output
- {{for data.ports}} -
- {{:helper.link(' ', null, value.output ? null : {'command' : 'switch_mode', 'mode' : 'out', 'dir' : value.dir}, null, value.output ? 'selected' : null)}} -
- {{/for}} -
-
-
Concentration
- {{for data.ports}} -
- {{:helper.link( value.input ? helper.round(value.concentration*100)+' %' : '-', null, {'command' : 'switch_con', 'dir' : value.dir}, value.input ? null : 'disabled')}} -
- {{/for}} -
-
-
Lock
- {{for data.ports}} -
- {{:helper.link(' ', value.con_lock ? 'locked' : 'unlocked', {'command' : 'switch_conlock', 'dir' : value.dir}, value.input ? null : 'disabled', value.con_lock ? 'selected' : null)}} -
- {{/for}} -
-
+
-
- Set Flow Rate Limit: {{:(data.set_flow_rate/10)}} L/s -
-
- {{:helper.link('Set Flow Rate Limit', null, {'command' : 'set_flow_rate'})}} -
- - {{else}} - -
-
-
Port
- {{for data.ports}} -
{{:value.dir}} Port
- {{/for}} -
-
-
Mode
- {{for data.ports}} -
- {{if value.input}} - Input - {{else value.output}} - Output - {{else}} - Disabled - {{/if}} -
- {{/for}} -
-
-
Concentration
- {{for data.ports}} -
- {{if value.input}} - {{:helper.round(value.concentration*100)}} % - {{else}} - - - {{/if}} -
- {{/for}} -
-
+
+
+ Set Flow Rate Limit: +
+
+
+ {{if data.config}} + {{:helper.link(data.set_flow_rate/10, null, {'command' : 'set_flow_rate'})}} L/s + {{else}} + {{:(data.set_flow_rate/10)}} L/s + {{/if}} +
+
+
-
- Flow Rate: {{:(data.last_flow_rate/10)}} L/s -
+
+
+ Current Flow Rate: +
+
+
+ {{:(data.last_flow_rate/10)}} L/s +
+
+
- {{/if}} -
\ No newline at end of file +
+
+ Load: +
+
+ {{:helper.displayBar(data.last_power_draw, 0, data.max_power_draw, (data.last_power_draw < data.max_power_draw - 5) ? 'good' : 'average')}} +
+ {{:data.last_power_draw}} W +
+
+
+ +{{if data.config}} + +
+
+
+
Port
+ {{for data.ports}} +
{{:value.dir}} Port
+ {{/for}} +
+
+
Input
+ {{for data.ports}} +
+ {{:helper.link(' ', null, value.input ? {'command' : 'switch_mode', 'mode' : 'none', 'dir' : value.dir} : {'command' : 'switch_mode', 'mode' : 'in', 'dir' : value.dir}, value.output ? 'disabled' : null, value.input ? 'selected' : null)}} +
+ {{/for}} +
+
+
Output
+ {{for data.ports}} +
+ {{:helper.link(' ', null, value.output ? null : {'command' : 'switch_mode', 'mode' : 'out', 'dir' : value.dir}, null, value.output ? 'selected' : null)}} +
+ {{/for}} +
+
+
Concentration
+ {{for data.ports}} +
+ {{:helper.link( value.input ? helper.round(value.concentration*100)+' %' : '-', null, {'command' : 'switch_con', 'dir' : value.dir}, value.input ? null : 'disabled')}} +
+ {{/for}} +
+
+
Lock
+ {{for data.ports}} +
+ {{:helper.link(' ', value.con_lock ? 'locked' : 'unlocked', {'command' : 'switch_conlock', 'dir' : value.dir}, value.input ? null : 'disabled', value.con_lock ? 'selected' : null)}} +
+ {{/for}} +
+
+
+ +{{else}} + +
+
+
+
Port
+ {{for data.ports}} +
{{:value.dir}} Port
+ {{/for}} +
+
+
Mode
+ {{for data.ports}} +
+ {{if value.input}} + Input + {{else value.output}} + Output + {{else}} + Disabled + {{/if}} +
+ {{/for}} +
+
+
Concentration
+ {{for data.ports}} +
+ {{if value.input}} + {{:helper.round(value.concentration*100)}} % + {{else}} + - + {{/if}} +
+ {{/for}} +
+
+
+ +{{/if}} \ No newline at end of file