[1.7.10] TileEntity.Нагрузка на сервер.Вопрос по методу

17
0
Создавал я "систему" призрачных блоков.И появилось пару вопросов.Cильно ли TileEntity с NBT нагружает сервер?
И второй вопрос: когда игрок сломает один из блоков "мультиблочной" структуры (или главный блок,или "призрачный"),то все блоки должны исчезнуть.Координаты храню в НБТ.А так как метод onBlockDestroyedByPlayer(который я использую для достижение вышеуказанной цели) вызывается уже после ломания блока ,то и тайл исчезает.В теле метода я уже не могу взаимодействовать  с тайлом,из-за этого при ломании блока-краш,с указанием на нулл.Кто-то может подсказать метод или способ ,чтоб достигнуть нужной цели?
 
Такс. Конечно же, использовать тайл для строительных блоков не стоит, но если же без него не обойтись - ничего страшного. Многие сервера используют мод Carpenter Blocks, а в них как раз тайл и используется, но ничего же, сервера не падают.
Чтобы убирать блоки, юзай метод breakBlock. Если посмотреть в класс BlockContainer, то можно увидеть, что как раз в нем и удаляется тайл:
Код:
public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)
    {
        super.breakBlock(par1World, par2, par3, par4, par5, par6);
        par1World.removeBlockTileEntity(par2, par3, par4);
    }
То есть перед вызовом super делаешь все что нужно со своим тайлом.
 
Если блоки не должны видеть вообще, они одинаковы и структура является правильным параллелепипедом, тогда можно хранить только две координаты на структуру.
 
Проблему решил.Спасибо всем.
И да,у меня, "призрачные" блоки - это блоки которые заполняют пустые участки  3д модели .
 
Назад
Сверху