Stationeers

Short Circuit: Liquid Device Interactions

Liquid Device Interaction


A system to allow liquids to interact with devices has now been added that will mean that some devices will now have an adverse reaction to being submerged in water. Devices currently behave in one of two ways when in contact with liquids, they will either fry the attached cable or enter into an error state.

Manufacturing machines will enter an error state when in contact with liquids, and Area Power Controllers, Transformers and Station Batteries will blow the cables directly connected to them.

Before a device's cable blows you will be given some time visual and audio cues.



Currently the list of devices affected in this way is pretty short, but more interactions may be added later now that we have the system in place.



Better Water Visualizer


The liquid visualizer had a lot of literal edge cases where it would not look that good, for example the liquid could clip through some configurations of walls and windows, as well as being hidden under flooring.



This is no longer the case as we are doing a simple check to see what configuration of walls is around the liquid visualizer and shift it as necessary.

Additionally, the screen space affect that you see when you're underwater would stop working if you left a game and started a new one, but this has now been resolved.



Buoyancy Changes


A quick addition to the buoyancy system has allowed us to select some objects to not be buoyant. Again, we've just picked a select few items to enable this on and will add others as we see fit.
The current list of things that will sink are ores, ingots, and crates.





Pools of water


To prevent a small film of liquid spreading through your entire base we made the decision to have small "pools" of water not spread at all. The result of this was that it was easy to end up with lots of small pools around your base that were hard to collect. We've done two things to help with this:

Floor Drain Collection Radius


Floor Drains will now collect liquid from a 6-grid radius allowing you to have fewer floor drains to handle spilled liquids.



Liquid Vac


The Liquid Vac is much more powerful now cleaning up liquids 50 times faster. This, combined with being able to see the small pools on top of flooring, should allow you to quickly clean up any pools of liquid.


   


Your support makes these updates possible



https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/




Change Log v0.2.5284.23867


  • Fixed BatteryChargerSmall not being able to be connected to logic
  • Changed SpaceOreStackSize from const to static for modding purposes
  • Fixed Mars was getting too cold at night during its Solar apo-apse.
  • Changed Global Atmosphere now has a fixed volume and its state is serialised in the save data.
  • Changed Reworked how the global atmosphere is created and simulated. Phase-change can now occur in the global gas mixture. Gasses will now freeze into "icecaps" or condense into "ocean". Currently this simulation is not exposed to the player. We will be investigating ways of surfacing phase changes in the global atmosphere to the player in future updates via storms and or other visualisers.
  • Fixed launch mount kit being invisible
  • Updated Some future asset blockouts.
  • Moved Methods form PoweredVentMultiGrid into a static library so they can more easily be used by other classes.
  • Fixed some build issues due to imgui
  • Fixed Pressure of canisters not displaying properly in their Stationpedia entries
  • Fixed small Typo in Stationpedia entry for Large Extendable Radiator
  • Renamed IsUnderLiquidLevel helper to IsSubmerged.
  • Increased Liquid draining speed of Passive Liquid Inlet.
  • Fixed Passive Liquid Inlet not draining liquid from neighbouring grids when its grid was empty of liquid.
  • Increased Speed of Liquid Vacuum.
  • Added ISubmergedHandler to allow devices to have special behaviour when submerged. Currently, manufacturing machines will error when underwater and transformers and apc's will blow their cables.
  • Added Prototype Extendable structure for testing.
  • Fixed placement issue with structure Extension prototype.
  • Added boolean value for buoyancy so that non-buoyant dynamicThings sink but not as fast as falling
  • Fixed Flickering liquid blocks when liquid was falling.
  • Fixed Underwater effect would not play upon loading into a game for the 2nd time.
  • Removed Min liquid height clamping. (previous band-aid fix for liquid hidden inside floors).
  • Fixed Liquid would sometimes be "hidden" underneath floors, it is now offset to the correct height so it sits on the floor.
  • Fixed Liquid Visualiser Z-fighting and clipping through walls that were placed on an internal face of a grid.
  • Optimised Liquid Rendering Update loop. Render batches are now calculated and prepared on the gameTick thread using a double-buffer approach. This avoids blocking the main game thread with a costly iteration of all atmospheres and a needless recalculation of the water meshes every frame.
  • Fixed Liquid Vacuum and Liquid inlet not considering in-world liquid volume when performing their liquid movement logic.
  • Fixed Liquid Visualiser Prep running in batch mode.
  • Fixed Manufacturing machines would still build when in error state.
  • Changed SubmergedHandler system to instead be handled case by case on device in the power tick. Made input and output cables on transformers, batteries and apcs burnout when the input/output port itself is under water rather than the entire device.
  • Updated IsSubmerged to use the render threshold rather than zero for minimum atmosphere volume checks.
  • Added 100ms update and 1000ms update to Thing. These are opt in slow ticks for main thread game logic. (i.e audio, fx)
  • Added Spark effect and sounds to Apcs and transformers that are submerged in liquid.
  • Refactored some duplicate code from battery, apc and transformer into ElectricalInputOutput.
  • Added submerged effects to station battery.
  • Refactored ISubmergeable functionality to bring it more in line with project standards.