Fixes#2864Fixes#4078
They would radiate and make ultra cold gas under 10 moles, 10 moles is about 10kpa at 20C, which is simply way too high.
They will radiate at less than .001 only, less than the standard moles for a standard 'gasless' tile. And to similarly limit unnecessary gas exchange procs being called pointlessly, will only intermix with at least 1 mole in the atmosphere.
Vents & scrubbers now have their ID changed on the area's vent & scrubber info, and get removed (and have their name set to "vent Pump"/"Air scrubber") if their frequency gets changed to something not 1439
Removed update_values(). RIP, shine on you CPU diamond.
Removed get_moles_by_id and get_archived_moles_by_id, all moles are now accessed directly to reduce call cost.
Added set_temperature and set_volume procs which recalc pressure when temperature or pressure change.
Heat_capacity is now a var updated when gases update.
Modified adjust_gas to use set_gas, modified set_gas to alter heat_capacity, total_moles, and pressure as needed.
Included:
-The process lists use |= instead of += due to the increased stability of the former against double additions.
-Atmospherics machinery is moved under the pipenet processing.
-Modified the atmospherics processes to return 1 when theyve done something, and 0 if they aint done jack shit. Then called scheck() if they return 1, possibly reducing unnecessary scheck calls while still managing to smooth out the atmospherics processing.
-If a powernet happens to get rebuilt by either powernets or power machinery scheck() is also called
Moved gas_mixture gas numbers to a list which is connected to a global gas_datum list, like with reagents.
Modified some maths procs to be more sane, added adjust_gas and set_gas to help with processing.
Added a modular system for gas flags - gases can now be marked as fuel and oxidiser with a flag, logged with a flag, scanned with a flag, etc.
Changed scrubbers to use a list of scrubbing gases rather than a set of vars.
Made miners and xenoarch effects more sensible - they now produce gas by ID, not manually.
Made turfs' starting gases into a list, removed turf gas number vars.
Ventcrawling now correctly starts from any pipe, not just vents and scrubbers.
This has allowed me to fix moving between pipelines : the images are now correctly updated when you change pipes.
Added a small sanity to remove_ventcrawl().
Also edited another thing that Pomf never got around to.
Feature freeze hasn't started yet!
Ventcrawling now actually puts you in the pipes and lets you move around.
You get an overlay of all the pipes in the network you're currently navigating.
Altclicking on a vent now specifically lets you crawl into that vent if there are other vents in the area.
You can now ventcrawl into scrubbers as well, because there's no real reason not to.
The movement is currently very odd. I'll see what about it needs tweaking.
Removes unused file
Fixes bug with add2stacks under the new proximity flag
Adds an alert before admins become deadminned because HOLY SHIT WHY IS THAT RIGHT NEXT TO CHECK ANTAGONISTS WITH NO CONFIRMATION WHO THOUGHT THAT WOULD BE A GOOD IDEA?
Fixes #2106,Stops giant spiders from webbing themself inside their own capsule in a somewhat snowflakey way, but I've never seen nor heard of this occuring any other way
Fixes a bug where pipeline rebuilds didn't update_values causing improper presure values
Applies datum pooling to pipelines and pipenetwork for major performance improvements in their deletion.
These improvements should be especially noticeable in anything that deletes pipelines/networks once per tick, ie singulo narsie and supermatter
Removes the wires qdel, just why
Major code improvement that has been long overdue. The changes have been
thoroughly tested and everything appears to be working fine
- Move catwalks from turf/[retarded path]/catwalk to
obj/structure/catwalk. A dm file has been added to that effect
- Remove iscatwalk() helper check (not needed for an obj/)
- Lattice code has been used -to great effect- to recode catwalks. No
more hardcored nonsense to "make it like there's a space tile
underneath", now there IS space underneath. This should also fix trace
gas problems often witnessed during Derelict plasma floods
- Use relativewall method. There should have been no functional changes.
Catwalks update when new catwalks are added (not when surrounding
catwalks are destroyed, but it still seems logical)
- Add a in-house ex_act system to boot (to compensate for the fact
catwalks no longer use floor's ex_act). The catwalk is either destroyed,
replaced with lattice (add lattice at location, delete catwalk) or
unscathed
- Remove a lot of spaghetti code that has creeped up into ZAS/Atmos
systems and even into tile painter code since catwalks no longer run ZAS
loops and aren't considered turfs anymore
- All maps have been updated to the new catwalk system (otherwise the
map doesn't load, duh)
- Bit of spaghetti code in cable.dm (both item and structure) since
until then cable was NEVER laid on "objects". Works as intended
- Space has been changed to intact = 0. There's no reason for space to
be "intact" because there is only one version of space tiles, and it
fucks with wire placement
Confirmed working :
- Space automatically appears under the tile, catwalks tiles thus act
100 % like space tiles without hardcoding
- Construction and deconstruction works flawlessly. You do need to
precisely click the catwalk grating to deconstruct since the obj/
catwalk uses transparency correctly, but lo and behold, it's a feature
- Explosions function as intended when targetting catwalks (lots of hole
at the center, pepperoni at a distance)
- Cable-related stuff working (laying cable on catwalk, having cable on
catwalks in general)
- Boxstation, Defficiency and Metaclub updated
- Include list updated
Everything should be functional and was tested, but please outline
anything that looks like it'd work badly