В настоящее время я создаю программу для обработки фрагментов Minecraft, и я хотел бы знать, как хранятся фрагменты фрагментов Minecraft.
Из статьи Minecraft Wiki о том, как Minecraft хранит свои фрагменты.
Разделы: список составных тегов, каждый тег представляет собой своего рода подфрагмент.
Отдельный раздел.
Y: Индекс Y (не координата) этого раздела. Диапазон от 0 до 15 (снизу вверх), без дубликатов, но некоторые разделы могут отсутствовать, если они пусты.
Блоки: 4096 байт идентификаторов блоков, определяющих местность. 8 бит на блок плюс ? биты из приведенного ниже Добавить тег.
Дополнение: Может не существовать. 2048 байт дополнительных данных идентификатора блока. Значение, которое нужно добавить (объединить) с указанным выше идентификатором блока для формирования истинного идентификатора блока в диапазоне от 0 до 4095. 4 бита на блок. Объединение выполняется путем сдвига этого значения на 8 бит влево и последующего добавления его к идентификатору блока сверху.
Данные: 2048 байт блочных данных, дополнительно определяющих части рельефа. 4 бита на блок.
BlockLight: 2048 байт, записывающих количество излучаемого блоком света в каждом блоке. Сокращает время загрузки по сравнению с пересчетом во время загрузки. 4 бита на блок.
SkyLight: 2048 байт, записывающих количество солнечного или лунного света, падающего на каждый блок. 4 бита на блок.
Но я не понимаю, как Blocks
читается. Каждая секция в чанке имеет размер 16 x 16 x 16 блоков. Но вместо этого Minecraft хранит блоки в разделе массива 1-d.