ExtendedMetadata
Активный0.0
Установок
Последнее обновление
ExtendedMetadata
ExtendedMetadata представляет собой основной мод для Forge, который значительно расширяет лимиты идентификаторов блоков и метаданных в Minecraft. В стандартной версии игры для хранения информации о блоках используется 12 бит для ID и 4 бита для метаданных, что в совокупности умещается в 16-битное значение. Данная модификация заменяет этот подход на использование целых чисел, увеличивая диапазон ID блоков до 15 бит, а метаданных — до 16 бит. В результате количество возможных ID блоков возрастает с 4096 до 32768, а вариантов метаданных — с 16 до 65536.
Важные предупреждения
Этот мод изменяет способ хранения игровых миров на диске. Существующие миры автоматически конвертируются, однако после этого их невозможно будет открыть в стандартном Minecraft или Forge без установленного ExtendedMetadata.
Также следует учитывать, что мод увеличивает потребление дискового пространства и сетевого трафика, что может привести к замедлению работы игры. Особую осторожность нужно проявлять при использовании загрузчика моделей и текстур из версии 1.8 — чрезмерное количество метаданных может вызвать ошибки нехватки памяти. Для решения этой проблемы требуется специальный загрузчик моделей и текстур, который уже реализован, но продолжает совершенствоваться.
Для разработчиков модов
Подробная информация о том, как интегрировать ExtendedMetadata в свои моды, доступна на странице GitHub: https://github.com/AgeCraft/ExtendedMetadata
Зависимости
- Minecraft Forge версии 11.15.0.1608 или новее
- LLibrary версии 0.6.1 или новее
Установка
- Скачайте и установите Minecraft Forge
- Загрузите и установите LLibrary
- Скачайте ExtendedMetadata и поместите файл в папку mods
Ограничения
Изначально планировалось увеличить ID блоков до 16 бит, но это невозможно из-за особенностей работы с целыми числами в Java. Версии Java 7 и ниже поддерживают только знаковые целые числа в диапазоне от 2^-31 до 2^31. Существует два возможных решения:
- Требовать Java 8, которая поддерживает беззнаковые целые числа
- Использовать тип long для хранения состояний блоков, но это значительно увеличило бы объем хранимых данных и сетевой трафик, а также потребовало бы серьезных изменений в коде
Поэтому мод полностью расширяет только метаданные блоков, а не их идентификаторы, поскольку метаданные имеют больше практической ценности.
Технические детали создания
Для создания этого мода был использован форк Minecraft Forge с настроенной средой разработки. После изучения декомпилированного кода Minecraft были определены внутренние механизмы работы с состояниями блоков, хранением чанков и их передачей по сети. В процессе внесения изменений в исходный код фиксировались все модифицированные поля и методы, что значительно упростило создание основного мода — оставалось только найти соответствующий байт-код и настроить ASM-трансформации. Этот процесс требовал значительных усилий, но инструменты CodeChickenLib/CodeChickenCore и плагин Bytecode Outline для Eclipse существенно помогли в работе.
Авторы
- Разработка: команда AgeCraft
- Основной разработчик: DanielHuisman