Capabilities

Версия Minecraft
1.12.2
API
Forge
16
1
0
Доброго времени суток. Кто-то может объяснить как правильно сделать capabilities? Читал документацию, статью. Так и не понял как это работает. Кто-то может скинуть гайд на эту тему для чайников?
 
7,099
324
1,510
Капабили предназначены для того, чтобы прикреплять кастомные структуры данных к произвольным игровым объектам.
Обычно капабилити состоит из трех сущностей:
Хранимой структуры данных
Реализация ICapabilitySerializable - провайдер капабилити, предоставляет экземпляр структуры данных
Реализация IStorage - определяет, как структура данных будет сохраняться

Чтобы объект имел определенную капабилити, ее нужно к нему прикрепить. Легче всего это сделать, обрабатывая событие AttachCapabilityEvent. Капабилити может быть прикреплен к: ItemStack, TileEntity, Entity, World, Chunk, еще че-то что я забыл, чекни в ссылках ниже.

Если не нужно сохранять данные при сохранении мира, то вместо ICapabilitySerializable стоит использовать ICapabilityProvider, а в IStorage ничего не записывать и не читать в/из нбт.

Материалы по теме:

Примеры реализации лучше всего смотреть в опенсорсных модах. Например, если в моде есть система маны(в мире или в игроке), то с большой вероятностью она сделана на капабилити
 
Сверху