AxisAlignedBB значения

Версия Minecraft
1.9.4
667
7
2
За что отвечают значения бокса?
Код:
protected static final AxisAlignedBB X_AXIS_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.125D, 1.0D, 1.0D, 0.875D);
 

timaxa007

Модератор
5,831
409
672
0.0D, 0.0D, 0.125D - Координаты X, Y, Z в наименьшую сторону для точки А,
1.0D, 1.0D, 0.875D - Координаты X, Y, Z в наибольшую сторону для точки Б,
И как-бы рисуется бокс. Не знаю как точнее ответить.
 
7,099
324
1,510
А что, если эти точки местами поменять? aabb будет охватывать весь мир, кроме области между этими точками?
 

timaxa007

Модератор
5,831
409
672
Если для setBlockBounds, то бокс будет наизнанку.
Если для worldObj.getEntitiesWithinAABB(Entity.class, aabb), то просто работать не сможет.
В остальных случаях не знаю.
AxisAlignedBB - хранить 6 переменных = 3 координаты по 2, а так-же в этом классе есть различные методы для работы с этими переменами.
 
7,099
324
1,510
Спасибо, прикольный эффект, а на коллизии никак не отражается?
 
667
7
2
А можно как нибудь изменять "в реальном времени"? Ибо каждый раз перезагружать не очень удобно.
 
667
7
2
Не, я имею виду через IDEA изменять значения без перезагрузки Minecraft'a, использовал дебаг, но что бы значение изменилось нужно перезагрузить.
 
164
1
4
virysD написал(а):
Не, я имею виду через IDEA изменять значения без перезагрузки Minecraft'a, использовал дебаг, но что бы значение изменилось нужно перезагрузить.

Либо когда изменил значение нажми Ctrl+F9, либо ставь DCEVM.
 
101
3
0.0D, 0.0D, 0.125D - Координаты X, Y, Z в наименьшую сторону для точки А,
1.0D, 1.0D, 0.875D - Координаты X, Y, Z в наибольшую сторону для точки Б,
И как-бы рисуется бокс. Не знаю как точнее ответить.
Можешь более подробно рассказать, как рассчитывать эти значения? Ни как не вдуплю, каждый раз такая морока подбирать экспериментально...
Например для этой модели:
1548004161845.png
 

timaxa007

Модератор
5,831
409
672
@ipv2007, у тебя модель больше чем один блок размером. Если это для блока будешь использовать AxisAlignedBB, то тут типа нужно будет использовать фантомные блоки. Если не для блока, то не понятно где у тебя центр и высота какая, но примерно:
Java:
new AxisAlignedBB(-3.0D, 0.0D, -3.0D, 4.0D, 3.0D, 4.0D);
 

timaxa007

Модератор
5,831
409
672
Можешь более подробно рассказать, как рассчитывать эти значения?
Подробно не особо, ещё бы понять откуда у тебя центр, но предположим у тебя центр у тебя:
Java:
new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
У тебя он 7x7x3, то 7 делим на 2 получаем 3.5 значение, то у нас будет выглядеть примерно так:
Java:
new AxisAlignedBB(-3.5D, 0D, -3.5D, 3.5D, 3D, 3.5D);
Но скорее всего тебе нужно чтобы 4 блок был типа центральным блоком, то у нас область будет выглядеть:
Java:
new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
То нужно 3 в разные стороны, а та-же 3 высоту:
Java:
new AxisAlignedBB(0D - 3D, 0.0D, 0D - 3D, 1D + 3D, 3D, 1D + 3D);
т.е.:
Java:
new AxisAlignedBB(-3D, 0.0D, -3D, 4D, 3D, 4D);
или даже можно, 7 - 1 = 6:
Java:
new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 3.0D, 1.0D).expand(6D, 0D, 6D);
или как-то так.
 
Сверху