[1.7 ⇒ 1.12] BlockPos

Версия Minecraft
1.12.2
2,932
44
598
Доброго времени суток Земляне и Чужие!
Сегодня у меня появились такие вопросы: Как работать с позициями в 1.12.2? На 1.7.10 есть такой вот код которые рассчитывает позицию:
Java:
for (int y = 0; y < world.provider.getHeight(); y++) {
int x1 = 8 + (x + random.nextInt(8));
int z1 = 8 + (z + random.nextInt(8));
for (int j = 0; j < 16; j++) {
for (int x2 = -2; x2 <= 2; ++x2) {
for (int z2 = -2; z2 <= 2; ++z2) {
И потом делает проверку: if (world.getBlockID(x1 + x2, y - 1, z1 + z2) == Block.grass.blockID && world.isAirBlock(x1 + x2, y, z1 + z2))

Я так понял в 1.12.2 для того что бы проверка смогла использовать позицию надо сделать вот это: new BlockPos(pos.getX(x1 + x2), pos.getY(y - 1), pos.getZ(z1 + z2));

И потом сделать вот такую проверку: if (world.getBlockState(pos) == RegBlocks.blockburntgrass.getDefaultState() && world.isAirBlock(pos)); {
 
2,932
44
598
Спасибо всем кто помог!
~~~
Мне это чем-то Матрицу напоминает!
8fd5414396c2c349d14cc8573eaf1d26.png
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Все равно оно потом все очистится. Да и даже если создастся 100 тысяч блокпозов, потери будут незначительные, около 3 мегабайт.
О да, давайте еще в рендере воздавать кучу новый объектов.
Не в оперативке дело, а в сборщике мусора, которому и так работы хватает)
 
Во первых это не рендер, во вторых думаю пару тысяч бит для гк удалить не составит труда. В общем это не важно, все равно очень мало времени уйдет на то чтобы удалить несколько бит. А даже если не удалит, ничего страшного не случится.
 
476
9
39
Сборщик мусора тоже потребляет ресурсы и каждый сбор мусора вот такого просаживает тики. Особенно, если в рендер(1.8Gb при рендере мира) и когда происходит сборка фпс падает до 35 с нормальных 60.
 
Сверху