XML
Курс молодого мододела
Большая часть контента Barotrauma описана в XML файлах. Такие файлы с кодом могут отпугнуть начинающих моддеров, но, на самом деле, работать с XML гораздо проще — вам даже не нужно знать программирование.
Редактировать подобные файлы можно любым текстовым редактором, однако рекомендуется использовать современные редакторы с поддержкой подсветки синтаксиса, указанием на ошибки и автокоррекцией.
Примеры таких редакторов:
XML файлы состоят из элементов, разделённых открывающим тэгом и закрывающим.
Например, для определения предмета используется тег Item
:
<Item>
</Item>
Одного этого недостаточно для полного определения элемента.
Элементы также могут иметь атрибуты, которые обычно дают дополнительную информацию об элементе.
Например:
<Item identifier="alienwrench" name="Alien Wrench" variantof="wrench" scale="0.2">
</Item>
Элементы также могут иметь дочерние элементы. Основываясь на нашем последнем примере, мы можем добавить дочерний элемент Sprite
, который определяет, как выглядит предмет:
<Item identifier="alienwrench" name="Alien Wrench" variantof="wrench" scale="0.2">
<Sprite texture="%ModDir%/alienwrench.png" sourcerect="0,0,256,112" depth="0.55" origin="0.5,0.1" scale="0.1" />
</Item>
Обратите внимание, что в этом примере Sprite
является самозакрывающимся элементом. Если нет необходимости определять дочерние элементы, вы можете опустить закрывающий тег, завершив открывающий тег символом />
, а не просто >
.
<Sprite />
В верхней части файла может быть добавлено объявление кодировки. Обычно это выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
XML также поддерживает добавление комментариев. Это фрагменты текста, которые будут проигнорированы игрой. Их можно использовать для подсказок о работе кода или для комментариев для других мододелов.
<!-- Это комментарий к коду, здесь можно разместить даже рецепт супа, и Barotrauma его проигнорирует -->
<Item ...>
Заметки
В Barotrauma все XML файлы имеют следующие ограничения:
- Может быть только один корневой элемент (объявление кодировки не считается)
- Все атрибуты элемента должны быть уникальными
Корневой элемент — это первый элемент, который появляется в файле. Все последующие элементы должны быть дочерними по отношению к этому элементу, чтобы они образовывали полную иерархию. Другими словами, в файлах не должно быть нескольких элементов на первом уровне, но совершенно нормально иметь несколько элементов на более низких уровнях иерархии.
- При обращении к другим файлам мода игра будет интерпретировать строку
%ModDir%
как директорию, в которой находится ваш мод. Это необходимо для того, чтобы мод можно было перемещать в разные директории при установке через Steam Workshop или загрузке через сервер. - Для ссылки на файлы других модов можно использовать строки вида
%ModDir:[ИМЯ МОДА]%
, где в[ИМЯ МОДА]
указывается другой мод.