Vavilon831@legacy41646140 (обс. | вклад) (Новая страница: «''Извиняюсь за столь странное оформление. Все исправлю. Красным помечен текст который я не ...») |
Vavilon831@legacy41646140 (обс. | вклад) мНет описания правки |
||
Строка 1: | Строка 1: | ||
− | '' |
+ | ''Красным помечен текст который я не могу правильно перевести. Помогите кто может'' |
Minecraft Beta 1.3 использует новый вариант для хранения блоков: начиная с бетты 1.3, каждая группа из 32 на 32 блока храниться в файле региона, а не по отдельности. Можно сказать, что регион является частью файловой системы,<font style='color: #red;'>'''где заголовок позиции для каждого файла и сектор размер кластера.''' </font> Система основана на моде McRegion (Scaevolus) , производитель Optimine. Формат McRegion был принят почти без изменений, за исключением добавления таблицы временных меток блоков. JahKob утверждает, что этот формат в 7 раз быстрее, чем предыдущая система. |
Minecraft Beta 1.3 использует новый вариант для хранения блоков: начиная с бетты 1.3, каждая группа из 32 на 32 блока храниться в файле региона, а не по отдельности. Можно сказать, что регион является частью файловой системы,<font style='color: #red;'>'''где заголовок позиции для каждого файла и сектор размер кластера.''' </font> Система основана на моде McRegion (Scaevolus) , производитель Optimine. Формат McRegion был принят почти без изменений, за исключением добавления таблицы временных меток блоков. JahKob утверждает, что этот формат в 7 раз быстрее, чем предыдущая система. |
Версия от 00:52, 10 мая 2011
Красным помечен текст который я не могу правильно перевести. Помогите кто может
Minecraft Beta 1.3 использует новый вариант для хранения блоков: начиная с бетты 1.3, каждая группа из 32 на 32 блока храниться в файле региона, а не по отдельности. Можно сказать, что регион является частью файловой системы,где заголовок позиции для каждого файла и сектор размер кластера. Система основана на моде McRegion (Scaevolus) , производитель Optimine. Формат McRegion был принят почти без изменений, за исключением добавления таблицы временных меток блоков. JahKob утверждает, что этот формат в 7 раз быстрее, чем предыдущая система.
Файлы регионов
Расположение файлов регионов
Файлы регионов находятся в папке ..\saves\имя вашего мира\region и имеют имена в виде r.x.z.mcr, где X и Z являются координатами региона. Координаты для региона кусок принадлежит могут быть найдены путем принятия этаже кусок координаты разделить на 32.
В Java:
int localX = (int)Math.floor((double)chunkX / 32); int localZ = (int)Math.floor((double)chunkZ / 32);
Например, блок с координатами (30, -3) будет в регионе (0, -1), а блок с координатами (70, -30) будет в регионе(2, -1).
Структура
Файлы регионов начинаются с 8kiB заголовка, содержащую информацию о том, какие куски присутствуют в файле регионов, когда они в последний раз были обновлены, и где их можно найти. Расположенный в файле региона блок (X, Z) (координаты блока) можно найти по смешению в байтах 4 * ((x mod 32) + (z mod 32) * 32) в своем файле регионов. Его временные метки могут быть найдены 4096 байт в конце файла. Остальная часть файла состоит из данных по 1024 блокам, чередующимися с произвольным количеством свободного места.
byte | 0 - 4095 | 4096 - 8191 | 8192... |
---|---|---|---|
описание | locations (1024 entries) | временные метки(1024 entries) | блоки и пустое место |
Расположение чанков
Location information for a chunk consists of four bytes split into two fields: the first three bytes are a (big-endian) offset in 4KiB sectors from the start of the file, and a remaining byte which gives the length of the chunk (also in 4KiB sectors, rounded up). Chunks will always be less than 1MiB in size. If a chunk isn't present in the region file (e.g. because it hasn't been generated or migrated yet), both fields will be zero.
Информация о расположении блоков состоит из четырех байт разделенных на два поля: первые три байта-смещение (с обратным порядком байтов) смещены на 4KiB от начала файла, а последний байт задает длину блока(также в 4KiB секторов, округленно). Блоки всегда будет меньше, чем 1MiB в размерах. Если блока нет в файле регионов (например, потому что он не был сгенерирован или перемещен ), оба поля будет равна нулю.
byte | 0 | 1 | 2 | 3 |
---|---|---|---|---|
описание | смещение | количество секторов |
Блок со смещением 2 начинается сразу после таблицы временных меток.
Временные метки блоков
Записи в таблице временных меток - отдельные четырехбайтовые целые числа с обратным порядком байтов, отображают время последнего изменения блока.
byte | 0 | 1 | 2 | 3 |
---|---|---|---|---|
описание | метки |
Данные блока
Chunk data begins with a (big-endian) four-byte length field which indicates the exact length of the remaining chunk data in bytes. The following byte indicates the compression scheme used for chunk data, and the remaining (length-1) bytes are the compressed chunk data. Данные о блоке начинаются с четырехбайтового поля (с обратным порядком байтов), которое указывает на точную длину остающихся данных блока в байтах. Следующий байт указывает на тип сжатия, используемую для данных блока, и последний (длина 1), байт - сжатые данные блока.
byte | 0 | 1 | 2 | 3 | 4 | 5... |
---|---|---|---|---|---|---|
описание | длина(в байтах) | тип сжатия | сжатые данные (длина-1 байт) |
В настоящий момент есть два определенных типов сжатия:
Значение | Метод |
---|---|
1 | GZip (RFC1952) (не используется) |
2 | Zlib (RFC1950) |
Если Вы предпочитаете считавать, данные блока сжатого методом DEFLATE Zlib-сжатbt(RFC1951), тогда пропускайте первые два байта и бросают последние 4 байта перед распаковкой
Несжатые данные находятся в формате NBT с такой же структурой как в alpha; если бы было сжато типом сжатия 1, то сжатые данные были бы идентичны формату сжатия файлов для блоков Альфы. Заметьте, что блоки всегда будут сохраняться, используя тип сжатия 2 в официальном клиенте.
Миграция и level.dat
Бета 1.3 преобразует любые "старые" блоки в файлы регионов прежде чем загрузить мир, а не во время игры. При преобразовании level.dat будет обновлен с тегом TAG_Int ("version") со значением 19132. Бета 1.3 также имеет новый тег с названием уровня(мира), TAG_String ("LevelName"). Также появился новый тег TAG_Byte ("Sleeping")в проигрывателе TAG_Compounds - level.dat в сингле, [имя игрока].dat в мультиплейере, который указывает, находится ли игрок на кровати. У него есть значения 1(true) or 0(false.
The format of level.dat is otherwise unchanged from alpha. Формат level.dat иначе неизменен относительноalpha.
Смотрите также
- Alpha Level Format
- Alpha Level Format/Chunk File Format
- Mojang announcement of new region format
- JahKob writing about the speed
- Jeb announcing McRegion being used with minor modifications
- McRegion
- Scaevolus according McRegion
- Jeb helping tool-makers
- RegionFile in Java
- RegionFileCache in Java