Temperature

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску

О температуре окружающей среды, упоминающейся при высадке, см. статью климат.

Аспект игры, описываемый в данной статье, забагован. Смотри раздел Баги.

Температура — по определению, измеримая величина, показывающая, насколько горячей или холодной является область или объект. Температура также является важным элементом климата местности, а точнее, биома. Как в Dwarf Fortress, так и в реальной жизни существует несколько единиц измерения температуры. В реальной жизни используются Цельсий (°C) и Кельвин (K); другие единицы, такие как Реомюр (°r, °Re или °Ré), Фаренгейт (°F) или Ранкин (°R или °Ra) также существуют. В игре используется собственная уникальная единица измерения. Хотя у неё нет официального названия, сообщество использует обозначение "Urist" (°U).

Режим искателя приключений

В режиме приключенца температура окружения персонажа игрока всегда отображается в правом верхнем углу экрана. Нахождение рядом с элементами и существами, влияющими на температуру (например, рядом с огненным человеком), также изменит показания температуры:

Шкала температур

Температуры в Dwarf Fortress измеряются в собственной шкале °U. Температуры хранятся как 16-битные беззнаковые целые числа, что соответствует минимальному значению 0 °U и техническому максимуму 65535 °U (216-1), хотя внутренне это ограничено до 60000 °U, так как 60001 °U используется для температур, установленных в NONE. Дробные значения не учитываются — десятичные части либо отбрасываются, либо округляются игрой. Например, число 2999.999 будет округлено до 3000. Шкала Urist'а не соотносится со шкалой Цельсия, поэтому преобразования не интуитивны.

Не пугайтесь, встретив что-то вроде [HOMEOTHERM:10067].

Температура магмы — 12000 °U (примерно 1111 °C).

Преобразование

[°U] = [°C, Цельсий] * 9/5 + 10000

[°U] = [°F, Фаренгейт] + 9968

[°U] = [K, Кельвин] * 9/5 + 9508.33

[°U] = [°Ra, Ранкин] + 9508.33

Согласно Toady One в посте Future of the Fortress, шкала температур в расширенных настройках генерации мира связана с обычными градусами Urist'а уравнением «local temp = world temp * 0.75 + 10000». Эта шкала, похоже, больше нигде в игре не используется.

Реперные точки

Определение Шкала DF worldgen Цельсий (°C) Кельвин Фаренгейт (°F) Ранкин (°Ra)
Точка кипения воды 10180 240.0 100.00 °C 373.150 K 212.00 °F 671.67 °Ra
Температура тела дварфа 10067 89.3 37.22 °C 310.372 K 99.00 °F 558.67 °Ra
Точка замерзания воды 10000 0.0 0.00 °C 273.150 K 32.00 °F 491.67 °Ra
Точка замерзания ≈89% спирта 9850 -200.0 −83.33 °C 189.816 K −118.00 °F 341.67 °Ra
Абсолютный ноль *9508 -656.0 −273.15 °C 0 K −459.67 °F 0 °Ra
Ноль по шкале DF 0 -13333.3 −5555.55 °C −5282.405 K −9968.00 °F −9508.33 °Ra
Максимально возможная температура 60000 66666.6 27777.77 °C 28050.927 K 50032.00 °F 50491.67 °Ra

Абсолютный ноль округляется вниз внутри игры для избежания дробных чисел. При более точном преобразовании это было бы 9508.33 °U. Интересно, что температуры в Dwarf Fortress могут опускаться намного, намного ниже абсолютного нуля, что физически невозможно; Надо сказать, что в Dwarf Fortress существует вечный двигатель.

Значения с чертой сверху — усечённые значения с конечными цифрами, которые продолжаются бесконечно, так что значение 45.738 технически равно 45.738888888888... с бесконечно повторяющимися восьмёрками.

Урист интересуется... Я моддер, которому нужно постоянно работать с преобразованием температур. Есть ли инструмент для облегчения этой работы?

Преобразование температур обычно полезно только при моддинге и может быть утомительным при ручном выполнении; к счастью, создана простая утилита для преобразования температур для тех, кому часто приходится конвертировать температуры в градусы Urist'а и обратно.

Онлайн-утилита доступна по адресу https://jose96xd.github.io/DF_Tools/Modules/TemperatureConverter.html

Примеры температур в Dwarf Fortress (важные выделены жирным):

