Actions

Difference between revisions of "Update v0.2.4294.19984"

From Unofficial Stationeers Wiki

m (Fixed some typos, removed duplicate text)
m (Minor edits to changelog)
 
Line 1: Line 1:
 
[[Category:Updates]]
 
[[Category:Updates]]
 
 
{{Infobox | decat = yes
 
{{Infobox | decat = yes
 
  | title = The Airflow Update
 
  | title = The Airflow Update
Line 8: Line 7:
 
     |  data1 = Big Update
 
     |  data1 = Big Update
 
     | label2 = Release
 
     | label2 = Release
     |  data2 = 21.08.2023 04:44 CEST
+
     |  data2 = 2023.28.21 - 02:27 UTC
 
     | label3 = Hyperlink
 
     | label3 = Hyperlink
     |  data3 = [https://store.steampowered.com/news/app/544550/view/3671049809726932936 Steam]
+
     |  data3 = [https://store.steampowered.com/news/app/544550/view/3671049809726932936 Steam] [https://steamdb.info/patchnotes/11988597/ SteamDB]
 
   }}
 
   }}
 
  | header2 = {{Infobox | decat = yes | child = yes
 
  | header2 = {{Infobox | decat = yes | child = yes
Line 158: Line 157:
  
 
== Changelog ==
 
== Changelog ==
* Updated suit and helmet for main menu scene and character customization scene
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Updated suit and helmet for main menu scene and character customization scene
* Fixed spelling errors in new heat exchanger descriptions
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed spelling errors in new heat exchanger descriptions
* Updated uvs and textures for hardsuit
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Updated uvs and textures for hardsuit
* Fixed spelling mistake in character customization menu
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed spelling mistake in character customization menu
* Fixed spelling mistake for heat exchanger kit
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed spelling mistake for heat exchanger kit
* Fixed fan blade direction not representing the flow of gas for the Powered Vent
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed fan blade direction not representing the flow of gas for the Powered Vent
* Fixed wall heater color not changing when turned on
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed wall heater color not changing when turned on
* Added input blocker to pause menu to stop in-world screens from being interactable while paused
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added input blocker to pause menu to stop in-world screens from being interactable while paused
* Fixed inconsistent naming for pipes and pipe kits
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed inconsistent naming for pipes and pipe kits
* Fixed incorrectly sized collider on low volume pipe kits
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed incorrectly sized collider on low volume pipe kits
* Improved behaviour of PassthroughHeatExchanger. Now implements a crossflow behaviour where-by it is possible to have the two inputs come close to swapping temperatures.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Improved behaviour of PassthroughHeatExchanger. Now implements a crossflow behaviour where-by it is possible to have the two inputs come close to swapping temperatures.
* Added RemoveToEqualize to AtmosphereHelper.cs This calculates the amount of gas required to Equalize input pressure with output pressure, removes it from the input and returns it for further calculations.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added RemoveToEqualize to AtmosphereHelper.cs This calculates the amount of gas required to Equalize input pressure with output pressure, removes it from the input and returns it for further calculations.
* Refactored MoveToEqualize to call RemoveToEqualise.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Refactored MoveToEqualize to call RemoveToEqualise.
* Renamed AtmosphericsManager.TickSpeedMs to AtmosphericsManager.TickSpeedSeconds as this was what it was actually returning.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Renamed AtmosphericsManager.TickSpeedMs to AtmosphericsManager.TickSpeedSeconds as this was what it was actually returning.
* Changed Heat Exchangers to show energy exchanged each tick in kJ.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed Heat Exchangers to show energy exchanged each tick in kJ.
* Fixed AtmosAnalyser only runs analysis code when held in hand of local player.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed AtmosAnalyser only runs analysis code when held in hand of local player.
* Changed Moved AtmosAnalyser value generation to main thread to prevent flickering values, it now reads the cached values.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed Moved AtmosAnalyser value generation to main thread to prevent flickering values, it now reads the cached values.
* Improved tooltips around spray gun fail states
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Improved tooltips around spray gun fail states
* Added new models for small tanks. This is purely an aesthetic change. No change to functionality.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added new models for small tanks. This is purely an aesthetic change. No change to functionality.
* Fixed wind turbines being functional inside frames
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed wind turbines being functional inside frames
* Fixed issue with re-connecting after a client disconnects. The disconnected client no longer needs to restart the game before reconnecting
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed issue with re-connecting after a client disconnects. The disconnected client no longer needs to restart the game before reconnecting
* Optimised PassthroughHeatExchanger simulation function.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Optimised PassthroughHeatExchanger simulation function.
* Fixed Gas Mixer tooltip rounds Setting wheel to whole number, now shows decimal places.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Gas Mixer tooltip rounds Setting wheel to whole number, now shows decimal places.
* Tweaked mesh for basic suit helmet
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Tweaked mesh for basic suit helmet
* Fixed insulated tanks being offset incorrectly after model update.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed insulated tanks being offset incorrectly after model update.
* Added bobble heads for future content
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added bobble heads for future content
* Restructured Gases Mixing in world, to allow better flow control. Gases in world now will move towards lower pressure areas faster, with speeds to pull vacuums with normal active vents increased by 300% in best cases, and 150% in more typical large rooms. The amount of gas which 'moves' up pressure gradients has been reduced, reducing the amount of 'reverse gas spread' happening between large pressure differential world grids. Gas spreading in narrow tunnels will also see an increase in movement.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Restructured Gases Mixing in world, to allow better flow control. Gases in world now will move towards lower pressure areas faster, with speeds to pull vacuums with normal active vents increased by 300% in best cases, and 150% in more typical large rooms. The amount of gas which 'moves' up pressure gradients has been reduced, reducing the amount of 'reverse gas spread' happening between large pressure differential world grids. Gas spreading in narrow tunnels will also see an increase in movement.
* reverting wind(Direction vector) calculations to previous state, to address downwards wind on pressurized planets. Atmospheres will still mix according to new mixing rules.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Reverting wind(Direction vector) calculations to previous state, to address downwards wind on pressurized planets. Atmospheres will still mix according to new mixing rules.
* Added prototype assets and behaviour for rocket datalink logic devices.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added prototype assets and behaviour for rocket datalink logic devices.
* Changed separated Data and power device dirty process for cable networks.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed separated Data and power device dirty process for cable networks.
* Removed unneeded process in RecalculateDeviceListSorted Function.
+
*<span style="color:#E50000;font-weight:bold">[Removed]</span> Removed unneeded process in RecalculateDeviceListSorted Function.
* Removed unnecessary step in GetNextValidThing function.
+
*<span style="color:#E50000;font-weight:bold">[Removed]</span> Removed unnecessary step in GetNextValidThing function.
* Fixed Null-collider in broken build-state of arc furnace.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Null-collider in broken build-state of arc furnace.
* Fixed mix in world wind calculations not using a cached pressure value, causing wind coming from global atmospheres to be incorrectly strong.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed mix in world wind calculations not using a cached pressure value, causing wind coming from global atmospheres to be incorrectly strong.
* Fixed unusually strong wind when mining on Venus, as wind strength should now scale with volume extracted.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed unusually strong wind when mining on Venus, as wind strength should now scale with volume extracted.
* Fixed small insulated tank blueprints
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed small insulated tank blueprints
* changed datastructure for atmospheric mixing data caching to reduce garbage creation.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed datastructure for atmospheric mixing data caching to reduce garbage creation.
* Fixed face mounted structure placement placing on the wrong side of the supporting structure if the player was standing on it.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed face mounted structure placement placing on the wrong side of the supporting structure if the player was standing on it.
* Added 1st pass of rocket location data authoring system.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added 1st pass of rocket location data authoring system.
* Tweaked overalls mesh rig
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Tweaked overalls mesh rig
* Added WIP placeholder launch pad pieces
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Added WIP placeholder launch pad pieces
* Refactored landing pad networks to allow for a generic modular structure and added the launchpad structure using it
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Refactored landing pad networks to allow for a generic modular structure and added the launchpad structure using it
* Improvements to Rocket Location data authoring.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Improvements to Rocket Location data authoring.
* Added Concept of space map to rocket location data.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Concept of space map to rocket location data.
* Added Data validation and error logging to rocket data location parsing.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Data validation and error logging to rocket data location parsing.
* Added Instanced classes for rocket locations.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Instanced classes for rocket locations.
* fixed issue where close to global atmospheres could flicker their neighbours into existence every other tick, due to not caching atmos state prior to attempting to mix in world, causing memory issues.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed issue where close to global atmospheres could flicker their neighbours into existence every other tick, due to not caching atmos state prior to attempting to mix in world, causing memory issues.
* A mixing atmosphere will spark its neighbours if it is ignited, which should cause more flash fires, instead of slow isolated flames in one tile.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> A mixing atmosphere will spark its neighbours if it is ignited, which should cause more flash fires, instead of slow isolated flames in one tile.
* Fixed a number of devices instancing new materials every-time their anim state changed.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed a number of devices instancing new materials every-time their anim state changed.
* Zrillian lungs now have a wider safe temperature range, and don't take damage between -20c to 80c, up from -10c to 50c of humans. Warnings remain unaffected, as the zrillians don't necessarily like these temperatures.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Zrillian lungs now have a wider safe temperature range, and don't take damage between -20c to 80c, up from -10c to 50c of humans. Warnings remain unaffected, as the zrillians don't necessarily like these temperatures.
* Added first pass on rocket control motherboard and UI
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added first pass on rocket control motherboard and UI
* Added missing message factory changes
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added missing message factory changes
* Renamed ReferencableHelper.cs to Referencable.cs
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Renamed ReferencableHelper.cs to Referencable.cs
* Added SpaceMap and SpaceMapNode data synchronisation to clients.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added SpaceMap and SpaceMapNode data synchronisation to clients.
* Added WIP code for Rocket travel between SpaceMap nodes.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added WIP code for Rocket travel between SpaceMap nodes.
* Added IRocketPath and IRocketDestination Interfaces to handle leaving and returning to launch pad.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added IRocketPath and IRocketDestination Interfaces to handle leaving and returning to launch pad.
* Disabled prototype launch animation.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Disabled prototype launch animation.
* Changed Mass to be a property. And implemented placeHolder mass values on rocket fuselage, pipes and inline tanks.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed Mass to be a property. And implemented placeHolder mass values on rocket fuselage, pipes and inline tanks.
* Added Method to get starting map to SpaceMap.cs
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Method to get starting map to SpaceMap.cs
* Added LaunchPadNetwork now caches its centre piece in the same way as LandingPadNetwork.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added LaunchPadNetwork now caches its centre piece in the same way as LandingPadNetwork.
* Updated rocket location icon
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Updated rocket location icon
* Fixed NRE from rocket.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed NRE from rocket.
* Fixed Prototype LaunchPad prefabs
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Prototype LaunchPad prefabs
* Added CounterFlow heat exchanger to tier two pipe bender. The counter-flow heat exchanger passes gas and liquids from the input to the corresponding output passively based on pressure differential (or volume ratio differential in the case of liquids). Matching the flow rate of both inputs will allow for around 70% efficiency of heat reclamation (this allow for the swapping of temperatures between to pipe networks. Multiple exchangers can be daisy chained together to increase the heat reclamation efficiency.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added CounterFlow heat exchanger to tier two pipe bender. The counter-flow heat exchanger passes gas and liquids from the input to the corresponding output passively based on pressure differential (or volume ratio differential in the case of liquids). Matching the flow rate of both inputs will allow for around 70% efficiency of heat reclamation (this allow for the swapping of temperatures between to pipe networks. Multiple exchangers can be daisy chained together to increase the heat reclamation efficiency.
* Updated WorldManager source prefabs in scene.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Updated WorldManager source prefabs in scene.
* Fixed Pumps and other pipe devices changing color on load.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Pumps and other pipe devices changing color on load.
* Removed Outline effect demo scripts.
+
*<span style="color:#E50000;font-weight:bold">[Removed]</span> Removed Outline effect demo scripts.
* Added first pass on star map UI for rockets
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added first pass on star map UI for rockets
* Added rocket can now path to orbit.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added rocket can now path to orbit.
* Changed all pipes can now be built in a fuselage
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed all pipes can now be built in a fuselage
* Fixed Stacking PureIce would zero out the spawn contents.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Stacking PureIce would zero out the spawn contents.
* Added Logic variables to avionics Device.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Logic variables to avionics Device.
* Changed a number of single-grid atmos devices to be allowed to be built in rockets.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed a number of single-grid atmos devices to be allowed to be built in rockets.
* Added rocket command to print destination IDs.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added rocket command to print destination IDs.
* Added support for dynamically created and destroyed SpaceMap nodes.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added support for dynamically created and destroyed SpaceMap nodes.
* Changed Launch pads now generate a new node once they have a valid centre piece.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed Launch pads now generate a new node once they have a valid centre piece.
* Fixed An uncommon crash when running the StateChange fix on a custom world save.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed An uncommon crash when running the StateChange fix on a custom world save.
* Added dynamic locations to map view (WIP)
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added dynamic locations to map view (WIP)
* Fixed gas being created from spray cans being created with 0 energy
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed gas being created from spray cans being created with 0 energy
* Reverted the ability to use a spray can to paint the object in the other hand as this behaviour is confusing and not communicated.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Reverted the ability to use a spray can to paint the object in the other hand as this behaviour is confusing and not communicated.
* Portable generator no longer continues providing power once the canister runs out
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Portable generator no longer continues providing power once the canister runs out
* Fixed the blueprint for the Hydroponics Station kit
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed the blueprint for the Hydroponics Station kit
* added missing blueprint for automated hydroponics kit
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added missing blueprint for automated hydroponics kit
* Added Pathfinding algorithm so rocket can path to/from any destination on the space-map.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Pathfinding algorithm so rocket can path to/from any destination on the space-map.
* Added Pathfinding testing command for validating authored data.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Pathfinding testing command for validating authored data.
* Added Rocket movement logic has collection of Node-connections and can path through multiple nodes to reach target destination.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Rocket movement logic has collection of Node-connections and can path through multiple nodes to reach target destination.
* Fixed Some nodes being registered twice to the space-map.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Some nodes being registered twice to the space-map.
* Fixed some merge errors with map view
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed some merge errors with map view
* Fixed modular structure networks not registering devices correctly
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed modular structure networks not registering devices correctly
* Updated new rocket kits to be not spawn-able
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Updated new rocket kits to be not spawn-able
* Fixed launchpads being registered as landing pad networks
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed launchpads being registered as landing pad networks
* Changed star map to use grid based panel for dynamic locations rather than a radial layout. The position of these can be authored in the XML to achieve a nice map layout
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed star map to use grid based panel for dynamic locations rather than a radial layout. The position of these can be authored in the XML to achieve a nice map layout
* Fixed some devices would allow interaction even when in a locked state or when the player didn't have the correct access card.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed some devices would allow interaction even when in a locked state or when the player didn't have the correct access card.
* Fixed some cases where things could be interacted with when destroyed or incomplete.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed some cases where things could be interacted with when destroyed or incomplete.
* Added temporary method for rocket to link to a landing pad node
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added temporary method for rocket to link to a landing pad node
* Fixed launch pad networks not being cleared when unloading
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed launch pad networks not being cleared when unloading
* Fixed Device Locking fix prevented airlock cycling using door interaction panel.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Device Locking fix prevented airlock cycling using door interaction panel.
* Fixed Null reference exception on server when writing DynamicPanelData.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Null reference exception on server when writing DynamicPanelData.
* Fixed Can't interact with slots when device locked (beta only)
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Can't interact with slots when device locked (beta only)
* Fixed Settable Atmospheric devices show incorrect tooltip on setting wheel when locked.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Settable Atmospheric devices show incorrect tooltip on setting wheel when locked.
* Fixed launch pads not deregistering correctly on destroy
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed launch pads not deregistering correctly on destroy
* Fixed space map nodes not removing all their connections when deregistering
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed space map nodes not removing all their connections when deregistering
* Added 4 new bench variants
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added 4 new bench variants
* Removed some temp images from rocket info canvas
+
*<span style="color:#E50000;font-weight:bold">[Removed]</span> Removed some temp images from rocket info canvas
* Fixed incorrect calling placement of base.OnDestroy in LandingPadModular.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed incorrect calling placement of base.OnDestroy in LandingPadModular.
* Fixed Pipe mounted LiquidDrain throws error when pipe removed.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Pipe mounted LiquidDrain throws error when pipe removed.
* Small Clean up of DevicePipeMounted code
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Small Clean up of DevicePipeMounted code
* Removed Prototype launchpad pieces from kit (LandingPadBasic)
+
*<span style="color:#E50000;font-weight:bold">[Removed]</span> Removed Prototype launchpad pieces from kit (LandingPadBasic)
* Fixed A save with a Pad Network with no saved networkId would not load.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed A save with a Pad Network with no saved networkId would not load.
* Changed UpdateThings on GameStart to run once gameState is set to running (this was the behaviour on clients, should also be behaviour on server)
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Changed UpdateThings on GameStart to run once gameState is set to running (this was the behaviour on clients, should also be behaviour on server)
* Moved some classes into an appropriate namespace
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Moved some classes into an appropriate namespace
* Added temporary method to refresh rocket internals when you modify the rocket network
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added temporary method to refresh rocket internals when you modify the rocket network
* Added rocket refresh command to help with debugging rocket behaviour
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added rocket refresh command to help with debugging rocket behaviour
* Fixed rocket engines being registered multiple times in rocket network
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed rocket engines being registered multiple times in rocket network
* Fixed TurbineGenerator Animation and sound not synced to clients.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed TurbineGenerator Animation and sound not synced to clients.
* Added Some WIP electrolysis code.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added Some WIP electrolysis code.
* Fixed Unable to turn on/off light or flush locked helmet using interactable buttons (beta only).
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Unable to turn on/off light or flush locked helmet using interactable buttons (beta only).
* Fixed MAX_ENERGY Constant being too low causing large tanks with too much liquid in them to have their contents deleted on load.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed MAX_ENERGY Constant being too low causing large tanks with too much liquid in them to have their contents deleted on load.
* Fixed Incorrect serialisation type for network messages for Setting and Quantity of digital chute devices.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Incorrect serialisation type for network messages for Setting and Quantity of digital chute devices.
* Added PlaceHolder Rocket Mining device.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added PlaceHolder Rocket Mining device.
* Added OnFishedLoad call to StructureNetwork.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added OnFishedLoad call to StructureNetwork.
* Fixed Rocket doesn't find launchpad on load.
+
*<span style="color:#E5BF00;font-weight:bold">[Fixed]</span> Fixed Rocket doesn't find launchpad on load.
* Added hashing of Id to spaceMap node.
+
*<span style="color:#267F00;font-weight:bold">[Added]</span> Added hashing of Id to spaceMap node.
* Implemented IRocketInternals on Chutes.
+
*<span style="color:#E57125;font-weight:bold">[Changed]</span> Implemented IRocketInternals on Chutes.
* Removed prototype launchpad tower base from incorrect kit
+
*<span style="color:#E50000;font-weight:bold">[Removed]</span> Removed prototype launchpad tower base from incorrect kit
  
 
== References ==
 
== References ==
# [https://store.steampowered.com/news/app/544550/view/3671049809726932936 Link to update on Steam]
+
# [https://store.steampowered.com/news/app/544550/view/3671049809726932936 Update on Steam]
 +
# [https://steamdb.info/patchnotes/11988597/ Update on SteamDB]

Latest revision as of 12:21, 3 December 2023

The Airflow Update
v0.2.4294.19984
Type Big Update
Release 2023.28.21 - 02:27 UTC
Hyperlink Steam SteamDB
Adjacent Updates
Subsequent Hotfix (v0.2.4297.19997)
Previous The Powered Vent Update (v0.2.4258.19848)
Back to overview of all updates

Content[edit]

Atmospheric Simulation[edit]

Today we’re going to go into detail about the atmospheric simulation in Stationeers. We’ll give a short walkthrough about how we identify issues, think of solutions, test and iterate until we’ve solved problems or added new features. Specifically World Atmospheres, and how they move gas throughout the game, and especially how fast vacuums form. Of the many complex systems Stationeers models, the atmospherics simulation is the most defining. Two times per second; pumps move gas, filters split compositions, pipes check for bursting, and much much more. A lot of the gas the player interacts with comes from the world, or ends being vented there. Unfortunately, the speed to pull a vacuum in world has always been one of the largest bottlenecks for Stationeers.

Update v0.2.4294.19984 gif 1.gif


Table of times of original vacuum times[edit]

6 Tile Airlock Test 100kPa to 10kPa* 10kPa to 1kPa 100Pa 10Pa 1Pa
Legacy Code 28s 18s 37s 1m32s 2m05s
Medium Room (5x5x5) Test 100kPa to 10kPa* 10kPa to 1kPa 100Pa 10Pa 1Pa
Legacy Code 10m 3m10s 6m45s 10m15s 13m45s

*The initial 100kPa to 10kPa time is solely driven by the active vent speed, and this is not summed into the proceeding columns.

These tables demonstrate the power of the active vent. 90% of the air can be pulled rather quickly, but as soon as the World Atmosphere hits the vacuum floor, removing the remaining 10% of the air can take 200%-400% more time than the original 90%.

Twice per second, every World Atmosphere in the game mixes with its neighbors. In world atmospheres, are large 2m*2m*2m cubes containing 8000 litres of gas, and do a multistep job of equalizing itself and any of its 6 neighbors every half a second. This has worked well for distributing air around in the game, but has its limitations, when one tile is being vacuumed.

Even if one tile was very low pressure compared to its neighbor, the high pressure tile would still take a tiny part of the low pressure tile for itself. In very low pressure situations, this effect was significant. So what happens if we pick a fixed value, and say tiles can't take from smaller than 80%, and also won't give to tiles bigger than 120%. Not only might this speed up vacuum mixing, but it would also allow high pressure flows, to keep low pressure gases from mixing upstream, a bonus feature.

Update v0.2.4294.19984 gif 2.gif

Comparison with First Attempt[edit]

6 Tile Airlock Test 10kPa 1kPa 100Pa 10Pa 1Pa
Legacy Code 18s 37s 1m32s 2m05s
Attempt 1 (No upstream mixing) 6s 13s 22s 30s
Medium Room (5x5x5) Test 10kPa 1kPa 100Pa 10Pa 1Pa
Legacy Code 3m10s 6m45s 10m15s 13m45s
Attempt 1 (No upstream mixing) 2m10s 4m45s 7m15s 9m45s

In a 6 tile large airlock, the vacuum stage of cycling performance is 300% better, and in our large room its 40%. The large room doesn't see as much of a time decrease, because that amount of air is just able to keep the vent more saturated, but at 4 minutes faster, it's still a huge improvement.

However, with our oversimplification of the problem, and first attempt at a solution, we’ve introduced a slight issue. Since the taking, or giving, of air isn't just the comparison of two atmospheres, but instead 6, we can find ourselves in a situation where all the higher pressure atmospheres give us a portion of their air, and we end up being higher pressure than any single one of the atmospheres. Then the next tick, the situation has reversed, and the air exclusively moves away. This mass rebounding would only happen in certain setups/configurations, but created a vortex of death when it did.

Update v0.2.4294.19984 gif 3.gif

So, lets add some math to reduce the mixing amount so no single tick can make an atmosphere overshoot its neighbors' pressure and see what happens.

Comparison with Second Attempt[edit]

6 Tile Airlock Test 10kPa 1kPa 100Pa 10Pa 1Pa
Legacy Code 18s 37s 1m32s 2m05s
Attempt 1 (No upstream mixing) 6s 13s 22s 30s
Attempt 2 (Fixed 14% mixing limit) 15s 31s 47s 1m3s
Medium Room (5x5x5) Test 10kPa 1kPa 100Pa 10Pa 1Pa
Legacy Code 3m10s 6m45s 10m15s 13m45s
Attempt 1 (No upstream mixing) 2m10s 4m45s 7m15s 9m45s
Attempt 2 (Fixed 14% mixing limit) 2m30s 5m25s 8m20s 11m15s

This fix addresses the problem while maintaining no up-pressure mixing, but directly counters our biggest desire to have vacuums pull faster.

Compromising on the first theorized ‘solution’ of eliminating backwards mixing to speed up vacuums. What if we still take large portions, but scale it based on how many neighbors, and change the 20% bigger/smaller take limits, into linear interpolations, where we just start scaling and taking/giving less, instead of taking none/all.

Comparison with Third Attempt[edit]

6 Tile Airlock Test 10kPa 100kPa to 10kPa 10kPa to 1kPa 100Pa 10Pa 1Pa
Legacy Code 28s 18s 37s 1m32s 2m05s
Attempt 3 (1/open+1) 27s 7s 15s 24s 31s
Medium Room (5x5x5) Test 10kPa 100kPa to 10kPa 10kPa to 1kPa 100Pa 10Pa 1Pa
Legacy Code 10m 3m10s 6m45s 10m15s 13m45s
Attempt 3 (1/open+1) 9m30s 2m16s 5m 7m40s 10m10s

This third attempt nearly has the speed of our first attempt, while fixing issues with bouncing pressure waves.

So while our test case mainly focused on pulling vacuums, these changes dictate the general movement speed of gas even when in a sealed hallway. Gas leaks spreading through your base, holes exposing your atmosphere to the outside, or any other period of high pressure differential, should feel more significant and happen quicker.

While our solution didn't fully prevent ‘up pressure’ mixing, many situations, such as accidentally opening a window on Europa, now behave in a much more expected manner. Very little cold air will leak in while your nice base air blows outwards, but as soon as the wind dies down from the dropping pressure, the ice Europa air will overtake the room.

Hopefully you’ve enjoyed this peek into just one portion of the many simulations we need to constantly run to keep your stations ticking. Revisiting core functionality can be risky as we could suddenly break everyone's bases, but when we have clear goals, and reference points to aim for, this is the sort of careful approach we like to take.

And by the way, we recently added two new devices to the game; the powered vent, and large powered vent. These vents are allowed to traverse neighbor atmospheres when pulling a vacuum to do so even quicker. At the low pressures we’ve been talking about in the test data, they pull vacuums in a matter of seconds. But even in a fully pressurized room, they are 2x, and 4x the strength of a standard active vent, and can evacuate large amounts of gas very quickly.


Large Powered Vent Test[edit]

6 Tile Airlock Test 100kPa to 0kPa
1 Large powered vent 8s
Medium Room (5x5x5) Test 100kPa to 0kPa
1 Large powered vent 2m40s

Counterflow Heat Exchanger[edit]

The counterflow heat exchanger was not ready in time to be released with the other new heat exchangers but is finally ready! By drawing down the pressure of the outputs with a pump or regulator and regulating input pressures, the temperatures of two counter flowing networks can be effectively exchanged. Balancing the throughput of both inputs is key to creating a good exchange of temperatures.

Update v0.2.4294.19984 picture 1.png

New Powered Bench Variants[edit]

Four new powered bench variants have been added to give you more options when building your various rooms in your base and give you more variety.

Update v0.2.4294.19984 picture 2.png

Changelog[edit]

  • [Changed] Updated suit and helmet for main menu scene and character customization scene
  • [Fixed] Fixed spelling errors in new heat exchanger descriptions
  • [Changed] Updated uvs and textures for hardsuit
  • [Fixed] Fixed spelling mistake in character customization menu
  • [Fixed] Fixed spelling mistake for heat exchanger kit
  • [Fixed] Fixed fan blade direction not representing the flow of gas for the Powered Vent
  • [Fixed] Fixed wall heater color not changing when turned on
  • [Added] Added input blocker to pause menu to stop in-world screens from being interactable while paused
  • [Fixed] Fixed inconsistent naming for pipes and pipe kits
  • [Fixed] Fixed incorrectly sized collider on low volume pipe kits
  • [Changed] Improved behaviour of PassthroughHeatExchanger. Now implements a crossflow behaviour where-by it is possible to have the two inputs come close to swapping temperatures.
  • [Added] Added RemoveToEqualize to AtmosphereHelper.cs This calculates the amount of gas required to Equalize input pressure with output pressure, removes it from the input and returns it for further calculations.
  • [Changed] Refactored MoveToEqualize to call RemoveToEqualise.
  • [Changed] Renamed AtmosphericsManager.TickSpeedMs to AtmosphericsManager.TickSpeedSeconds as this was what it was actually returning.
  • [Changed] Changed Heat Exchangers to show energy exchanged each tick in kJ.
  • [Fixed] Fixed AtmosAnalyser only runs analysis code when held in hand of local player.
  • [Changed] Changed Moved AtmosAnalyser value generation to main thread to prevent flickering values, it now reads the cached values.
  • [Changed] Improved tooltips around spray gun fail states
  • [Added] Added new models for small tanks. This is purely an aesthetic change. No change to functionality.
  • [Fixed] Fixed wind turbines being functional inside frames
  • [Fixed] Fixed issue with re-connecting after a client disconnects. The disconnected client no longer needs to restart the game before reconnecting
  • [Changed] Optimised PassthroughHeatExchanger simulation function.
  • [Fixed] Fixed Gas Mixer tooltip rounds Setting wheel to whole number, now shows decimal places.
  • [Changed] Tweaked mesh for basic suit helmet
  • [Fixed] Fixed insulated tanks being offset incorrectly after model update.
  • [Added] Added bobble heads for future content
  • [Changed] Restructured Gases Mixing in world, to allow better flow control. Gases in world now will move towards lower pressure areas faster, with speeds to pull vacuums with normal active vents increased by 300% in best cases, and 150% in more typical large rooms. The amount of gas which 'moves' up pressure gradients has been reduced, reducing the amount of 'reverse gas spread' happening between large pressure differential world grids. Gas spreading in narrow tunnels will also see an increase in movement.
  • [Changed] Reverting wind(Direction vector) calculations to previous state, to address downwards wind on pressurized planets. Atmospheres will still mix according to new mixing rules.
  • [Added] Added prototype assets and behaviour for rocket datalink logic devices.
  • [Changed] Changed separated Data and power device dirty process for cable networks.
  • [Removed] Removed unneeded process in RecalculateDeviceListSorted Function.
  • [Removed] Removed unnecessary step in GetNextValidThing function.
  • [Fixed] Fixed Null-collider in broken build-state of arc furnace.
  • [Fixed] Fixed mix in world wind calculations not using a cached pressure value, causing wind coming from global atmospheres to be incorrectly strong.
  • [Fixed] Fixed unusually strong wind when mining on Venus, as wind strength should now scale with volume extracted.
  • [Fixed] Fixed small insulated tank blueprints
  • [Changed] Changed datastructure for atmospheric mixing data caching to reduce garbage creation.
  • [Fixed] Fixed face mounted structure placement placing on the wrong side of the supporting structure if the player was standing on it.
  • [Added] Added 1st pass of rocket location data authoring system.
  • [Changed] Tweaked overalls mesh rig
  • [Fixed] Added WIP placeholder launch pad pieces
  • [Changed] Refactored landing pad networks to allow for a generic modular structure and added the launchpad structure using it
  • [Changed] Improvements to Rocket Location data authoring.
  • [Added] Added Concept of space map to rocket location data.
  • [Added] Added Data validation and error logging to rocket data location parsing.
  • [Added] Added Instanced classes for rocket locations.
  • [Fixed] Fixed issue where close to global atmospheres could flicker their neighbours into existence every other tick, due to not caching atmos state prior to attempting to mix in world, causing memory issues.
  • [Changed] A mixing atmosphere will spark its neighbours if it is ignited, which should cause more flash fires, instead of slow isolated flames in one tile.
  • [Fixed] Fixed a number of devices instancing new materials every-time their anim state changed.
  • [Changed] Zrillian lungs now have a wider safe temperature range, and don't take damage between -20c to 80c, up from -10c to 50c of humans. Warnings remain unaffected, as the zrillians don't necessarily like these temperatures.
  • [Added] Added first pass on rocket control motherboard and UI
  • [Added] Added missing message factory changes
  • [Changed] Renamed ReferencableHelper.cs to Referencable.cs
  • [Added] Added SpaceMap and SpaceMapNode data synchronisation to clients.
  • [Added] Added WIP code for Rocket travel between SpaceMap nodes.
  • [Added] Added IRocketPath and IRocketDestination Interfaces to handle leaving and returning to launch pad.
  • [Changed] Disabled prototype launch animation.
  • [Changed] Changed Mass to be a property. And implemented placeHolder mass values on rocket fuselage, pipes and inline tanks.
  • [Added] Added Method to get starting map to SpaceMap.cs
  • [Added] Added LaunchPadNetwork now caches its centre piece in the same way as LandingPadNetwork.
  • [Changed] Updated rocket location icon
  • [Fixed] Fixed NRE from rocket.
  • [Fixed] Fixed Prototype LaunchPad prefabs
  • [Added] Added CounterFlow heat exchanger to tier two pipe bender. The counter-flow heat exchanger passes gas and liquids from the input to the corresponding output passively based on pressure differential (or volume ratio differential in the case of liquids). Matching the flow rate of both inputs will allow for around 70% efficiency of heat reclamation (this allow for the swapping of temperatures between to pipe networks. Multiple exchangers can be daisy chained together to increase the heat reclamation efficiency.
  • [Changed] Updated WorldManager source prefabs in scene.
  • [Fixed] Fixed Pumps and other pipe devices changing color on load.
  • [Removed] Removed Outline effect demo scripts.
  • [Added] Added first pass on star map UI for rockets
  • [Added] Added rocket can now path to orbit.
  • [Changed] Changed all pipes can now be built in a fuselage
  • [Fixed] Fixed Stacking PureIce would zero out the spawn contents.
  • [Added] Added Logic variables to avionics Device.
  • [Changed] Changed a number of single-grid atmos devices to be allowed to be built in rockets.
  • [Added] Added rocket command to print destination IDs.
  • [Added] Added support for dynamically created and destroyed SpaceMap nodes.
  • [Changed] Changed Launch pads now generate a new node once they have a valid centre piece.
  • [Fixed] Fixed An uncommon crash when running the StateChange fix on a custom world save.
  • [Added] Added dynamic locations to map view (WIP)
  • [Fixed] Fixed gas being created from spray cans being created with 0 energy
  • [Changed] Reverted the ability to use a spray can to paint the object in the other hand as this behaviour is confusing and not communicated.
  • [Changed] Portable generator no longer continues providing power once the canister runs out
  • [Fixed] Fixed the blueprint for the Hydroponics Station kit
  • [Added] Added missing blueprint for automated hydroponics kit
  • [Added] Added Pathfinding algorithm so rocket can path to/from any destination on the space-map.
  • [Added] Added Pathfinding testing command for validating authored data.
  • [Added] Added Rocket movement logic has collection of Node-connections and can path through multiple nodes to reach target destination.
  • [Fixed] Fixed Some nodes being registered twice to the space-map.
  • [Fixed] Fixed some merge errors with map view
  • [Fixed] Fixed modular structure networks not registering devices correctly
  • [Changed] Updated new rocket kits to be not spawn-able
  • [Fixed] Fixed launchpads being registered as landing pad networks
  • [Changed] Changed star map to use grid based panel for dynamic locations rather than a radial layout. The position of these can be authored in the XML to achieve a nice map layout
  • [Fixed] Fixed some devices would allow interaction even when in a locked state or when the player didn't have the correct access card.
  • [Fixed] Fixed some cases where things could be interacted with when destroyed or incomplete.
  • [Added] Added temporary method for rocket to link to a landing pad node
  • [Fixed] Fixed launch pad networks not being cleared when unloading
  • [Fixed] Fixed Device Locking fix prevented airlock cycling using door interaction panel.
  • [Fixed] Fixed Null reference exception on server when writing DynamicPanelData.
  • [Fixed] Fixed Can't interact with slots when device locked (beta only)
  • [Fixed] Fixed Settable Atmospheric devices show incorrect tooltip on setting wheel when locked.
  • [Fixed] Fixed launch pads not deregistering correctly on destroy
  • [Fixed] Fixed space map nodes not removing all their connections when deregistering
  • [Added] Added 4 new bench variants
  • [Removed] Removed some temp images from rocket info canvas
  • [Fixed] Fixed incorrect calling placement of base.OnDestroy in LandingPadModular.
  • [Fixed] Fixed Pipe mounted LiquidDrain throws error when pipe removed.
  • [Changed] Small Clean up of DevicePipeMounted code
  • [Removed] Removed Prototype launchpad pieces from kit (LandingPadBasic)
  • [Fixed] Fixed A save with a Pad Network with no saved networkId would not load.
  • [Changed] Changed UpdateThings on GameStart to run once gameState is set to running (this was the behaviour on clients, should also be behaviour on server)
  • [Changed] Moved some classes into an appropriate namespace
  • [Added] Added temporary method to refresh rocket internals when you modify the rocket network
  • [Added] Added rocket refresh command to help with debugging rocket behaviour
  • [Fixed] Fixed rocket engines being registered multiple times in rocket network
  • [Fixed] Fixed TurbineGenerator Animation and sound not synced to clients.
  • [Added] Added Some WIP electrolysis code.
  • [Fixed] Fixed Unable to turn on/off light or flush locked helmet using interactable buttons (beta only).
  • [Fixed] Fixed MAX_ENERGY Constant being too low causing large tanks with too much liquid in them to have their contents deleted on load.
  • [Fixed] Fixed Incorrect serialisation type for network messages for Setting and Quantity of digital chute devices.
  • [Added] Added PlaceHolder Rocket Mining device.
  • [Added] Added OnFishedLoad call to StructureNetwork.
  • [Fixed] Fixed Rocket doesn't find launchpad on load.
  • [Added] Added hashing of Id to spaceMap node.
  • [Changed] Implemented IRocketInternals on Chutes.
  • [Removed] Removed prototype launchpad tower base from incorrect kit

References[edit]

  1. Update on Steam
  2. Update on SteamDB