Skip to content

Как Это работает

Немного истории

Очень долгое время (ещё до 1.14) популярным загрузчиком модов был Forge. И для него же sp614x создал OptiFine, который помимо моментов, свзяанные с оптимизацией, добавлял систему CIT (Custom Item Textures), которая была перенесена из MCPatcher. Но когда игроки начали переходить на Fabric, они не могли пользоваться OptiFine из-за технических причин, и тем самым игроки на Fabric на некоторое время потеряли доступ к CIT. Но в 2021-22 пользователь shsupercm выпустил для Fabric модификацию CIT Resewn, который полностью возврощал эту возможность.

Далее, после выхода 1.21.2 Mojang начали активно менять свой код рендера Minecraft, а в 1.21.4 они поменяли и систему ренедера предметов, а в 1.21.5 ванилла смогла полностью (почти) заменить основную фишку CIT из-за которой ей пользовались - предметы по переименованиям. К этому времени shsupercm уже сдался и перестал поддерживать CIT Resewn.

И тогда некоторые люди заметели проблему: в ванильной систему наборов рессурсов если вы будете стараться добавить 2 (или более) набора с одной и той же моделью. Проблема оказалась в том, что Mojang прописала загрузку моделей так, что загружается только самая верхняя модель, при этом друге она не вообще не загружает в память игры.

RPF же решает эту проблему: он переписывает код загрузки так, чтобы все предметы из всех ресурспаков загружались в игру, и адаптирует выборку нужной модели под это.

Как работает выборка

Для начала, разберём некоторые термины:

  • Фолбэк (fallback) модель - это дочерняя модель предмета, которая записана в полях fallback в minecraft:select и в minecraft:range_dispatch. Зачастую, если это НЕ некоторые искючительные слуаи, о которых рассказано здесь
  • Стратегия выборки - это модуль RPF, который по своим правилам решает, какую модель предмета отправить на рендер

А теперь к сути. Система стандартной стратегии (да-да, она не одна! об этом в разделе Система делегирования) по очереди проходится по моделям и их дочерям, и если модель НЕ дала команду на делегрование ренедера модели - то мы её рендерим!

scheme

Выпущено под лицензией MIT.