diff --git a/code/__DEFINES/atmospherics_defines.dm b/code/__DEFINES/atmospherics_defines.dm index 97a736cbfc2e..eff495a06658 100644 --- a/code/__DEFINES/atmospherics_defines.dm +++ b/code/__DEFINES/atmospherics_defines.dm @@ -156,6 +156,7 @@ #define ATMOS_MODE_SPACE 0 //! Tile is exposed to space and loses air every second #define ATMOS_MODE_SEALED 1 //! Tile has no special behaviour #define ATMOS_MODE_EXPOSED_TO_ENVIRONMENT 2 //! Tile is exposed to the environment, ex: lavaland +#define ATMOS_MODE_NO_DECAY 3 //! Prevents hot tiles from automatically decaying towards T20C. /// Lavaland environment: hot, low pressure. #define ENVIRONMENT_LAVALAND "lavaland" diff --git a/milla.dll b/milla.dll index 956df9e5f228..7fe9470ef3dd 100755 Binary files a/milla.dll and b/milla.dll differ diff --git a/milla/src/api.rs b/milla/src/api.rs index db0bbe6206ac..53e63d4a17a9 100644 --- a/milla/src/api.rs +++ b/milla/src/api.rs @@ -239,6 +239,7 @@ pub(crate) fn internal_set_tile( }; } } + 3 => tile.mode = AtmosMode::NoDecay, _ => return Err(eyre!("Invalid atmos_mode: {}", value)), } } diff --git a/milla/src/model.rs b/milla/src/model.rs index d8aa7b1c519a..8f559783e27f 100644 --- a/milla/src/model.rs +++ b/milla/src/model.rs @@ -130,6 +130,8 @@ pub(crate) enum AtmosMode { Sealed, /// Tile is exposed to the given environment. ExposedTo { environment_id: u8 }, + /// Prevents hot tiles from automatically decaying towards T20C + NoDecay, } impl From for ByondValue { @@ -138,6 +140,7 @@ impl From for ByondValue { AtmosMode::Space => ByondValue::from(0.0), AtmosMode::Sealed => ByondValue::from(1.0), AtmosMode::ExposedTo { .. } => ByondValue::from(2.0), + AtmosMode::NoDecay => ByondValue::from(3.0), } } } diff --git a/milla/src/simulate.rs b/milla/src/simulate.rs index 7eb359b4a271..b8c88dc80aa6 100644 --- a/milla/src/simulate.rs +++ b/milla/src/simulate.rs @@ -437,6 +437,7 @@ pub(crate) fn apply_tile_mode( my_inactive_tile.thermal_energy *= 1.0 - SPACE_COOLING_FACTOR; } } + AtmosMode::NoDecay => {} // No special interactions } Ok(()) } diff --git a/tools/ci/libmilla_ci.so b/tools/ci/libmilla_ci.so index 877c0069516d..8517035dea12 100755 Binary files a/tools/ci/libmilla_ci.so and b/tools/ci/libmilla_ci.so differ