[1.9-1.10]Как обновить блок если выбран определённый предмет

917
22
332
Всем доброго дня, то бишь вечера:)
В общем объясню подробнее: У меня есть блок с типом рендера -1. Если игрок берёт в руки определённый предмет, рендер изменяется на ... не помню номер, но не суть.
Суть: Смотрел в классе Block но подобного метода там нет(хотя может и есть...). Насколько я понял - для реализации моей идеи нужно постоянное обновление блока, то-есть TileEntity. Итак он создан(может быть), но что дальше?
Как мне постоянно проверять активный предмет? 
К тому же с версии 1.7.10 очень многое поменялось, и интерфейс IUpdatePlayerListBox исчез. Что мне теперь реализовывать в классе моего TileEntity, что-бы переопределить метод update и нужен ли он вообще?
Смотрел интерфейсы в классе TileEntity и пришёл к выводу что мне подходит по меньшей мере половина:blink:
С TileEntity столкнулся только вчера и теперь потихоньку схожу с ума...:silly:
Помогите, кому не трудно!
Заранее, спасибо:lol:.
[merge_posts_bbcode]Добавлено: 11.07.2016 23:58:52[/merge_posts_bbcode]

Никто не знает?:ermm: Или я задал тупой вопрос? Но я правда не понимаю...

[merge_posts_bbcode]Добавлено: 12.07.2016 00:04:39[/merge_posts_bbcode]

Буду ждать... А пока суть да дело, продолжу выяснять отношения с форджем...
 
917
22
332
nikita488 написал(а):
В 1.8+ нужно написать implements ITickable чтобы был метод update()
А помимо этого? Может быть можно как-то обойтись вообще без TileEntity. Я просто боюсь, что постоянное обновление блока будет сильно тормозить майн.
[merge_posts_bbcode]Добавлено: 12.07.2016 14:43:02[/merge_posts_bbcode]

Тем более если таких блоков будет на карте много...

[merge_posts_bbcode]Добавлено: 12.07.2016 15:01:48[/merge_posts_bbcode]

UP
 
4,045
63
645
Мне кажется, тут не через блок нужно действовать, а через игрока. Например, в тик эвенте каком-нибудь проверять наличие предмета, и заменять рендер блоков.
Или тебе нужно, что бы менялся конкретный блок?
 
917
22
332
Liahim написал(а):
Мне кажется, тут не через блок нужно действовать, а через игрока. Например, в тик эвенте каком-нибудь проверять наличие предмета, и заменять рендер блоков.
Или тебе нужно, что бы менялся конкретный блок?
Да, именно конкретный блок.:(
 
4,045
63
645
Тогда проще тайлом... Проверяешь всех игроков в определённом радиусе и меняешь вид блока.
[merge_posts_bbcode]Добавлено: 12.07.2016 17:00:01[/merge_posts_bbcode]

Хм... Или в том же тик эвенте проверяешь блоки в радиусе от игрока :D
Можно и так.
 
917
22
332
Буду пробовать. Тему пока не закрываете, может ещё вопросы возникнут.
Liahim спасибо!
 
212
0
Тут надо по другому действовать - в методе рендера проверять, есть ли у клиентского игрока (Minecraft.getMinecraft().thePlayer) нужный тебе предмет в руке.
 
4,045
63
645
В общем, способов много )
[merge_posts_bbcode]Добавлено: 12.07.2016 17:14:25[/merge_posts_bbcode]

Тут опять же, фишка в требуемом эффекте.
Если этот заменившийся блок должны видеть все игроки, а не только один, тогда через эвент с заменой блока или его меты.
Если только для конкретного игрока, тогда через рендер. Хотя, это ж каждый раз у каждого блока нужно проверять, какие игроки находятся близко...*
По мне так эвентом проще.

* тупанул ))) В рендере не нужно делать проверку на всех игроков, ибо метод клиентский и игрок только один )))
 
917
22
332
Ага... Значит мне подходит через эвент. Что ж, буду делать мету...
[merge_posts_bbcode]Добавлено: 12.07.2016 16:32:55[/merge_posts_bbcode]

Спасибо за советы. К сожалению сейчас проверить не могу, только вечером
 
Сверху