[1.9+]getBoundingBox

Статус
В этой теме нельзя размещать новые ответы.

Крокодил

Железная лига
Сообщения
618
Лучшие ответы
11
Симпатии
119
#1
Всем доброго дня:)
Подскажите, пожалуйста в чём дело: Создавал я, блок - моделька есть с текстурами тоже всё в порядке. А дальше выставил размер блока методом getBoundingBox:
Код:
    @Override
    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
        return new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.1D, 1.0D);
    }
Похожая тема уже была >клик<, но у меня немножко другая проблема.
Собственно, когда я устанавливаю MaxY на 0.5, получается нормальный полублок, но стоит установить чуть меньше и на этот блок невозможно наступить - игрок как бы становится но тут же соскальзывает, даже если прыгнуть сверху. Кстати на мобов это не действует, но если заспавнить маленького зверя вроде курицы или оцелота, то они начинают получать урон. Создаётся впечатление, что физический размер блока больше чем тот, который выдаёт игра.
P.S
Вопрос не по теме: Сам блок высотой в один пиксель, но тень от него как от обычного. Как это можно исправить?
P.P.S
Спасибо за помощь:)
[merge_posts_bbcode]Добавлено: 02.07.2016 21:31:30[/merge_posts_bbcode]

Неужели вопрос настолько тупой, что никто даже не хочет помогать?

[merge_posts_bbcode]Добавлено: 02.07.2016 21:31:52[/merge_posts_bbcode]

Нет, я правда не догоняю.

[merge_posts_bbcode]Добавлено: 02.07.2016 21:37:35[/merge_posts_bbcode]

пробовал addCollisionBoxesToList, но результат тот же...
 

AlexSocol

Золотая лига
Сообщения
1,951
Лучшие ответы
66
Симпатии
182
#2
А-эм о_О
ничего не понимаю, у меня тоже оцелота дамажит. Бред какой-то.
А на счёт света - глянь в рельсах.
 

Крокодил

Железная лига
Сообщения
618
Лучшие ответы
11
Симпатии
119
#3
AlexSocol написал(а):
А-эм о_О
ничего не понимаю, у меня тоже оцелота дамажит. Бред какой-то.
Вот и я о том же! Но ведь нажимные плиты, высотой в один пиксель, как-то работают.:ermm: Или там другой принцип?

AlexSocol написал(а):
А на счёт света - глянь в рельсах.
Спасибо, посмотрю.:D
 

wilah

Каменная лига
Сообщения
1,138
Лучшие ответы
6
Симпатии
1
#4
Код:
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_)
{
 this.func_150063_b(p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_));
}

protected void func_150063_b(int p_150063_1_)
{
 boolean flag = this.func_150060_c(p_150063_1_) > 0;
 float f = 0.0625F;

 if (flag)
 {
 this.setBlockBounds(f, 0.0F, f, 1.0F - f, 0.03125F, 1.0F - f);
 }
 else
 {
 this.setBlockBounds(f, 0.0F, f, 1.0F - f, 0.0625F, 1.0F - f);
 }
}
Нашёл вот это, может поможет
 

Ivasik

Porting GrandBombaster
Команда форума
Сообщения
2,660
Лучшие ответы
75
Симпатии
251
#6
Крокодил написал(а):
Спасибо, попробую!
Код:
    protected static final AxisAlignedBB PRESSED_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.03125D, 0.9375D);
    protected static final AxisAlignedBB UNPRESSED_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.0625D, 0.9375D);

    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
    {
        boolean flag = this.getRedstoneStrength(state) > 0;
        return flag ? PRESSED_AABB : UNPRESSED_AABB;
    }

    @Nullable
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return NULL_AABB;
    }

    /**
     * Used to determine ambient occlusion and culling when rebuilding chunks for render
     */
    public boolean isOpaqueCube(IBlockState state)
    {
        return false;
    }

    public boolean isFullCube(IBlockState state)
    {
        return false;
    }

    public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
    {
        return true;
    }
 

wilah

