Предметы
Основы предметов
Элемент 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) — это следующий урок: компоненты предметов.