Raw file
Raw-файлы — это текстовые файлы, которые находятся в папках \raw\objects (используются при генерации мира) и в \data\save\<region-name>\raw\objects (для уже сформированных миров). Эти файлы можно просматривать, чтобы выяснить различные особенности предметов, материалов и существ, и можно редактировать для изменения поведения игры. Некоторые игроки называют их просто: "raw".
Папка \raw\graphics используется для хранения настраиваемых пользователем наборов графики.
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, но используется для приписания токенов, связанных с частями тела(особенно материалы, ткани, позиции частей тела и откуда они растут, относительные размеры и т.д.)
- BUILDING — настройка мастерских
- CREATURE — существа
- CREATURE_VARIATION — изменения существ (Например, создание гигантов или антропоморфных существ). Технически, это серия токенов, которые добавляются или удаляются из описания существа (в основном изменения шаблона)
- DESCRIPTOR_COLOR — цвет для использования с DESCRIPTOR_PATTERN (другое назначение неизвестно)
- DESCRIPTOR_PATTERN — шаблоны цветовых комбинаций для использования с существами (другое назначение неизвестно)
- DESCRIPTOR_SHAPE — описания форм. В прошлой версии использовались для гравюр, но в текущей использование не подтверждено.
- ENTITY — типы цивилизаций, с заданными расами, языком, культурой, этикой и социальной структурой.
- GRAPHICS — графические тайлы существ
- 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_TOY — игрушки
- ITEM_TRAPCOMP — компоненты, которые можно использовать в оружейных ловушках (два специальных тега определяют компоненты, которые можно использовать в других конструкциях: IS_SCREW и IS_SPIKE)
- ITEM_WEAPON — оружие, используемое солдатами, а также инструменты для копания.
- LANGUAGE — определения слов, используемое для объектов сущностей (ENTITY)
- Записи, начинающиеся с [SYMBOL:ID] разделяют слова на символические/поэтические группы.
- Записи, начинающиеся с [WORD:ID] определяют слова и их альтернативные формы (на английском)
- MATERIAL_TEMPLATE — определяет свойства, общие для группы материалов.
- PLANT — определения растений, их материалов а также производных (алкоголь, семена и т.д.)
- REACTION — реакции/работы пользовательских мастерских
- TISSUE_TEMPLATE — определение шаблонов тканей, для использования BODY_DETAIL_PLAN или существами.
Все, что не является токеном не рассматривается движком игры. (кроме первой строки в файле - это имя файла)
Эти токены заключены в квадратные скобки ([TOKEN:VALUES]).
При генерации мира raw-файлы перемещаются из <game folder>/raw/ в <game folder>/data/save/REGION/raw/. В настоящее время неизвестно, насколько сильно их можно изменять, не испортив при этом файл сохранения.
Парсер
Последовательность, в которой DF считывает raw-файлы определяется первой строкой raw-файла (там не обязательно имя файла). Последовательность считывания важна для такого рода тегов, как [COPY_TAGS_FROM], но не для большинтсва других.