Атрибуты выносливости
Данный API добавляет систему выносливости, управляемую атрибутами сущностей.
Стандартная реализация
Живые сущности могут иметь до generic.max_stamina единиц выносливости. Выносливость восстанавливается на generic.stamina_regeneration каждые generic.stamina_tick_threshold тиков.
При уменьшении выносливости восстановление приостанавливается на generic.stamina_regeneration_delay_threshold тиков.
При выносливости ≤ 0 восстановление приостанавливается на generic.depleted_stamina_regeneration_delay_threshold тиков.
generic.reserved_stamina определяет процент максимальной выносливости, недоступный в данный момент.
generic.item_use_stamina_cost указывает количество выносливости, затрачиваемое при использовании предмета.
Существует два способа назначить предмету затраты выносливости:
- Предметы в теге "staminaattributes:using_costs_stamina" расходуют generic.item_use_stamina_cost при единоразовом использовании. При выносливости < 0 действие не выполняется, а предмет получает кулдаун (настраивается в конфигурации сервера).
- Предметы в теге "staminaattributes:continuous_using_costs_stamina" расходуют generic.item_use_stamina_cost каждый тик во время использования. При выносливости < 0 использование прерывается с применением кулдауна.
Стандартные значения атрибутов
- generic.max_stamina: 10
- generic.stamina_regeneration: 0
- generic.stamina_tick_threshold: 20
- generic.stamina_regeneration_delay_threshold: 20
- generic.depleted_stamina_regeneration_delay_threshold: 60
- generic.reserved_stamina: 0
- generic.item_use_stamina_cost: 0
Стандартные теги предметов
"staminaattributes:using_costs_stamina":
{
"values": [
"minecraft:snowball"
]
}
"staminaattributes:continuous_using_costs_stamina":
{
"values": [
"minecraft:bow",
"minecraft:crossbow",
"minecraft:shield"
]
}
Настройка
При активации игрового правила "naturalStaminaRegeneration" игроки получают минимальное восстановление выносливости, равное 1.
Конфигурация клиента позволяет настраивать элемент HUD (детали описаны в этой статье вики).
Конфигурация сервера управляет интеграцией с игровыми механиками, включая затраты выносливости для действий (например, прыжков).
API
Приведение типа "LivingEntity" к интерфейсу "StaminaUsingEntity" предоставляет доступ к соответствующим методам.