Универсальные Capability
Capability
Вы решили добавить игроку шкалу маны или добавить всем мобам новый параметр деньги или какие-либо другие данные? Для этого HollowCore предоставляет систему Capability с автоматическим сохранением и синхронизацией данных.
Создание Capability
Capability
Наследуйтесь от класса CapalilityInstance()
и добавьте какой-либо сериализуемый параметр
(с аннотацией @Serializable
или наследуемый от
ru.hollowhorizon.hc.client.utils.nbt.INBTSerializable
).
Так же добавьте аннотацию @HollowCapabilityV2
с параметрами объекта, к которому Capability
будет привязана ко всем объектам, наследованным от указанного. Доступные варианты: Entity
,
Player
, BlockEntity
и Level
. Также вы можете создать интерфейс и указать его в качестве
цели, тогда все объекты, реализующие данный интерфейс, будут иметь эту Capability
.
@HollowCapabilityV2(Entity::class)
class MoneyCapability : CapabilityInstance() {
var money: Int by syncable(0) // Синхронизируемый параметр типа Int, все примитивные типы тоже сериализуемы
}