mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-14 19:41:53 +00:00
* LINDA -> MILLA * Tiles now change their atmos mode properly. * Fixed a bug that made walls generate supercold air when deconstructed/destroyed. * Apply suggestions from code review Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com> Signed-off-by: Charlie Nolan <funnyman3595@gmail.com> * Begone, var! * MILLA -> milla * Lint. * More lint. * Prevent negative/NaN atmos from spreading. * Made fires start more reliably. * Undef what the rest should not see. * Enums are nice. * Match LINDA better. * Debugging verbs. * Debug verb fixes. * Labelled more lavaland stuff with ATMOS_MODE_LAVALAND * Block superconductivity on a couple more things for Lavaland. * Updated milla.dll * Lavaland map fixes. * Missed a spot. * Begone, var! (again) * Add libmilla_ci.so for continuous integration tests. * Install/contributing instructions for MILLA. * Directional plasmaglass windows on shuttles shouldn't stop protecting from heat after moving. * Banish bad naming. * Better naming and debug stats for SSair. * Apply suggestions from code review Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Signed-off-by: Charlie Nolan <funnyman3595@gmail.com> * Magic numbers and formatting. * Don't screw up the temperature during reactions. * Efficiency and readability. * Fix hotspots. * Removed redundant safety (MILLA will already output an error) * Optimizations. * oops * TGS build script update. * Change API of gas_mixture and how you get one from a turf. * Get in there. * so many vars * MILLA binary updates. * Lint * Made MT cost more honest. * Gave MILLA a read-only mode. * More read-only vs synchronized mode work. * Even more. * Synchronize disposals. * Updated a bunch of stuff to use SSair.synchronize or GM.synchronize. * MILLA <3 Tracy * lint * cargo fmt * more lint * Test needed MILLA sync. * Silence atmos machinery that's behaving as intended, but continue objecting to other potential failures to synchronize. * Push new MILLA DLL * Build MILLA * Update PR instructions for MILLA. * Add some fancy plasmaglass windows to the Lifebringers' ship. * The golems remembered that they should insulate *all* their engines. * First round of TM bugfixes. * Build MILLA * fix two lavaland ruin turf types * bunch more maps * fixes milla ci and makes the interesting turf verb better * Solid turfs can no longer conduct heat (for now...) * Made indoor tiles in beach and winter biodomes not lavaland air. * Re-added random IT teleport, adjusted warning message * Fixed a tinted window on Lavaland to be a plasglass window instead. * Made firelocks and holofans heatproof * Made RPD auto-wrench pipes if you have a wrench in your offhand. * Runtime fixes. * Made visuals update more reliably. * Lint * Update .github/CONTRIBUTING.md Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Signed-off-by: Charlie Nolan <funnyman3595@gmail.com> * Build MILLA * The Syndicate have installed tiny fans on their research base. * The syndicate have figured out how to make plastitanium windows heatproof. * This is getting out of hand. Now there are two of them. * Un-break the auto-wrenching that I broke before committing. * Build MILLA * Build MILLA * Massive MILLA refactor, assorted bugfixes. * Build MILLA * Explicit typing. * Less sleeping/blocking. * Build MILLA * Yes, yes, this part can sleep. * Build MILLA * SSair reporting improvements. * Build MILLA * Please do not dock twice and splat yourself. * Build MILLA * Pls to not make SM go nuts. * Build MILLA * Build MILLA * Added stricter lower bounds on plasmafire, fixing perpetually-burning SM. * Build MILLA * Lint * Temporary logging, begone. * Build MILLA * Prevent hotspot strobing. * Add in radiate_to_spess behavior. * Build MILLA * progress * Compiling is good. * bugfixes * Progress. * Ruins update. * This one exists. * Fixup temporary hotspots to last longer than one tick. * Add/fix comments. * Cut the slash. * Fix test. * No sleep for you. * Build MILLA * Prevent nested MILLA safety from runtiming. * Build MILLA * Runtime fix. * Build MILLA * Fix canisters not updating icon when gas contents change. * Build MILLA * Build MILLA * Fixed an issue that made mechs very cold on environment air. * Build MILLA * oops * Build MILLA * Walls can make loud noises again. * Build MILLA * Fixes a rare runtime. * Build MILLA * Update .github/DOWNLOADING.md Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Signed-off-by: Charlie Nolan <funnyman3595@gmail.com> * Review suggestions * Lint * Build MILLA * bound_mixtures now only contains mixtures that can be written * Build MILLA * Apply suggestions from code review Co-authored-by: Matt <116982774+Burzah@users.noreply.github.com> Signed-off-by: Charlie Nolan <funnyman3595@gmail.com> * Build MILLA * Restore the original async behavior of pyro anomalies. * Build MILLA * Build MILLA * Make the safety assertion in /datum/milla_safe safer. * Build MILLA --------- Signed-off-by: Charlie Nolan <funnyman3595@gmail.com> Co-authored-by: FunnyMan3595 (Charlie Nolan) <funnyman@google.com> Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com> Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Co-authored-by: paradisess13[bot] <165046124+paradisess13[bot]@users.noreply.github.com> Co-authored-by: warriorstar-orion <orion@snowfrost.garden> Co-authored-by: GDN <Roanrichards1@Gmail.com>
72 lines
3.3 KiB
Plaintext
72 lines
3.3 KiB
Plaintext
/datum/buildmode_mode/atmos
|
|
key = "atmos"
|
|
|
|
use_corner_selection = TRUE
|
|
var/pressure = ONE_ATMOSPHERE
|
|
var/temperature = T20C
|
|
var/oxygen = O2STANDARD
|
|
var/nitrogen = N2STANDARD
|
|
var/plasma = 0
|
|
var/cdiox = 0
|
|
var/nitrox = 0
|
|
var/agentbx = 0
|
|
|
|
|
|
/datum/buildmode_mode/atmos/show_help(mob/user)
|
|
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
|
to_chat(user, "<span class='notice'>Left Mouse Button on turf = Select corner</span>")
|
|
to_chat(user, "<span class='notice'>Left Mouse Button + Ctrl on turf = Set 'base atmos conditions' for space turfs in region</span>")
|
|
to_chat(user, "<span class='notice'>Right Mouse Button on buildmode button = Adjust target atmos</span>")
|
|
to_chat(user, "<span class='notice'><b>Notice:</b> Starts out with standard breathable/liveable defaults</span>")
|
|
to_chat(user, "<span class='notice'>***********************************************************</span>")
|
|
|
|
// FIXME this is a little tedious, something where you don't have to fill in each field would be cooler
|
|
// maybe some kind of stat panel thing?
|
|
/datum/buildmode_mode/atmos/change_settings(mob/user)
|
|
pressure = input(user, "Atmospheric Pressure", "Input", ONE_ATMOSPHERE) as num|null
|
|
temperature = input(user, "Temperature", "Input", T20C) as num|null
|
|
oxygen = input(user, "Oxygen ratio", "Input", O2STANDARD) as num|null
|
|
nitrogen = input(user, "Nitrogen ratio", "Input", N2STANDARD) as num|null
|
|
plasma = input(user, "Plasma ratio", "Input", 0) as num|null
|
|
cdiox = input(user, "CO2 ratio", "Input", 0) as num|null
|
|
nitrox = input(user, "N2O ratio", "Input", 0) as num|null
|
|
agentbx = input(user, "Agent B ratio", "Input", 0) as num|null
|
|
|
|
/datum/buildmode_mode/atmos/proc/ppratio_to_moles(ppratio)
|
|
// ideal gas equation: Pressure * Volume = Moles * r * Temperature
|
|
// air datum fields are in moles, we have partial pressure ratios
|
|
// Moles = (Pressure * Volume) / (r * Temperature)
|
|
return ((ppratio * pressure) * CELL_VOLUME) / (temperature * R_IDEAL_GAS_EQUATION)
|
|
|
|
/datum/buildmode_mode/atmos/handle_selected_region(mob/user, params)
|
|
var/list/pa = params2list(params)
|
|
var/left_click = pa.Find("left")
|
|
var/ctrl_click = pa.Find("ctrl")
|
|
if(left_click) //rectangular
|
|
var/datum/gas_mixture/air = new()
|
|
air.set_temperature(temperature)
|
|
air.set_oxygen(ppratio_to_moles(oxygen))
|
|
air.set_nitrogen(ppratio_to_moles(nitrogen))
|
|
air.set_toxins(ppratio_to_moles(plasma))
|
|
air.set_carbon_dioxide(ppratio_to_moles(cdiox))
|
|
air.set_sleeping_agent(ppratio_to_moles(nitrox))
|
|
air.set_agent_b(ppratio_to_moles(agentbx))
|
|
|
|
for(var/turf/T in block(cornerA,cornerB))
|
|
if(issimulatedturf(T))
|
|
// fill the turf with the appropriate gasses
|
|
var/turf/simulated/S = T
|
|
if(!S.blocks_air)
|
|
T.blind_set_air(air)
|
|
else if(ctrl_click) // overwrite "default" space air
|
|
T.temperature = temperature
|
|
T.oxygen = air.oxygen()
|
|
T.nitrogen = air.nitrogen()
|
|
T.toxins = air.toxins()
|
|
T.carbon_dioxide = air.carbon_dioxide()
|
|
T.sleeping_agent = air.sleeping_agent()
|
|
T.agent_b = air.agent_b()
|
|
|
|
// admin log
|
|
log_admin("Build Mode: [key_name(user)] changed the atmos of region [COORD(cornerA)] to [COORD(cornerB)]. T: [temperature], P: [pressure], Ox: [oxygen]%, N2: [nitrogen]%, Plsma: [plasma]%, CO2: [cdiox]%, N2O: [nitrox]%. [ctrl_click ? "Overwrote base space turf gases." : ""]")
|