EntityDataManager

Версия Minecraft
1.12.2
4,045
63
645
Народ, объясните, плиз, для чего нужен EntityDataManager и почему используется именно он, а не просто переменные?
В каких случаях нужно использовать его, а в каких обычные переменные?

Пример из кода свиньи:
Java:
protected void entityInit() {
    super.entityInit();
    this.dataManager.register(SADDLED, Boolean.valueOf(false));
    this.dataManager.register(BOOST_TIME, Integer.valueOf(0));
}

При этом BOOST_TIME есть как в атрибутах, так и в переменных this.boostTime, и логика работает именно с переменной... Зачем тогда атрибут?
Спс.
 
243
28
202
@Dahaka верно написал. Это очень полезная система для мониторинга переменных, управляющая текущим значением. А атрибуты нужны для определения диапазона значений и часто используется в связке с EntityDataManager.

P.S. Можешь почитать мой гайд на эту тему, там достаточно подробно об этом написано.
 
4,045
63
645
То есть, как я понял, для данных, которые должны синхронизироваться, лучше использовать атрибуты, а для внутренней логики можно и переменными обойтись...
Хотя, на счёт того же BOOST_TIME я так и не понял... Нафига он сделан атрибутом, когда логика всё равно через одно место? Да и зачем его синхронизировать? И что это вообще такое? О_О
Где я, кто я?

Пошёл читать тутор.

Прочитал, ничего не понял...
Вернее, всё понял, но не понял, что же конкретно нужно мне?
Допустим: если у меня внутренняя переменная - счётчик. Каждый тик буду убавлять значения...
Клиент об этом будет знать только в крайних точках, то есть когда процесс начался и когда он закончился...
Между этими значениями просто будет указано - "процесс идёт".
Нужен ли в данном случае EntityDataManager?
 
Последнее редактирование:
1,057
50
234
получать тики из тайла, не?
 
4,045
63
645
Так, стоп! Один флаг, как в горении... Так EntityDataManager-то нужен или нет?
Или я тупо пилю таймер и каким-то образом синхронизирую этот флаг?
Или пилю таймер и для флага использую EntityDataManager?
Я запутался.
 
Сверху