Установка физической модели относительно графической

Версия Minecraft
1.12
192
2
9
Ребят, задолбался с этим блоком уже :D
Сначала не знал, как подключать .json модель из CubicStudio, научился
Потом не знал, как эту модель(блок) заставить поворачиваться относительно игрока, научился
Теперь учусь делать физическую модель, по которой можно будет ходить и тут снова проблема)

Использую код 
Код:
   protected static final AxisAlignedBB ARK = new AxisAlignedBB(0.5D, 0.0D, 1.0D, 1.0D, 1.0D, 0.0D);

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

В итоге, когда справа ставишь блок, графическая и физическая модель совмещаются верно
Но когда ставишь слева, то физическая модель всё так же остается по правой стороне
Что делать? Что не так?

[attachment=389]
[attachment=390]
 

Вложения

  • Снимок0001.jpg
    Снимок0001.jpg
    240.8 KB · Просмотры: 27
  • Снимок0002.jpg
    Снимок0002.jpg
    235.2 KB · Просмотры: 20
Решение
Pycckuu_gap написал(а):
Размер то не меняется, меняется форма. То есть создавать проверку на положение блока в мире и задавать ему свою форму?
Да


Подобным образом:
Код:
protected static final AxisAlignedBB STANDING_AABB = new AxisAlignedBB(0.4000000059604645D, 0.0D, 0.4000000059604645D, 0.6000000238418579D, 0.6000000238418579D, 0.6000000238418579D);
    protected static final AxisAlignedBB TORCH_NORTH_AABB = new AxisAlignedBB(0.3499999940395355D, 0.20000000298023224D, 0.699999988079071D, 0.6499999761581421D, 0.800000011920929D, 1.0D);
    protected static final AxisAlignedBB TORCH_SOUTH_AABB = new AxisAlignedBB(0.3499999940395355D, 0.20000000298023224D, 0.0D, 0.6499999761581421D, 0.800000011920929D, 0.30000001192092896D);
    protected static final...
Pycckuu_gap написал(а):
Ребят, задолбался с этим блоком уже :D
Сначала не знал, как подключать .json модель из CubicStudio, научился
Потом не знал, как эту модель(блок) заставить поворачиваться относительно игрока, научился
Теперь учусь делать физическую модель, по которой можно будет ходить и тут снова проблема)

Использую код 
Код:
   protected static final AxisAlignedBB ARK = new AxisAlignedBB(0.5D, 0.0D, 1.0D, 1.0D, 1.0D, 0.0D);

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

В итоге, когда справа ставишь блок, графическая и физическая модель совмещаются верно
Но когда ставишь слева, то физическая модель всё так же остается по правой стороне
Что делать? Что не так?
Ну так надо менять размер с зависимостью от поворота.
 
Просто работаю впервые с физ. модельками и вообще не понимаю пока ничего в этом плане. Если есть какие-то темки, которые помогут освоить, буду рад)


MaximPixel написал(а):
Ну так надо менять размер с зависимостью от поворота.

Размер то не меняется, меняется форма. То есть создавать проверку на положение блока в мире и задавать ему свою форму?
 
Pycckuu_gap написал(а):
Размер то не меняется, меняется форма. То есть создавать проверку на положение блока в мире и задавать ему свою форму?
Да


Подобным образом:
Код:
protected static final AxisAlignedBB STANDING_AABB = new AxisAlignedBB(0.4000000059604645D, 0.0D, 0.4000000059604645D, 0.6000000238418579D, 0.6000000238418579D, 0.6000000238418579D);
    protected static final AxisAlignedBB TORCH_NORTH_AABB = new AxisAlignedBB(0.3499999940395355D, 0.20000000298023224D, 0.699999988079071D, 0.6499999761581421D, 0.800000011920929D, 1.0D);
    protected static final AxisAlignedBB TORCH_SOUTH_AABB = new AxisAlignedBB(0.3499999940395355D, 0.20000000298023224D, 0.0D, 0.6499999761581421D, 0.800000011920929D, 0.30000001192092896D);
    protected static final AxisAlignedBB TORCH_WEST_AABB = new AxisAlignedBB(0.699999988079071D, 0.20000000298023224D, 0.3499999940395355D, 1.0D, 0.800000011920929D, 0.6499999761581421D);
    protected static final AxisAlignedBB TORCH_EAST_AABB = new AxisAlignedBB(0.0D, 0.20000000298023224D, 0.3499999940395355D, 0.30000001192092896D, 0.800000011920929D, 0.6499999761581421D);

    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
    {
        switch ((EnumFacing)state.getValue(FACING)) // FACING  - параметр блока в классе
        {
            case EAST:
                return TORCH_EAST_AABB;
            case WEST:
                return TORCH_WEST_AABB;
            case SOUTH:
                return TORCH_SOUTH_AABB;
            case NORTH:
                return TORCH_NORTH_AABB;
            default:
                return STANDING_AABB;
        }
    }
 
MaximPixel написал(а):


Подобным образом:
Код:
protected static final AxisAlignedBB STANDING_AABB = new AxisAlignedBB(0.4000000059604645D, 0.0D, 0.4000000059604645D, 0.6000000238418579D, 0.6000000238418579D, 0.6000000238418579D);
    protected static final AxisAlignedBB TORCH_NORTH_AABB = new AxisAlignedBB(0.3499999940395355D, 0.20000000298023224D, 0.699999988079071D, 0.6499999761581421D, 0.800000011920929D, 1.0D);
    protected static final AxisAlignedBB TORCH_SOUTH_AABB = new AxisAlignedBB(0.3499999940395355D, 0.20000000298023224D, 0.0D, 0.6499999761581421D, 0.800000011920929D, 0.30000001192092896D);
    protected static final AxisAlignedBB TORCH_WEST_AABB = new AxisAlignedBB(0.699999988079071D, 0.20000000298023224D, 0.3499999940395355D, 1.0D, 0.800000011920929D, 0.6499999761581421D);
    protected static final AxisAlignedBB TORCH_EAST_AABB = new AxisAlignedBB(0.0D, 0.20000000298023224D, 0.3499999940395355D, 0.30000001192092896D, 0.800000011920929D, 0.6499999761581421D);

    public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
    {
        switch ((EnumFacing)state.getValue(FACING)) // FACING  - параметр блока в классе
        {
            case EAST:
                return TORCH_EAST_AABB;
            case WEST:
                return TORCH_WEST_AABB;
            case SOUTH:
                return TORCH_SOUTH_AABB;
            case NORTH:
                return TORCH_NORTH_AABB;
            default:
                return STANDING_AABB;
        }
    }




От души, друг)
 
Ат души душевно в душу
 
Назад
Сверху