2016-12-11 9 views
0

У меня есть что-то вродеблока ограничивающего бокса

private AxisAlignedBB boundingBox = new AxisAlignedBB(-0.34D, 0D, -0.34D, 1.34D, 3.24D, 1.34D); 

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

@Override 
public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos) 
{ 
    return boundingBox.offset(pos); 
} 

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

@Override 
public boolean isOpaqueCube(IBlockState state) { 
    return false; 
} 

в классе моей плитки сущности. И когда я пытаюсь пройти через середину блока, ограничивающий столбец работает правильно, но когда я пытаюсь прыгнуть на блок, я застреваю в нем, пытаясь провалиться. Также я застреваю в том же самом блоке, если я попытаюсь войти в блок из углов или попытаться стоять на всей конструкции: я падаю до тех пор, пока не достигнет высоты 2D, а затем начнутся глюки. Уголки блока действуют так, как будто для углов не было ограничивающего прямоугольника. Возможно ли сделать блокировки блоков корректными?

The block and its bounding box.

Actual working (or partially working) area.

+0

Код ограниченной рамки Minecraft не предназначен для хитбоксов, выходящих за пределы обычных границ. Это можно сделать для столкновения, но не для выбора. Посмотрите на «BlockFence» для примера. (Я сейчас работаю над более полным ответом) – Pokechu22

ответ

0

Я бы рекомендовал использовать фиктивные блоки для этого. Когда ваш блок помещен, создайте фиктивные блоки в требуемых областях. Когда ваш блок или фиктивные блоки сломаны, сломайте всю структуру манекенов и истинных блоков.