В новом еженедельном снапшоте 25w03a для Minecraft команда разработчиков сосредоточилась на технологических улучшениях, которые в первую очередь заинтересуют создателей контента, моддеров и картоделов. Ключевым нововведением стало серьёзное расширение встроенной системы игровых тестов (Game Test Framework), которая теперь интегрирована с дата-паками и получила новую команду. Помимо этого, снапшот включает ряд исправлений давних ошибок, связанных с седлами, отображением сущностей и механикой мира.
Обновление системы игровых тестов
Система игровых тестов, ранее доступная в основном для внутреннего использования разработчиками, теперь полностью открыта для сообщества. Это позволяет создавать автоматизированные тесты для проверки механик, созданных с помощью дата-паков или модов, что значительно упрощает отладку и обеспечение качества контента.
Новая команда /test
Основным инструментом для работы с тестами стала новая команда /test. Она предоставляет широкий набор подкоманд для создания, запуска, сброса и верификации тестов. Тесты можно запускать по одному, группами или все сразу, размещая их в сетке в специально подготовленном суперфлат-мире. Статус выполнения каждого теста визуализируется лучом маяка: серый - в процессе, зелёный - успех, красный или оранжевый - провал (для обязательных и необязательных тестов соответственно). При провале детали ошибки отображаются на книге в стойке для чтения.
Тестовые блоки и окружения
Для создания тестов добавлен специальный Test Block (Тестовый блок). Он имеет четыре режима работы, активируемые редстоуновым сигналом: start (запуск теста), log (запись в лог), fail (провал теста) и accept (успешное завершение). Каждый блочный тест должен содержать как минимум один блок start и один accept.
Тесты определяются через ассеты в реестре test_instance и могут быть двух типов: function (запускает функцию) и block_based (полагается на тестовые блоки в структуре). Для настройки условий выполнения (погода, время суток, игровые правила) используются Test Environments (Тестовые окружения).
Запуск тестов вне игры
Для автоматизации в серверный .jar файл добавлена новая точка входа net.minecraft.gametest.Main. Она позволяет автоматически запустить сервер, выполнить все доступные тесты и завершить работу, что идеально подходит для интеграции в CI/CD-пайплайны. Команда поддерживает различные параметры, такие как указание папки с дата-паками (--packs), экспорт отчёта в JUnit-подобном XML-формате (--report) и выбор конкретных тестов для запуска.
Незначительные изменения в геймплее
Хотя основной фокус снапшота - технический, нашлось место и для небольших, но приятных правок.
- Лиственный опад (Leaf Litter) теперь можно использовать в компостере. Это даёт игрокам дополнительный способ переработки этого декоративного блока.
- Седла, надетые на свиней или страйдеров, теперь сохраняют свои свойства (например, заданное через наковальню имя) при выпадении в качестве дропа.
Технические изменения
Унификация данных экипировки
Произведена крупная реформа в хранении данных экипировки сущностей. Поля ArmorItems, HandItems и body_armor_item объединены в одно поле equipment. Это упорядоченная карта, где ключами являются типы слотов: head, chest, legs, feet, mainhand, offhand, body и новый saddle. Изменение касается всех мобов и стоек для брони, но не игроков.
Седла для всех ездовых животных (лошади, свиньи, страйдеры, верблюды и др.) теперь также хранятся в этом поле (equipment.saddle), что унифицирует их поведение с другой экипировкой. Это означает, что на седла теперь корректно работают модификаторы атрибутов и шанс выпадения при смерти, управляемый полем drop_chances.
Компоненты для вариантов мобов
Добавлена новая система компонентов для точной настройки внешнего вида мобов при их спавне. Эти компоненты (например, wolf/variant, cat/variant, tropical_fish/pattern_color) можно задавать в яйцах призыва, ведёрках с рыбой или картинах. Это заменяет старую систему использования компонента minecraft:entity_data и делает работу с вариантами более предсказуемой и удобной для создателей ресурс-паков. Соответственно, обновлены предикаты сущностей: многие специализированные суб-предикаты (для волков, котов, тропических рыб и др.) удалены в пользу универсального поля components.
Обновление версий паков
- Версия дата-паков увеличена до 63.
- Версия ресурс-паков увеличена до 48.
Для ресурс-паков это связано, в частности, с изменением системы текстур для седла. Текстуры седла для разных животных (свиньи, страйдера, лошади, верблюда и др.) были вынесены из основных текстур сущностей в отдельные файлы по пути entity/equipment/, что позволяет легче их кастомизировать.





