Gas Datums

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.
This commit is contained in:
ComicIronic
2015-05-04 10:36:04 +01:00
parent 96ca736c1a
commit 4d432e5240
91 changed files with 1667 additions and 2288 deletions

View File

@@ -310,11 +310,15 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
return edge
/datum/controller/air_system/proc/has_same_air(turf/A, turf/B)
if(A.oxygen != B.oxygen) return 0
if(A.nitrogen != B.nitrogen) return 0
if(A.toxins != B.toxins) return 0
if(A.carbon_dioxide != B.carbon_dioxide) return 0
if(A.temperature != B.temperature) return 0
var/datum/gas_mixture/A_mix = A.return_air()
var/datum/gas_mixture/B_mix = B.return_air()
for(var/gasid in A_mix.gases)
if(A_mix.get_moles_by_id(gasid) != B_mix.get_moles_by_id(gasid))
return 0
return 1
/datum/controller/air_system/proc/remove_edge(connection/c)