Руководства / Строительство и ресурсы
Губка и блок-конструктор — это не один и тот же файл
.schem, .litematic и .mcstructure для Бедрока выглядят взаимозаменяемыми, пока не сконвертируешь один из них и не обнаружешь, что все сундуки, сущности и состояния блоков исчезли.
.schem и .litematic оба хранят постройку, и именно на конвертации между ними большинство игроков обнаруживает, что эти два формата так и не договорились о том, что такое постройка на самом деле. Один хранит область блоков. Другой хранит историю размещения. Перенеси город между ними — и дома выживут, а их содержимое нет.
Что на самом деле несёт каждый формат
| Формат | Где работает | Состояния блоков | Блок-сущности | Сущности |
|---|---|---|---|---|
.schem | Java, WorldEdit/Губка | да | да | да |
.litematic | Java, Litematica | да | да | да |
.nbt structure | Java, блок-конструкторы | да | да | да |
.mcstructure | Бедрок | да | да | да |
Столбцы выглядят одинаково — в этом и ловушка. Разница в обработке палитры и координатном пространстве, а не в списке возможностей.
Палитра — хрупкая часть
Каждый из этих форматов хранит блоки как индекс в палитре (palette) — списке уникальных типов блоков, которые использует файл, где каждая позиция содержит число, указывающее в этот список. Постройка с несколькими сотнями различных типов блоков несёт палитру такого размера, а позиции — просто целые числа.
Это значит, что файл читаем только тогда, когда читатель может разрешить каждую запись палитры. Блок, добавленный в более новой версии Java, вообще не имеет аналога в Бедроке, поэтому при конвертации из Java в Бедрок его приходится заменять или отбрасывать. Обычная замена — воздух, и стена с загадочно пропавшими блоками почти всегда именно это, а не повреждение файла.
Java и Бедрок называют один и тот же блок по-разному
Вот где Java и Бедрок действительно расходятся. Бедрок записывает состояния блоков как block_type плюс набор состояний «ключ-значение»; Java записывает ID с пространством имён плюс карту состояний. Один и тот же физический блок может быть minecraft:oak_stairs[facing=east,half=bottom] с одной стороны и по-другому упорядоченным набором состояний с другой.
Переворачиваются именно ступени, плиты, заборы, стены, двери и компоненты редстоуна. Лестница, которая после конвертации отображается вверх ногами, — это несоответствие порядка состояний, а не плохой файл.
Блок-конструктор хранит не то, что вы думаете
Блок-конструктор, сохраняющий в .nbt, записывает ограничивающий прямоугольник, и у этого прямоугольника есть жёсткий лимит размера по каждой оси. Постройки больше прямоугольника не сохраняются одним файлом — игра разбивает их или отказывается сохранять. Если у сконвертированной постройки отсутствует дальний конец, проверьте исходный прямоугольник, прежде чем винить конвертер.
Сущности хранятся отдельно от блоков в каждом из этих форматов. Рамки, стойки для брони, картины и мобы — не блоки, и конвертер, который обходит только палитру блоков, молча их отбросит.
Проверьте предпросмотр, прежде чем доверять
Список материалов — самая быстрая проверка на вменяемость: если количество блоков в сконвертированном файле не совпадает с исходным, что-то было заменено. Предпросмотр слоёв показывает это сразу, слой за слоем по горизонтали, без загрузки постройки в мир.
Конвертируйте между .litematic, .schem, Java structure .nbt и Бедрок .mcstructure, с предпросмотром слоёв и списком материалов, в Конвертере схем.