Перейти к основному содержимому

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:[ИМЯ МОДА]%, где в [ИМЯ МОДА] указывается другой мод.