Перезапись (Override)
Как заменять ванильный контент через элемент Override, правило совпадения идентификаторов и частые ошибки.
Зачем нужна перезапись
Перезапись (Override) позволяет заменить уже существующий контент — ванильный или из другого мода — не создавая мод-конверсию на всю игру. Это главный способ что-то «перебалансить»: ровно так наш мод «ЭИК Ребаланс» меняет характеристики ванильных предметов.
Принцип: совпадают идентификаторы
Перезапись работает по identifier: идентификатор твоего нового элемента должен совпасть с
идентификатором того, что заменяешь. Игра видит совпадение и подменяет оригинал твоим
вариантом.
<Override>
<Item identifier="harpoongun" name="Potato Gun" tags="mediumitem,weapon,gun">
<Sprite texture="%ModDir%/potatogun.png" sourcerect="0,64,282,60"
depth="0.55" origin="0.5,0.5" />
</Item>
</Override>
Здесь harpoongun — ванильный идентификатор. Имя, спрайт и теги меняются, но для игры это
по-прежнему «тот самый» предмет.
Важно: переноси всё
При перезаписи ты полностью заменяешь оригинальный элемент. Значит, всё, что хочешь сохранить — теги и вложенные элементы оригинала, — нужно перенести к себе, иначе оно потеряется.
Делай так: возьми оригинальный XML предмета из файлов игры, скопируй целиком, оберни в
<Override>и меняй только то, что нужно. Так ничего важного не отвалится.
Без Override
Если задать контент с уже существующим identifier без <Override> — получишь конфликт
дублирующихся идентификаторов. Хочешь намеренно заменить контент — всегда оборачивай в
<Override>.
Перезапись нескольких элементов
<Override> может обернуть сразу несколько штук:
<Override>
<Item identifier="harpoongun" name="Potato Gun"> ... </Item>
<Item identifier="spineling" name="Buffed Spineling"> ... </Item>
</Override>
Работает не только с предметами, но и с большинством типов контента (аффликшены, существа и т. д.) — принцип совпадения идентификаторов везде один.
Где новички спотыкаются
- Опечатка в
identifier— игра не найдёт оригинал, перезапись промахнётся мимо. - Потерял вложенные элементы — забыл перенести компонент, и предмет «сломался».
- Порядок загрузки — если два мода перезаписывают одно и то же, победит загруженный позже. Рули порядком в меню Mods.
Теперь, когда понятно, как заменять контент, перейдём к созданию своих предметов.