From 5836959388d872791484418156239193a2939c00 Mon Sep 17 00:00:00 2001 From: Errant <35878406+dmnct@users.noreply.github.com> Date: Sun, 23 Jul 2023 19:17:31 +0000 Subject: [PATCH] Gas tank cleanup and fix (#18214) * gas tank size tweaks * gas_tanks cleanup * gas_tanks cleanup * gas_tanks cleanup * gas tank supply time comment * gas tank cleanup * gas tank cleanup comments * gas tank cleanup * gas tank cleanup --- .../Catalog/Fills/Items/gas_tanks.yml | 90 +++++++++++-------- .../Entities/Objects/Tools/gas_tanks.yml | 31 +++---- 2 files changed, 70 insertions(+), 51 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml index 3be38d7074..01feb3f836 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml @@ -1,6 +1,24 @@ -# The number 1000 used in the rest of this file refers to the default -# MaxReleasePressure for a GasCanister, which is 10 * Atmospherics.OneAtmosphere, -# rounded down. +# Moles calculation +# +# moles = 1000 / (8.31446261 * 293.15 / volume) +# +# More practically: +# +# moles = volume * 0.41027581 +# +# Yes, you do need all those digits or your pressure wont end up exactly 1000 +# +# +# The number 1000 comes from the default MaxReleasePressure for a GasCanister, +# which is 10 * Atmospherics.OneAtmosphere, rounded down. +# +# 8.31446261 is the universal gas constant +# +# 293.15 is our default atmospheric temperature +# + +# If you change the mole amounts, you can calculate the new gas supply times with: +# minutes = (moles / outputPressure) * 325 - type: entity id: OxygenTankFilled @@ -8,12 +26,12 @@ suffix: Filled components: &oxyTankFill - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: + # 94 minutes volume: 15 moles: - # 1000 / (Atmospherics.R * temperature / volume) - - 6.154137219 + - 6.154137219 # oxygen temperature: 293.15 - type: entity @@ -28,11 +46,11 @@ suffix: Filled components: - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: + # 13 minutes volume: 2 moles: - # 1000 / (Atmospherics.R * temperature / volume) - 0.820551629 # oxygen temperature: 293.15 @@ -42,11 +60,11 @@ suffix: Filled components: - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: + # 38 minutes volume: 6 moles: - # 1000 / (Atmospherics.R * temperature / volume) - 2.461654887 # oxygen temperature: 293.15 @@ -56,12 +74,12 @@ suffix: Filled components: - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: + # 63 minutes volume: 10 moles: - # 1000 / (Atmospherics.R * temperature / volume) - - 4.102725815 # oxygen + - 4.102758145 # oxygen temperature: 293.15 - type: entity @@ -70,14 +88,14 @@ suffix: Filled components: - type: GasTank - outputPressure: 101.325 + outputPressure: 101.3 air: + # 20 minutes due to output pressure volume: 15 moles: - # (1000 * .22) / (Atmospherics.R * temperature / volume) - - 1.353910188 # oxygen - # (1000 * .78) / (Atmospherics.R * temperature / volume) - - 4.800227031 # nitrogen + - 1.353910188 # 22% oxygen + - 4.800227031 # 78% nitrogen + # 6.154137219 total temperature: 293.15 - type: entity @@ -87,12 +105,12 @@ name: nitrogen tank components: - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: + # 94 minutes volume: 15 moles: - - 0 # oxygen - # 1000 / (Atmospherics.R * temperature / volume) + - 0 # oxygen not included - 6.154137219 # nitrogen temperature: 293.15 @@ -108,20 +126,20 @@ # * 101.325 | one atmosphere # __________ # 30.3975 optimal output pressure - outputPressure: 30.3975 + outputPressure: 30.4 air: + # only 66 minutes due to pressure volume: 15 moles: - # (1000 * .7) / (Atmospherics.R * temperature / volume) - - 4.307896053 # oxygen - - 0 # Nitrogen + - 4.30789605 # 70% oxygen + - 0 # nitrogen - 0 # CO2 - - 0 # Plasma - - 0 # Tritium - - 0 # Water vapor - - 0 # Miasma - # (1000 * .3) / (Atmospherics.R * temperature / volume) - - 1.846241166 # N2O + - 0 # plasma + - 0 # tritium + - 0 # water vapor + - 0 # miasma + - 1.84624116 # 30% N2O + # 6.15413721 total temperature: 293.15 - type: entity @@ -131,13 +149,13 @@ suffix: Filled components: - type: GasTank - outputPressure: 101.325 + outputPressure: 101.3 air: + # 20 minutes of agony volume: 15 moles: - - 0 - - 0 - - 0 - # 1000 / (Atmospherics.R * temperature / volume) + - 0 # oxygen + - 0 # nitrogen + - 0 # CO2 - 6.154137219 # plasma temperature: 293.15 diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index de3d3a4388..69b2ee8f58 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -45,12 +45,12 @@ parent: GasTankBase id: OxygenTank name: oxygen tank - description: A tank of oxygen, this one is blue. + description: A standard cylindrical gas tank for oxygen. components: - type: Sprite sprite: Objects/Tanks/oxygen.rsi - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: volume: 15 temperature: 293.15 @@ -65,7 +65,7 @@ parent: OxygenTank id: YellowOxygenTank name: oxygen tank - description: A tank of oxygen. This one is in yellow. + description: A standard cylindrical gas tank for oxygen. This one is yellow. components: - type: Sprite sprite: Objects/Tanks/yellow.rsi @@ -79,7 +79,7 @@ parent: OxygenTank id: NitrogenTank name: nitrogen tank - description: A tank of nitrogen. + description: A standard cylindrical gas tank for nitrogen. components: - type: Sprite sprite: Objects/Tanks/red.rsi @@ -93,14 +93,14 @@ parent: OxygenTank id: EmergencyOxygenTank name: emergency oxygen tank - description: Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it. + description: An easily portable tank for emergencies. Contains very little oxygen, rated for survival use only. components: - type: Sprite sprite: Objects/Tanks/emergency.rsi - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: - volume: 3 + volume: 2 temperature: 293.15 - type: Item size: 10 @@ -122,12 +122,12 @@ parent: EmergencyOxygenTank id: ExtendedEmergencyOxygenTank name: extended-capacity emergency oxygen tank - description: Used for emergencies. Contains little oxygen, so try to conserve it until you actually need it. + description: An emergency tank with extended capacity. Technically rated for prolonged use. components: - type: Sprite sprite: Objects/Tanks/emergency_yellow.rsi - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: volume: 6 temperature: 293.15 @@ -144,13 +144,14 @@ parent: ExtendedEmergencyOxygenTank id: DoubleEmergencyOxygenTank name: double emergency oxygen tank + description: A high-grade dual-tank emergency life support container. It holds a decent amount of oxygen for it's small size. components: - type: Sprite sprite: Objects/Tanks/emergency_double.rsi - type: GasTank - outputPressure: 21.27825 + outputPressure: 21.3 air: - volume: 12 + volume: 10 temperature: 293.15 - type: Item size: 10 @@ -175,7 +176,7 @@ - type: Sprite sprite: Objects/Tanks/generic.rsi - type: GasTank - outputPressure: 101.325 + outputPressure: 101.3 air: volume: 15 temperature: 293.15 @@ -194,7 +195,7 @@ - type: Sprite sprite: Objects/Tanks/anesthetic.rsi - type: GasTank - outputPressure: 30.3975 + outputPressure: 30.4 air: volume: 15 temperature: 293.15 @@ -213,12 +214,12 @@ - type: Sprite sprite: Objects/Tanks/plasma.rsi - type: GasTank - outputPressure: 101.325 + outputPressure: 101.3 air: volume: 15 temperature: 293.15 - type: Item - size: 10 + size: 15 - type: Clothing sprite: Objects/Tanks/plasma.rsi slots: