Технический снапшот 24w37a - Исправление жемчуга Энда и механики конверсии мобов

Minecraft 24w37a приносит важное исправление работы жемчуга Энда, уточняет правила передачи данных при конверсии мобов и содержит десятки исправлений различных ошибок.

Разработчики Minecraft выпустили новый тестовый 24w37a. Этот снапшот, в отличие от крупных контентных обновлений, сосредоточен на технических доработках, исправлении критических багов и тонкой настройке внутренних игровых систем. Главными изменениями стали окончательное решение проблемы с жемчугом Энда, пересмотр логики передачи данных между мобами при их преобразовании, а также обновление версий дата-паков и ресурс-паков, открывающее новые возможности для создателей контента.

Исправление жемчуга Энда

Самым заметным изменением снапшота стало исправление бага MC-276316, из-за которого жемчуг Энда не телепортировал сущность (игрока) в точку своего падения. Теперь эта ключевая механика работает корректно. Однако, помимо простого исправления, разработчики значительно доработали внутреннее поведение жемчуга, чтобы подобные проблемы не возникали в будущем.

Теперь Жемчуг Энда при броске гарантирует, что чанк, в котором он находится или в который перемещается, всегда будет загружен и обрабатывается игрой ("тикует"). Это касается и ситуаций, когда жемчуг пересекает границу измерения: при переходе, например, из Верхнего мира в Незер, он загружает целевые чанки, чтобы беспрепятственно продолжить полёт. Это делает механику межизмеренческих путешествий с помощью жемчуга Энда более предсказуемой и надёжной.

Кроме того, реализовано новое поведение, схожее с ездовыми животными: если игрок, бросивший жемчуг, выходит из мира, то сам жемчуг выгружается. При повторном входе этого игрока в мир жемчуг снова появляется и продолжает своё движение.

Изменения в конверсии мобов

В прошлом снапшоте была изменена логика передачи данных между мобами при их преобразовании из одного типа в другой (например, зомби в утопленника после нахождения в воде). В 24w37a часть этих правок была пересмотрена на основе фидбека.

Отменённые передачи: Теперь при конверсии не передаются следующие свойства: здоровье (Health), атрибуты (Attributes) и таблицы лута (Loot tables). Это означает, что преобразованный моб получит стандартные для своего нового типа значения здоровья и будет дропать соответствующий лут, а не сохранит параметры исходного моба.

Полный список передаваемых данных: При конверсии одного моба в другого (например, зомби -> утопленник) передаётся следующий набор тегов и свойств (если они были у исходного моба):

  • AbsorptionAmount, active_effects, Age, AngerTime, AngryAt, ArmorDropChances, ArmorItems
  • Brain.memories.minecraft:angry_at.ttl, Brain.memories.minecraft:angry_at.value
  • CanBreakDoors, CanPickUpLoot, CustomNameVisible, CustomName
  • fall_distance, FallFlying, Fire, ForcedAge
  • HandDropChances, HandItems, HurtByTimestamp, HurtTime
  • Invulnerable, IsBaby, Leash, LeftHanded, Motion
  • NoAI, NoGravity, OnGround, Passengers, PersistenceRequired
  • PortalCooldown, Position, RootVehicle, Rotation, Silent
  • SleepingX, SleepingY, SleepingZ, Tags, Team.

Особый случай для мобов, которые разделяются: Для мобов, которые не конвертируются, а разделяются на несколько (например, слаймы), не передаётся часть свойств, связанных с экипировкой и физическим состоянием: ArmorDropChances, ArmorItems, HandDropChances, HandItems, Leash, а также данные о положении, вращении и движении.

Намеренно не передаваемые свойства: Согласно отчёту MC-88967, следующие свойства никогда не передаются при любой конверсии: Attributes, Gossips, Health, Loot tables, VillagerData, Xp.

Технические изменения для создателей контента

Версия дата-пака обновлена до 53, а версия ресурс-пака - до 38. Это приносит ряд новых возможностей для моддеров и авторов карт.

Новые лутаблицы и теги

  • Значение инструмента (используемое, например, в функции match_tool) теперь доступно для дополнительных типов лутаблиц: archaeology (используемая кисть), vault (вставленный ключ, недоступно при отображении предметов), shearing (ножницы).
  • Механика откладывания яиц курицами теперь контролируется лутаблицей gameplay/chicken_lay.
  • Случайное выпадение щитков у броненосцев контролируется лутаблицей gameplay/armadillo_shed.
  • Лут, выдаваемый жителями при эффекте "Герой деревни", теперь контролируется двумя новыми таблицами: gameplay/hero_of_the_village/unemployed_gift (для безработных жителей) и gameplay/hero_of_the_village/baby_gift (для детей-жителей).

Новые теги предметов

  • duplicates_allays: предметы, которые можно использовать для дублирования аллеев во время их танца.
  • panda_eats_from_ground: предметы, которые панда будет подбирать с земли и есть.
  • brewing_fuel: предметы, которые можно использовать как топливо в стойке для варки зелий.

Изменения компонентов предметов

  • Компонент minecraft:fire_resistant переименован в minecraft:damage_resistant и получил новое поле types - тег типов урона с префиксом #. Предметы с этим компонентом в форме сущности будут устойчивы к указанным типам урона. Компонент также влияет на то, будет ли экипированный предмет получать урон, когда его носитель ранен.
  • Компонент minecraft:item_name теперь всегда имеет наименьший приоритет и будет переопределён такими компонентами, как minecraft:potion_contents.
  • В компонент minecraft:potion_contents добавлено опциональное строковое поле custom_name. Если оно присутствует, оно будет использовано для генерации имени предмета (например, для зелья с custom_name: "foo" игра попытается использовать ключ перевода item.minecraft.lingering_potion.effect.foo).
  • В компонент minecraft:equippable добавлены поля: swappable (можно ли экипировать ПКМ, по умолчанию true) и damage_on_hurt (получает ли предмет урон, когда экипировавшая его сущность ранена, по умолчанию true).
  • Добавлен новый компонент minecraft:death_protection. Если он присутствует, предмет защитит владельца от смерти, восстановив одно очко здоровья. Можно задать дополнительные эффекты (death_effects), которые применятся при срабатывании защиты.

Другие технические правки

  • Добавлен новый sub-предикат для сущности лосося (minecraft:salmon) с полем variant, принимающим значения small, medium, large.
  • Триггер достижения minecraft:killed_by_crossbow переименован в minecraft:killed_by_arrow и теперь срабатывает при убийстве любой стрелой, а не только выпущенной из арбалета. Добавлено новое опциональное поле Item Predicate fired_from_weapon для проверки оружия, из которого была выпущена стрела.
  • В ресурс-паках появилась возможность кастомизировать вид выделенного слота в интерфейсах, заменяя спрайты container/slot_highlight_front и container/slot_highlight_back. Аналогичные спрайты добавлены для выделения предметов внутри открытого бандла.
Скидка 10% по промокоду

Ищете хостинг Minecraft серверов?

Запустите свой сервер за минуту — установка модов и плагинов в один клик, защита от DDoS, мощное железо. Промокод PROMO10 даст скидку 10% на любой тариф.

PROMO10
Скопировать
Посмотреть тарифы