---
# System prepended metadata

title: Constructible Atmospherics

---

{%hackmd @ZeWaka/dark-theme %}
# Constructible Atmospherics
## The gist of it
Constructible Atmospherics allows you to move and create, and combine atmospheric devices, pipes, and machines together to create all kinds of designs from a simple engine pipe change to a homegrown atmospheric scrubber and vent air solution. These items are moved around in the form of atmospheric constructs that can be created at a dispenser.

## Better description
Made by Tyrant (yay)
> Constructible atmospherics at its core introduces one main feature: the ability to move, assemble and disassemble atmospheric pipes in any way, shape, and configuration using welding tools. Pipes are assumed to have 'smart connections' and don't leak their contents when not attached to something at the other end, sealing off loose ends automatically (they can still leak normally though, and there are new sprites for leaking and broken pipes to make it clearer). The custom pipes are dispensed by the newly TGUI'd pipe dispenser, which previously could only dispense large 'disposal' pipes used in the mail system and such, allowing plumbers to replace destroyed pipes and play around with new, previously impossible to make midround, setups. New objects like customisable and configurable (via multitool) air filters and mixers are introduced to facilitate custom setups, and air alarms are also overhauled to integrate with the general alerts system (and work at all). They'll now also have interactions with air scrubbers and vents, allowing new 'emergency' configurations to be set up manually by an aspiring plumber. Pipes themselves have undergone a slight balance tweak, for example, heat exchanging pipes are now vulnerable to explosions. Manifolds also become vulnerable to overpressurization. In the backend, all atmos code is being absolute pathed, hide and update_icon code is being cleaned up to not overwrite itself, more iconstates are being added, and the sealing of pipes is controlled by a new variable. Pretty much all of the atmos code will be cleaned up and documented properly, which is a huge undertaking, but will be worth the effort. 

# Goals
* Provide a method to create and modify atmospheric contraptions.
* Increase customizability for atmospheric devices.
* Better the code so its nice and tidy.
* Increase the level of logging on these activities.

# Non-goals
* Make it trivial to reck the station.
    * Aka don't have it easy to make the station a crisp, even if it's funny.
* To Do

## Features / To Do
* A tool to dettach and attach atmospheric objects.
    - [ ] Make the welder have this ability.
* Allow more customisation of components and computers, like mixers and filters.
    - [ ] Implement for the multitool possibly?
* Better the states of pipes.
    - [ ] Make more icons for differentiating between a burst pipe and disconnected pipes.
    - [ ] Make Heat-exchanging pipes vulnerable to explosions but still invulnerable to overpressurizing.
    - [ ] Manifolds will behave like the other pipes.
* Have a machine dispense the constructs.
    - [ ] Add to the Disposal Pipe Dispenser.
    - [x] TGUI-ify the dispenser so it ain't ugly.
* Removing a pipe manually will not cause the pipeline to leak, it will instead let out its own contents and seal off the other sides.
    - [ ] Try using a variable to seal the pipe.
    - [ ] Get an icon for sealed pipes.
* Improve hide and update_icon code.
    - [ ] Make them stop overwriting each other.
    - [ ] Take into consideration layer and intactness of turf at the same time.
* Improve air alarms and their alerts.
    - [ ] Merge the general alert and alert computers and TGUI them.
    - [ ] TGUI the air alarm.
    - [ ] Let the alarm talk with scrubbers and vents.
* Improve the code in general
    - [ ] Absolute path ALL THE ATMOS CODE.
    - [ ] Oh yeah and some defines and minor optimisations and perhaps some DmDoc.
* Todo