- 39
- 2
- 0
В F3 показывает всё как надо, но на деле модель и коллизия отвальные, unlock не сохраняется
meta:
//UNLOCK - если false, значит дверь заперта на ключ и её никак нельзя открыть
@Override
public int getMetaFromState(IBlockState state)
{
int i = 0;
if(state.getValue(HALF)==UPPER) {
i |= 8;
if(state.getValue(UNLOCK))
i|=4;
}
else{
if(state.getValue(OPEN))
i|=4;
i |= ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
}
return i;
}
@Override
public IBlockState getStateFromMeta(int meta)
{
return (meta & 8) > 0 ?
this.getDefaultState().withProperty(HALF, UPPER)
.withProperty(UNLOCK, (meta & 4) > 0) :
this.getDefaultState().withProperty(HALF, LOWER)
.withProperty(FACING, EnumFacing.getHorizontal(meta & 3))
.withProperty(OPEN, (meta & 4) > 0);
}
@Override
public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
{
if (state.getValue(HALF) == LOWER)
{
IBlockState iblockstate = worldIn.getBlockState(pos.up());
if (iblockstate.getBlock() == this)
{
state = state.withProperty(UNLOCK, iblockstate.getValue(UNLOCK));
}
}
else
{
IBlockState iblockstate = worldIn.getBlockState(pos.down());
if (iblockstate.getBlock() == this)
{
state = state.withProperty(OPEN, iblockstate.getValue(OPEN)).withProperty(FACING,iblockstate.getValue(FACING));
}
}
return state;
}