Событие / местоположение °U °C °F
Алкоголь замерзает 9850 -83.3 °C -118 °F
Нижний предел обитаемости 9900 -55.5 °C -68 °F
Снаружи, холодный климат (меняется) 9960 -22.2 °C -8 °F
Под землёй, ледниковый лёд 9990 -5.5 °C 22 °F
Вода замерзает 10000 0 °C 32 °F
Нижнешляпник 10000 0 °C 32 °F
Под землёй 10015 8.3 °C 47 °F
Температура тела дварфа/человека 10067 37.2 °C 99 °F
Тайлы около магмы (тёплый камень) 10075 41.6 °C 107 °F
Верхний предел обитаемости 10078 43.3 °C 110 °F
Снаружи, обжигающий климат (меняется) 10080 44.4 °C 112 °F
Вода кипит 10180 100 °C 212 °F
Воспламенение органических материалов 10508 282.2 °C 540 °F
Древесина горит (макс.) 10708 393.3 °C 740 °F
Материал огнеупорен 11000 555.5 °C 1032 °F
Простой камень плавится (варьируется) 11500 833.3 °C 1532 °F
Уголь горит (макс.) 11640 911.1 °C 1672 °F
Магма 12000 1111.1 °C 2032 °F
Материал магмоупорен 12000 1111.1 °C 2032 °F
Существа из пламени/огня 14000 2222.2 °C 4032 °F
Пламя дракона 50000 22222.2 °C 40032 °F

Свойства материалов

Температура накладывает важные ограничения на материалы в игре и определяет ряд свойств материалов, связанных с агрегатными состояниями и повреждениями от тепла/холода. Они определяются токенами определения материалов в raw-файлах, большинство из которых используют температуру в качестве входного параметра:

Melting point

[MELTING_POINT] — Температура, при которой жидкий материал замерзает или твёрдый материал плавится. В Dwarf Fortress точка плавления и точка замерзания совпадают; это противоречит реальности, где многие материалы могут переохлаждаться. Ключевое значение — 12000 °U, необходимое для устойчивости к магме.

Boiling point

[BOILING_POINT] — Температура, при которой материал кипит или конденсируется. Вода кипит при 10180 °U .

Ignition point

[IGNITE_POINT] — Температура, при которой материал загорается.

Heat damage point

[HEATDAM_POINT] — Температура, выше которой материал начинает получать тепловые повреждения. Горящие предметы без точки теплового разрушения (или с исключительно высоким значением) будут получать повреждения очень медленно, из-за чего будут гореть очень долго (9 месяцев и 16,8 дней), прежде чем исчезнут.

Cold damage point

[COLDDAM_POINT] — Температура, ниже которой материал начинает получать повреждения от холода.

Specific heat

[SPEC_HEAT] — Определяет, как долго материал будет нагреваться или охлаждаться. Материал с высокой удельной теплоёмкостью будет удерживать больше тепла и сильнее влиять на окружение, прежде чем достигнет равновесия. Входным параметром для этого токена является удельная теплоёмкость материала, а не температура.

Fixed temperature

[MAT_FIXED_TEMP] — Температура материала может быть принудительно установлена на определённое значение. Единственный стандартный материал, использующий это — древесина нижнешляпника, температура которой всегда равна точке замерзания воды. Если температура материала зафиксирована между его точкой холодового повреждения и точкой теплового повреждения, то предметы из этого материала никогда не будут получать повреждения от холода/тепла. Это делает нижнешляпник огнеупорным и магмоупорным, несмотря на то, что это древесина.

Важно для тестирования модов: Из-за особенностей обработки фиксированной температуры присвоение материалу фиксированной температуры не приведёт к изменению его фактической температуры — вместо этого температура будет навсегда заблокирована на том значении, которое было ранее. Однако удаление фиксированной температуры материала приведёт к тому, что все предметы из него будут нагреваться или охлаждаться до достижения равновесия с окружением. Фиксированная температура контейнера влияет на его содержимое, но вы не можете заморозить воду, поместив её в ведро из нижнешляпника, потому что вода не замёрзнет, пока не охладится ниже 10000 °U . Фиксированная температура неорганического материала не влияет на недобытые стены, хотя валуны будут принимать эту температуру при добыче.

Передача температуры

Передача температуры в Dwarf Fortress довольно проста — каждый тик предмет, находящийся в более горячей/холодной среде (или рядом с другим предметом), изменяет свою температуру на разницу (в °U), делённую на удельную теплоёмкость предмета. Дробные части сохраняются, но не используются в расчётах. Например, кусок лигнита (у которого [SPEC_HEAT:409]) при температуре 10015 (комнатная температура под землёй), помещённый в магму (температура 12000), будет нагреваться на (12000-10015)/409 = 4,853 °U в первый тик, затем постепенно медленнее. Чтобы достичь точки воспламенения 11440, ему нужно находиться в магме 517 тиков — более 5 секунд при 100 FPS.

Баги

  • Расчёты температуры являются известной причиной лагов. Если важна максимизация частоты кадров, можно отключить расчёты температуры в настройках. При отключённых расчётах температуры такие эффекты, как замерзание, таяние или испарение воды, а также получение существами и предметами урона от температуры, не будут происходить.
  • При отключённых расчётах температуры дварфы откажутся ступать на тайл с литым обсидианом (или любые другие тайлы, ранее занятые магмой).Bug:8391 Иногда это может происходить и при включённых расчётах температуры.Bug:1272