Рендеринг пустой руки \ кулдавн

Версия Minecraft
1.12.2
API
Forge

sk9zist :l

Исправился
981
18
157
Как при взятом в руках у игрока моего предмета рендерить вместо него от 3-йего лица пустой предмет тоесть воздух? Вопрос как
Чтобы он не отображался в руках когда его держиш

А ещё, как сделать кулдавн предмету? я так понимаю надо сделать какой-то сверх большой метод?
 
Последнее редактирование:
Решение
Сделай предмету кастомную модель и при перспективе от третьего лица добавь смещение на 10000000 по любой оси(лучше по Y)
За трансформации матрицы модели отвечает метод handlePerspective, его аргумент определяет перспективу
7,099
324
1,509
Всегда не отображался? Текстуру полностью прозрачной сделай
 

sk9zist :l

Исправился
981
18
157
В руках чтобы отображался на клиенте держа в руке а для других нет. Хоть нормальную текстуру я нарисовать и не могу, но прозрачной её делать - это уж совсем.

~~~
А ещё если делать прозрачную текстуру то всё равно будет видно что игрок что-то держит в руке (рука немного вытянута на 20 градусов вперёд и как будто держит предмет) хотя это не так важно для меня, уже придираюсь.
 

sk9zist :l

Исправился
981
18
157
Искусственное поднятие вопроса.
 
7,099
324
1,509
Сделай предмету кастомную модель и при перспективе от третьего лица добавь смещение на 10000000 по любой оси(лучше по Y)
За трансформации матрицы модели отвечает метод handlePerspective, его аргумент определяет перспективу
 

sk9zist :l

Исправился
981
18
157
А почему вот так не работает:
Java:
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onRender(RenderPlayerEvent.Specials.Pre e)
{
    if(e.getEntityPlayer().getHeldItemMainhand().getItem() == ITEM)
    {
        e.setRenderItem(false);
    }
}
Тут дело в том, что он даже тестовое сообщение не выводит в чат. Эвент почему-то не работает. Хотя в других темах этот код был отмечен решением.

кастомную модель и при перспективе от третьего лица добавь смещение на 10000000 по любой оси(лучше по Y)
Спасибо. Если ни у кого больше идей не будет, отмечу лучшим. А что насчёт кулдауна? Как его можно сделать
 
Последнее редактирование:
7,099
324
1,509

sk9zist :l

Исправился
981
18
157
Посмотри в эндер-перле
Ага, ванильный кулдавн тут не прокатит. Он связан с onRightClick своего предмета и в hitEntity либо onLeftClickEntity этот ванильный кулдавн уже не работает.
Java:
player.getCooldownTracker().setCooldown(item, time);
 
Последнее редактирование:
7,099
324
1,509
Почему не прокатит? Там же можно получить значение кулдауна, если у тя свой метод, а не пкм/лкм
 

sk9zist :l

Исправился
981
18
157
RenderPlayerEvent.Specials deprecated.
Значит хук... эх
Там же можно получить значение кулдауна, если у тя свой метод, а не пкм/лкм
А, ну да. Я так пробовал уже.

Вот так?
Java:
if(player.getCooldown().getTicks() != 0)
{
    // или как
}
это примерно.
Я делал вот так и не работало:
Java:
if(playerIn.getCooldownTracker().getCooldown() != null)
}
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
Просто не рисуй да и всё
Не совсем понятно как.

Про кулдавн уже решил:
Java:
if(e.getEntityPlayer().getCooldownTracker().getCooldown(e.getItemStack().getItem(), Minecraft.getMinecraft().getRenderPartialTicks()) != 0.0F)
{
    //тутcode
}
поскольку getCooldown возвращает float равный 0 если кулдавн равн нулю. (т.е не установлен можно полагать)
Основной вопрос решен. Лучший ответ достался hohserg.
 
Сверху