Reorganizes breathing, and moves common human/monkey breathing code into
carbon. handle_breath() is largely unchanged.
Removes unnecessary handle_internal_lifeform().
Fixes monkies being held by people in mecha in space not being able to breathe.
Implements liquid fuel fires using the liquid fuel cleanable decal objects.
Rewrites zburn to be more sane, replaces convoluted calculations with straightforward reaction limit.
Fixes issue with liquid fuel spreading caused by thee object being deleted.
Prevents zones from being repeatedly added to the active fire zones list, and processed repeatedly.
This should have little/no gameplay effect right now, just paving the
way for directional lights.
Replaced handle_rotation() on buckly things with this.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
slight visual artifact when zones are rebuilt, overlays will be
missing until the end of the current tick. otherwise works fine.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Fixed the entropy calculation so that it is easier to remove gas from a
hot gas mix, not harder. Added comments explaining the entropy
calculation. Also returns pump and filter efficiency to previous values.
In particular, gas_mixture/remove() was not accounting for
group_multiplier when determining the maximum amount of gas to remove
Also cleans up the interface for gas_mixture/heat_capacity().
Allows atmos machinery efficiency to be adjusted in setup.dm
Limits flow rates when moving gas from a turf to avoid very high pressures being created when they shouldn't be.
Attempts to limit processing when there isn't much gas to be moved, for performance.
Reverts all changes to _gas_mixture.dm
New turf proc: assume_gas(). Maps to air.adjust_gas_temp().
Lots of optimizations to processing, fire, lighting, HasEntered() and
more.
Zones now process all fire data and existance in one go, fire objects
only handle spreading.
Most code has been ported straight so some of it mightn't be ideally
structured for the new gas_mixtures.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Gases are now represented in an associatiee list instead of harcoded
variables. gas = list("oxygen" = 20, "nitrogen" = 80)
New cleaned up share_ratio(), share_space() and equalise_gases() procs.
Gas can be modified with adjust_gas() or adjust_gas_temp(), with
variadic versions available for both. These are documented in
gas_mixture_xgm.dm
Signed-off-by: Mloc-Argent <colmohici@gmail.com>