Модель двери и коллизия.

Версия Minecraft
1.7.10
API
Forge
17
1
3
Всем доброго времени суток, столкнулся с проблемой. Нужно создать дверь с 3D моделью. Я создал дверь, прикрепил к ней модель, и унаследовался от BlockDoor, но столкнулся с проблемой, данный тип один блок в высоту, а мне нужно, чтобы он был в высоту 2 блока, и игрок мог взаимодействовать точно так же, как и с обычной дверью, как в майне
Попробовал уже очень много способов. Пытался добавить коллизию, ничего не получается.

BlockObj:
public class BlockObj extends BlockDoor implements ITileEntityProvider {
    public BlockObj() {
        super(Material.circuits);
        setCreativeTab(CreativeTabs.tabBlock);
        setHardness(0.25F);
        setStepSound(soundTypeMetal);
        //this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F);
        setBlockTextureName("iron_block");
        setBlockName(ModBlockObj.MODID + ".block_obj");
    }

    @Override
    public TileEntity createNewTileEntity(World world, int metadata) {
        return new TileEntityObj();
    }

    public int getRenderType() {
        return -1;
    }

    public boolean isOpaqueCube() {
        return false;
    }

    @Override
    public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
        ItemStack heldItem = player.getHeldItem();

        if (heldItem != null && heldItem.getItem() == Item.getItemFromBlock(Blocks.stone)) {
            this.setBlockBounds(0.0F, 0.0F, 0.0F, 0F, 0F, 0F);
            return super.onBlockActivated(worldIn, x, y, z, player, side, hitX, hitY, hitZ);
        }

        return false;
    }
    @Override
    public void setBlockBoundsForItemRender() {
        super.setBlockBoundsForItemRender();
    }
}

TileEntity:
public class TileEntityObj extends TileEntity {

    public TileEntityObj() {   
    }

}
 

jopi

Попрошайка
1,421
31
260
@Higirayn почитай исходники BlockDoor
При установке двери устанавливается 2 блока, нижняя часть и верхняя из-за ограничений самого майна, обе части имеют разную метадату
в твоем случае рендерить модель нужно будет либо по частям, либо 1 раз на базе нижней части двери, проверив метадату

Однако почему код не работает - для меня остается загадкой, методов установки блока в BlockDoor я не нашел кроме onNeighboursChange, но он не завязан на прямой установке блока вроде как, поэтому вообще хз
Как вариант попробуй свой предмет двери переопределить в клиент методе блока getItem(), может сработает
Java:
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z) {
    return MyItems.myDoorItemObject;
}
 
17
1
3
Попытался переопределить, столкнулся с проблемой, мой блок не регистрируется как Item, а регистрируется сразу как обычный майн блок.Удивился тому, что даже деревянная дверь создана как Item. Поэтому вернуть дверь айтемом я не смог,но попробовал вернуть хотя бы деревянную дверь, как итог, эффекта не дало.
 
Сверху