@events.pre_render_3dотменить нельзя5 методовКаждый кадр, когда небо уже нарисовано, а блоки и существа ещё нет.
То же самое, что render_3d, но раньше на один шаг: нарисованное здесь закрывается блоками и спинами, как обычная постройка в мире.
Годится для подсветки пола под ногами, кругов, разметки на земле, свечения у стены: всё это должно прятаться за препятствиями, иначе выглядит наклейкой поверх экрана.
Методы те же самые: событие идёт первым аргументом в render3d, набор полей у него совпадает с render_3d.
| Метод | Возвращает | Зачем |
|---|---|---|
getMatrices() | MatrixStack | Стек матриц кадра |
getPositionMatrix() | Matrix4f | Матрица позиции |
getProjectionMatrix() | Matrix4f | Матрица проекции |
getCamera() | Camera | Камера: позиция и поворот взгляда |
getTickDelta() | float | Доля тика для плавных анимаций |
mod = Module("FloorRing", "Visuals")
COL = Color(86, 124, 252, 160)
@events.pre_render_3d
def draw(event):
if not mod.isEnabled() or not world.ingame():
return
me = world.self()
render3d.ring(event, me, 1.2, 0.02, 48, COL) # круг уйдёт за ступеньку или стенуОбщий список всех событий и правила подписки лежат на странице События.