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