Modding:The Remapper
Эта страница проверялась в последний раз для версии Vintage Story 1.15.
Ремаппер. Серверная система, о существовании которой в идеальных условиях никто не должен даже знать. Это то, что гарантирует, что ваш мир не сойдет с ума от установки или удаления мода, который добавляет блоки или предметы.
Допустим, пользователь хочет создать ваш мод в Uberbasket. Вы хотели бы написать рецепт, который сообщает игре, какой предмет должен быть создан. Это делается путем ссылки на уникальный код элемента - последовательность букв, обычно написанное слово, разделенное тире.
Однако эти коды хранятся не очень эффективно, и поэтому, чтобы уменьшить использование памяти, движок внутренне присваивает каждому элементу и блоку уникальный номер для каждого мира, а затем сохраняет сопоставление кода с идентификатором в сохраненной игре. Эти идентификаторы создаются, когда игра загружает блоки и предметы, и после создания никогда не удаляются из сопоставления. Вот так, просто чтобы дать вам представление.
Code | Id |
---|---|
stick | 1 |
coal | 2 |
ingot-iron | 3 |
... | ... |
Сохранение этого отображения в сейве необходимо, потому что иначе, если добавить новый блок, например, перед палкой, нумерация изменится, и вдруг каждая палка в мире превратится в уголь, каждый железный слиток станет углем. и так далее. Новые блоки могут добавляться и удаляться либо при выходе новой версии, либо при добавлении или удалении модов пользователем.
Итак, как это влияет на вас, моддера?
Итак, проблема возникает, когда вы решаете изменить код блока или элемента. Или когда пользователь хочет удалить один из ваших модов и заменить модифицированные блоки чем-то другим. Допустим, ваш мод добавил Уберкорзину, но вы понимаете, что она недостаточно мощная, и изменили ее на Гиперкорзину, включая код предмета, в последнем обновлении мода. Как только игрок обновится до вашей последней версии мода, все его убер-корзины станут неизвестными предметами, потому что, помните, сопоставление кода <-> идентификатора для убер-корзины все еще хранится в сохраненной игре.
К счастью, вы можете помочь игроку исправить это! Существуют команды (/bir и /iir), позволяющие редактировать эту таблицу. В этом случае игроку нужно будет ввести
/iir remap hyperbasket uberbasket force
Эта команда эффективно выполняет поиск «уберкорзины» в таблице сопоставления, а затем заменяет идентификатор на идентификатор гиперкорзины. Итак, при перезагрузке мира все уберкорзины превратятся в гиперкорзины.
remaps.json
Для еще большего удобства игрока. Вы можете создать патч json, чтобы добавить запись в assets/game/config/remaps.json. Этот файл позволяет вам добавлять свои переназначения, и игрок получит всплывающее удобное диалоговое окно, в котором требуется переназначение. Возможно, вы захотите использовать подкоманду «remapq», чтобы уменьшить количество спама в журнале чата.
Могу ли я переназначить 2 блока/предмета в 1 блок/предмет
Нет. По определению все идентификаторы должны быть уникальными. Если бы вы переназначили 2 на 1, это означало бы, что элемент или блок будут иметь 2 идентификатора. Игра не предназначена для обработки нескольких идентификаторов одного и того же блока или предмета.
Wondering where some links have gone?
The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.
Modding | |
---|---|
Modding Introduction | Getting Started • Пакет тем |
Content Modding | Content Mods • Developing a Content Mod • Basic Tutorials • Intermediate Tutorials • Advanced Tutorials • Content Mod Concepts |
Code Modding | Code Mods • Setting up your Development Environment |
Property Overview | Item • Entity • Entity Behaviors • Block • Block Behaviors • Block Classes • Block Entities • Block Entity Behaviors • Collectible Behaviors • World properties |
Workflows & Infrastructure | Modding Efficiency Tips • Mod-engine compatibility • Mod Extensibility • VS Engine |
Additional Resources | Community Resources • Modding API Updates • Programming Languages • List of server commands • List of client commands • Client startup parameters • Server startup parameters Example Mods • API Docs • GitHub Repository |