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

Версия Minecraft
1.12.2
API
Forge

sk9zist :l

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

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

sk9zist :l

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

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