Raw file

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


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], но не для большинтсва других.