ЭИК
Предметы

Основы предметов

Элемент Item, его атрибуты (identifier, name, category, tags, scale) и вложенные элементы — Sprite, Price, Fabricate.

Что такое предмет

Предмет (Item) — это всё, с чем игрок взаимодействует: оружие, инструмент, медикамент, электроника, мебель подлодки, поднимаемый груз. Описывается элементом <Item> и подключается к моду как тип контента Item в filelist.xml.

Главные атрибуты

Обязательный:

  • identifier — уникальный идентификатор. По нему на предмет ссылаются и работает перезапись.

Часто используемые:

АтрибутЗачем
nameПрямое имя предмета (если не используешь локализацию).
nameidentifier / descriptionidentifierТеги для подстановки переведённого текста.
categoryКатегория для магазинов и редакторов: Machine, Medical, Weapon, Electrical, Equipment и т. п.
tagsТеги-метки для поведения ботов и фильтрации контейнеров.
scaleМасштаб отрисовки предмета.
aliasesЗапасные идентификаторы для совместимости.

Минимальный предмет

<?xml version="1.0" encoding="utf-8"?>
<Items>
  <Item identifier="toolbelt" category="Equipment" tags="smallitem,tool" scale="0.5">
    <Sprite texture="%ModDir%/textures/toolbelt.png" sourcerect="0,0,256,128"
            depth="0.55" origin="0.5,0.5" />
  </Item>
</Items>

Несколько предметов в одном файле оборачивай в общий корень (например, <Items>) — у файла ведь должен быть один корневой элемент.

Вложенные элементы

Внешний вид:

  • <Sprite> — спрайт предмета: путь к текстуре (texture), область в текстуре (sourcerect="x,y,ширина,высота"), слой глубины (depth), точка привязки (origin).

Экономика и крафт:

  • <Price> — цена в магазинах кампании.
  • <Fabricate> — рецепт изготовления (на каком станке, сколько времени, из чего).
  • <Deconstruct> — что выпадет при разборке.
  • <PreferredContainer> — где предмет спавнится (по тегу или идентификатору).

Ещё:

  • <SwappableItem> — замена при апгрейде подлодки.
  • <Trigger> — интерактивная зона.
  • <SuitableTreatment> — данные для лечения этим предметом.

Пример с крафтом

<Item identifier="toolbelt" category="Equipment" tags="smallitem,tool" scale="0.5">
  <Sprite texture="%ModDir%/textures/toolbelt.png" sourcerect="0,0,256,128"
          depth="0.55" origin="0.5,0.5" />
  <Price baseprice="150" />
  <Fabricate suitablefabricators="fabricator" requiredtime="20">
    <RequiredItem identifier="organicfiber" />
  </Fabricate>
</Item>

Варианты предметов: variantof

Чтобы не копировать весь предмет, наследуй существующий через variantof и переопредели только нужное:

<Item identifier="alienwrench" name="Alien Wrench" variantof="wrench" scale="0.2">
  <Sprite texture="%ModDir%/textures/alienwrench.png" sourcerect="0,0,256,112" />
</Item>

А вот «функциональность» предмету дают компоненты (ItemComponents) — это следующий урок: компоненты предметов.