Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Как узнать кол-во блоков в мире. (Тех что укажешь в функции как minecraft:dirt выведет допустим 100000)
Как узнать кол-во блоков в мире. (Тех что укажешь в функции как minecraft:dirt выведет допустим 100000)
К примеру LOGGER.info(GetBlockCount(MyCustomBlock.get()));
выведет к примеру 5 если в мире их 5.
Как узнать кол-во блоков в мире. (Тех что укажешь в функции как minecraft:dirt выведет допустим 100000)
К примеру LOGGER.info(GetBlockCount(MyCustomBlock.get()));
выведет к примеру 5 если в мире их 5.
Расчет этого будет не очень долгим, только если обращаться напрямую к битовым массивам, не сопоставляя набор бит <-> Состояние каждый раз, скопировать в стек все что возможно, не мусорить, не использовать полиморфизм итд
Проходишь в цикле по всем чанкам, в каждом чанке проходишь по вертикальной секции, проверяешь палитру - если в ней нет нужного состояния блока - можно скипнуть, создаешь локальную таблицу, в которой хранишь пару Набор-бит=Количество, копируешь в стек указатель на массив бит, в цикле проходишься по нему и заполняешь таблицу, сопоставляешь Набор-бит=Состояние
Если твой блок имеет tile entity - то там проще и быстрее - делай список по тилям в чанке, и проверяй "твой ли он"
Ну или как сказали выше - логировать установку/уничтожение
У меня уже есть на уничтожение блока. Но я не понял как сделать на установку. Весь инет перерыл и не нашёл BlockPlace эвента. Потому что пишет что BlockPlace эвент не существует. А его новое название я не нашёл.
Он работает.
Код:
@SubscribeEvent
public void onBlockDestroyed(BlockEvent.BreakEvent event) {
Но это пишет не существует PlaceEvent. И в подсказках Intellij Idea тоже нету.
Код:
@SubscribeEvent
public void onBlockPlaced(BlockEvent.PlaceEvent event) {