ЭИК
Предметы

Компоненты предметов

ItemComponents — что делает предмет «живым»: Holdable, Pickable, ItemContainer, Powered, MeleeWeapon и другие.

Что такое ItemComponent

Сам по себе <Item> — это «оболочка». Поведение предмету дают компоненты (ItemComponents) — вложенные элементы, каждый добавляет какую-то способность: предмет можно поднять, держать в руке, запитать электричеством, бить им как оружием и так далее.

Компоненты пишут как вложенные теги внутри <Item>:

<Item identifier="mywrench" name="My Wrench" category="Equipment" tags="smallitem,tool">
  <Sprite texture="%ModDir%/textures/wrench.png" sourcerect="0,0,256,112" />
  <Holdable selectkey="Use" slots="Any,RightHand,LeftHand" handle1="0,0" />
  <MeleeWeapon range="50" reload="1.0">
    <Attack itemdamage="10" structuredamage="5" targetimpulse="2">
      <Affliction identifier="damage" strength="8" />
    </Attack>
  </MeleeWeapon>
</Item>

Что чаще всего используют

КомпонентЧто добавляет
PickableПредмет можно поднять и положить в инвентарь.
HoldableПредмет можно держать в руке/слоте; задаёт точки захвата.
WearableПредмет можно надеть (броня, маска, костюм).
ItemContainerПредмет хранит другие предметы (ящик, аптечка, контейнер).
MeleeWeaponОружие ближнего боя (внутрь кладут <Attack>).
RangedWeaponДальнобойное оружие, стреляет снарядами.
ProjectileПоведение снаряда (гарпун, болт).
PoweredБазовое питание; предмет потребляет/требует энергию.
PowerContainerАккумулятор: хранит заряд.
PowerTransferПередаёт энергию (провода, узлы сети).
LightComponentИсточник света (цвет, радиус, мигание).
RepairableПредмет можно чинить; задаёт навык и сложность.
Engine, Pump, Reactor, SonarСпециализированные системы подлодки.

Это не весь список — компонентов десятки. У каждого свои атрибуты; подсматривай у ванильных примеров и в официальной документации ItemComponents.

Комбинируй компоненты

Вся сила — в сочетании. Например, фонарик — это предмет, который можно держать (Holdable), который питается (Powered) и светит (LightComponent):

<Item identifier="myflashlight" name="My Flashlight" category="Equipment" tags="smallitem">
  <Sprite texture="%ModDir%/textures/flashlight.png" sourcerect="0,0,128,64" />
  <Holdable slots="Any,RightHand,LeftHand" />
  <Powered minvoltage="0" powerconsumption="50" />
  <LightComponent range="600" lightcolor="255,240,200,255" />
</Item>

Компоненты и статус-эффекты

Многие компоненты принимают вложенные <StatusEffect> — например, чтобы наложить аффликшен при использовании или потратить заряд. Так компоненты связываются с системой эффектов (см. статус-эффекты).

Как разбираться быстрее

Самый рабочий способ понять компоненты — открыть ванильный предмет, похожий на твою задумку, и посмотреть, какие компоненты в нём стоят и с какими атрибутами. Копируй рабочий пример и крути под себя.

Дальше — мир существ: основы персонажей.