Raw file
Raw-файлы — это текстовые файлы, которые находятся в папках \raw\objects (используются при генерации мира) и в сейвах (\data\save\<region-name>\raw\objects) уже сформированных миров. Эти файлы можно просматривать, чтобы выяснить различные особенности предметов, материалов и существ, и можно редактировать для изменения поведения игры. Некоторые игроки называют их просто: "raw" или "равки".
Папка \raw\graphics используется для хранения настраиваемых пользователем наборов графики. Папка raw/interaction examples содержит полезные примеры по моддингу, а файлы в ней полностью игнорируются игрой.
Dwarf Fortress не является программой с открытым исходным кодом, поэтому её моддинг в основном ограничивается правкой raw-файлов или хаком.
Дублирование raw-файлов может привести к ряду ошибок, и даже вылету.
Синтаксис raw-файлов
filename [OBJECT:TYPE] [TYPE:ID] <...contents...>
ID — это уникальный идентификатор для выделения подклассов объектов (Например, [CREATURE:DOG], ID=DOG or [ITEM:ITEM_WEAPON_SWORD], ID=ITEM_WEAPON_SWORD).
Типы содержимого
- BODY — части тела и их структура.
- BODY_DETAIL_PLAN — подобно [[Creature variation token|CREATURE_VARIATION], но используется для приписания токенов, связанных с частями тела (особенно материалы, ткани, позиции частей тела и откуда они растут, относительные размеры и т.д.)
- BUILDING — настройка мастерских и плавилен.
- CREATURE — существа.
- CREATURE_VARIATION — изменения существ (как правило, создание гигантов или антропоморфных существ). Технически, это наборы токенов, которые добавляются или удаляются из описания существа (в основном шаблонные изменения, вроде добавления пары рук).
- DESCRIPTOR_COLOR (основной токен
[COLOR]
) — цвет для использования с DESCRIPTOR_PATTERN (другое назначение неизвестно). - DESCRIPTOR_PATTERN (основной токен
[COLOR_PATTERN]
) — шаблоны цветовых комбинаций для использования с существами. - DESCRIPTOR_SHAPE (основной токен
[SHAPE]
) — описания форм. В прошлой версии использовались для гравюр, но в текущей использование не подтверждено. - ENTITY — типы цивилизаций (и не только, в общем смысле сообществ), с заданными расами, языком, культурой, этикой и социальной структурой.
- GRAPHICS — графические тайлы существ. В папке raw/objects отсутствуют.
- INORGANIC — определения неорганических материалов.
- ITEM — предметы, от снарядов до еды, подвиды задаются с помощью [TYPE:ID]:
- ITEM_AMMO — боеприпасы для стрелков.
- ITEM_ARMOR — одежда на тело, включая броню.
- ITEM_FOOD — описания приготовленной пищи.
- ITEM_GLOVES — одежда на руки (перчатки), включая броню.
- ITEM_HELM — головные уборы, включая броню (шлемы).
- ITEM_INSTRUMENT — описания инструментов.
- ITEM_PANTS — одежда на ноги, включая броню.
- ITEM_SHIELD — щиты.
- ITEM_SHOES — обувь, включая броню.
- ITEM_SIEGEAMMO — снаряды для осадных орудий (пока только баллиста).
- ITEM_TOOL — многоцелевые предметы, которые могут быть оружием, контейнером для пищи и проч.
- ITEM_TOY — игрушки.
- ITEM_TRAPCOMP — компоненты, которые можно использовать в оружейных ловушках (два специальных тега определяют компоненты, которые можно использовать в других конструкциях:
[IS_SCREW]
и[IS_SPIKE]
). - ITEM_WEAPON — оружие, используемое солдатами, а также инструменты для копания.
- LANGUAGE — определения слов, используемое для сообществ (ENTITY).
- Записи, начинающиеся с [SYMBOL:ID] разделяют слова на символические/поэтические группы, чтобы потом сообщества могло ссылаться на них как на свои предпочтения.
- Записи, начинающиеся с [WORD:ID] определяют слова и их альтернативные формы (уже на английском).
- MATERIAL_TEMPLATE — определяет свойства, общие для группы материалов.
- PLANT — определения растений, их материалов а также производных (алкоголь, семена и т. д.)
- REACTION — реакции/рецепты для мастерских.
- TISSUE_TEMPLATE — определение шаблонов тканей, для использования BODY_DETAIL_PLAN или существами.
Обычно пустые строки используются для разделения различных типов структур, таких как имя файла и [OBJECT:]
или другие записи, однако все, что не является токеном, кроме 1-й строки (которая является именем файла), понимается как комментарии и не рассматривается движком игры.
Токены заключаются в квадратные скобки ([ТОКЕН:Значения]
).
При генерации мира raw-файлы перемещаются из <game folder>/raw/ в <game folder>/data/save/REGION/raw/. В настоящее время неизвестно, насколько сильно их можно изменять, не испортив при этом файл сохранения.
Список токенов можно найти в статье Token.
Парсер
Последовательность, в которой DF считывает raw-файлы определяется первой строкой raw-файла (там не обязательно имя файла). Последовательность считывания важна для такого рода токенах, как [COPY_TAGS_FROM]
, но не для большинства других.
Названия raw-файлов совершенно не важны — когда вы создаете новое существо, вы можете поместить его в любой файл, куда захотите (или даже в совершенно новый файл), и игра будет работать как обычно. Вы даже можете переименовать все существующие raw-файлы, и игре все равно будет все равно (если, конечно, вы сначала сгенерируете новый мир).
Порядок загрузки (установленный путем регистрации активности файлов игра на версии 0.44.09 в Windows 10) следует следующему шаблону:
language_* descriptor_shape_* descriptor_color_* descriptor_pattern_* material_template_* inorganic_* plant_* tissue_template_* item_* building_* b_detail_plan_* body_* c_variation_* creature_* entity_* reaction_* interaction_*
Таким образом, по умолчанию игра версии 0.44.09 загружает raw-файлы в следующем порядке:
language_DWARF.txt language_ELF.txt language_GOBLIN.txt language_HUMAN.txt language_SYM.txt language_words.txt descriptor_shape_standard.txt descriptor_color_standard.txt descriptor_pattern_iris_eye.txt descriptor_pattern_pupil_eye.txt descriptor_pattern_special.txt material_template_default.txt inorganic_metal.txt inorganic_other.txt inorganic_stone_gem.txt inorganic_stone_layer.txt inorganic_stone_mineral.txt inorganic_stone_soil.txt plant_crops.txt plant_garden.txt plant_grasses.txt plant_new_trees.txt plant_standard.txt tissue_template_default.txt item_ammo.txt item_armor.txt item_food.txt item_gloves.txt item_helm.txt item_pants.txt item_shield.txt item_shoes.txt item_siegeammo.txt item_tool.txt item_toy.txt item_trapcomp.txt item_weapon.txt building_custom.txt b_detail_plan_default.txt body_default.txt body_rcp.txt c_variation_default.txt creature_amphibians.txt creature_annelids.txt creature_birds.txt creature_birds_new.txt creature_bug_slug_new.txt creature_desert_new.txt creature_domestic.txt creature_equipment.txt creature_fanciful.txt creature_insects.txt creature_large_mountain.txt creature_large_ocean.txt creature_large_riverlake.txt creature_large_temperate.txt creature_large_tropical.txt creature_large_tundra.txt creature_mountain_new.txt creature_next_underground.txt creature_ocean_new.txt creature_other.txt creature_reptiles.txt creature_riverlakepool_new.txt creature_small_mammals.txt creature_small_mammal_new.txt creature_small_ocean.txt creature_small_riverlake.txt creature_standard.txt creature_subterranean.txt creature_temperate_new.txt creature_tropical_new.txt creature_tundra_taiga_new.txt entity_default.txt reaction_adv_carpenter.txt reaction_other.txt reaction_smelter.txt interaction_standard.txt