Каменная лига
Сообщения
1,138
Лучшие ответы
6
Симпатии
1
#7
WildHeart написал(а):
Код:
    protected static final AxisAlignedBB PRESSED_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.03125D, 0.9375D);
    protected static final AxisAlignedBB UNPRESSED_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.0625D, 0.9375D);

    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
    {
        return PRESSED_AABB : UNPRESSED_AABB;
    }

    @Nullable
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return NULL_AABB;
    }

    /**
     * Used to determine ambient occlusion and culling when rebuilding chunks for render
     */
    public boolean isOpaqueCube(IBlockState state)
    {
        return false;
    }

    public boolean isFullCube(IBlockState state)
    {
        return false;
    }

    public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
    {
        return true;
    }
Нельзя делать таких конструкций, поправь
|
|
|
\/
Код:
return PRESSED_AABB : UNPRESSED_AABB;
 

Ivasik

Porting GrandBombaster
Команда форума
Сообщения
2,660
Лучшие ответы
75
Симпатии
251
#8
wilah написал(а):
WildHeart написал(а):
Код:
    protected static final AxisAlignedBB PRESSED_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.03125D, 0.9375D);
    protected static final AxisAlignedBB UNPRESSED_AABB = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.0625D, 0.9375D);

    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
    {
        return PRESSED_AABB : UNPRESSED_AABB;
    }

    @Nullable
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return NULL_AABB;
    }

    /**
     * Used to determine ambient occlusion and culling when rebuilding chunks for render
     */
    public boolean isOpaqueCube(IBlockState state)
    {
        return false;
    }

    public boolean isFullCube(IBlockState state)
    {
        return false;
    }

    public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
    {
        return true;
    }
Нельзя делать таких конструкций, поправь
|
|
|
\/
Код:
return PRESSED_AABB : UNPRESSED_AABB;
Случайно флаг удалил, поправил.
 

Крокодил

Железная лига
Сообщения
618
Лучшие ответы
11
Симпатии
119
#9
Объясните "умному" человеку для чего нужен isOpaqueCube()?
[merge_posts_bbcode]Добавлено: 02.07.2016 23:32:17[/merge_posts_bbcode]

Ой, прошу прощения, isFullCube(). opaque я знаю.
[merge_posts_bbcode]Добавлено: 02.07.2016 23:40:14[/merge_posts_bbcode]

Никто не знает?..
 

Ivasik

Porting GrandBombaster
Команда форума
Сообщения
2,660
Лучшие ответы
75
Симпатии
251
#10
Крокодил написал(а):
Объясните "умному" человеку для чего нужен isOpaqueCube()?
[merge_posts_bbcode]Добавлено: 02.07.2016 23:32:17[/merge_posts_bbcode]

Ой, прошу прощения, isFullCube(). opaque я знаю.
[merge_posts_bbcode]Добавлено: 02.07.2016 23:40:14[/merge_posts_bbcode]

Никто не знает?..
Перевод: Полный куб. Если значение true то этот блок будет заполняться. Если значение false то он уже будет считаться кастомным блоком и не будет заполняться и следовательно мы сможем расположить внутри нашего куба тот же цветочный горшок или нажимную плиту.
[merge_posts_bbcode]Добавлено: 03.07.2016 04:34[/merge_posts_bbcode]

Тебе вот это нужно:
Код:
    @Nullable
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return NULL_AABB;
    }
В данном случае мы рамку столкновения не делаем и нас не будет откидывать назад(вверх и т.д.) когда мы стоим на блоке.
 

AlexSocol

Золотая лига
Сообщения
1,951
Лучшие ответы
66
Симпатии
182
#12
WildHeart написал(а):
Перевод: Полный куб. Если значение true то этот блок будет заполняться. Если значение false то он уже будет считаться кастомным блоком и не будет заполняться и следовательно мы сможем расположить внутри нашего куба тот же цветочный горшок или нажимную плиту.
Ты где это нашёл?
[merge_posts_bbcode]Добавлено: 03.07.2016 14:57:00[/merge_posts_bbcode]

Не знаю как у тебя, а у меня нифига так не работает
 

Крокодил

Железная лига
Сообщения
618
Лучшие ответы
11
Симпатии
119
#13
AlexSocol написал(а):
Ты где это нашёл?
[merge_posts_bbcode]Добавлено: 03.07.2016 14:57:00[/merge_posts_bbcode]

Не знаю как у тебя, а у меня нифига так не работает
А я думал что у меня из за корявой модельки не работает...
 

timaxa007

Команда форума
Сообщения
5,475
Лучшие ответы
355
Симпатии
502
#14
Тему закрыть?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху