Sainthozier
Стрелочник
- 623
- 11
- 369
Всем привет.
Пытаюсь отрендерить текст при нанесении дамага мобу. В ивенте
Происходит следующее:
1) бью моба, отсылается пакет,
2) через секунду бью моба ещё раз, отсылается пакет, но
Делал в 4 утра, но уже сейчас понял, что у меня неправильная логика. Как лучше поступить в моём случае? Я нашёл несколько примеров, но это не то, в них полученная инфа добавляется в лист и всё рендерится по очереди, а я хочу рендерить на 3 секунды всегда новую инфу.
P.S. Рендерю текст в ивенте
Пытаюсь отрендерить текст при нанесении дамага мобу. В ивенте
LivingAttackEntity
отсылаю пакет с нужной мне инфой, в хендлере сетаю значения static переменных класса рендера на значения из пакета. С этим проблем нет, но проблема возникла в таймере. Я хочу отрендерить текст с полученной инфой, например, на 3 секунды. Создал boolean
переменную isDraw
, обернул весь рендер в if(isDraw)
, в том же классе рендера, но в ивенте PlayerTickEvent
чекаю, что event.player.ticksExisted % 60 == 0
и сетаю переменную isDraw
на false
.Происходит следующее:
1) бью моба, отсылается пакет,
isDraw
сетится на true
, рендерится текст;2) через секунду бью моба ещё раз, отсылается пакет, но
isDraw
уже true
, а таймер тикает, собственно второй текст рендерится уже не 3 секунды, а оставшиеся 2.Делал в 4 утра, но уже сейчас понял, что у меня неправильная логика. Как лучше поступить в моём случае? Я нашёл несколько примеров, но это не то, в них полученная инфа добавляется в лист и всё рендерится по очереди, а я хочу рендерить на 3 секунды всегда новую инфу.
P.S. Рендерю текст в ивенте
RenderGameOverlayEvent.Post
. Код могу скинуть позже, сейчас нет доступа к ide. Но я вроде бы понятно всё расписал )