Вращение блока лицом к игроку при его установке

Версия Minecraft
1.10.2
Не нашёл нигде в учебнике как вращать блок при его установке лицом к игроку. Все стороны по умолчанию идут по сторонам света, а мне надо чтобы по yaw блок открутился северной частью лицом к игроку, как печка например. Есть ли какой-нибудь код без велосипедов и костылей?
 
Решение
Maxik001 написал(а):
В blockstates правильно сделай.Типо так

Код:
{
    "variants": {
        "facing=east":  { "model": "realism:branchbirch", "y": 90  },
        "facing=west":   { "model": "realism:branchbirch", "y": 90 },
        "facing=south":   { "model": "realism:branchbirch", "z": 90},
        "facing=north": { "model": "realism:branchbirch"}
    }
}


У меня почему-то не видит эти блокстэйты - та же самая ошибка


Неужели я решил эту проблемку. Скопипастенный код с зарубежных форумов, который я добавил в класс блока:

Код:
@Override
    protected BlockStateContainer createBlockState() {
        return new BlockStateContainer(this, new IProperty[]{FACING});
    }


    @Override
    public IBlockState...
1,057
50
234
metadata
 
5,018
47
783
MaksimHawkins написал(а):
Maxik001 написал(а):
extends BlockHorizontal делай

Я так понял нужно поле FACING отредактировать под угол камеры игрока в методе onBlockAdded?

Да, почти. Лучше даже другой метод, а то ты игрока не сможешь корректно получить
Код:
   @Override
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemstack)
    {
        EnumFacing enumfacing = EnumFacing.fromAngle((double)player.rotationYaw);
        worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
    }
 
Maxik001 написал(а):
MaksimHawkins написал(а):
Maxik001 написал(а):
extends BlockHorizontal делай

Я так понял нужно поле FACING отредактировать под угол камеры игрока в методе onBlockAdded?

Да, почти. Лучше даже другой метод, а то ты игрока не сможешь корректно получить
Код:
   @Override
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack itemstack)
    {
        EnumFacing enumfacing = EnumFacing.fromAngle((double)player.rotationYaw);
        worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
    }

Выдало такую ошибку. Немного не понимаю о чем речь во второй половине ошибки  :s

Код:
Cannot set property PropertyDirection{name=facing, clazz=class net.minecraft.util.EnumFacing, values=[north, south, west, east]} as it does not exist in BlockStateContainer{block=seiren:cart, properties=[]}
 
5,018
47
783
В blockstates правильно сделай.Типо так

Код:
{
    "variants": {
        "facing=east":  { "model": "realism:branchbirch", "y": 90  },
        "facing=west":   { "model": "realism:branchbirch", "y": 90 },
        "facing=south":   { "model": "realism:branchbirch", "z": 90},
        "facing=north": { "model": "realism:branchbirch"}
    }
}
 
Maxik001 написал(а):
В blockstates правильно сделай.Типо так

Код:
{
    "variants": {
        "facing=east":  { "model": "realism:branchbirch", "y": 90  },
        "facing=west":   { "model": "realism:branchbirch", "y": 90 },
        "facing=south":   { "model": "realism:branchbirch", "z": 90},
        "facing=north": { "model": "realism:branchbirch"}
    }
}


У меня почему-то не видит эти блокстэйты - та же самая ошибка


Неужели я решил эту проблемку. Скопипастенный код с зарубежных форумов, который я добавил в класс блока:

Код:
@Override
    protected BlockStateContainer createBlockState() {
        return new BlockStateContainer(this, new IProperty[]{FACING});
    }


    @Override
    public IBlockState getStateFromMeta(int meta)
    {
        EnumFacing enumfacing = EnumFacing.getFront(meta);

        if (enumfacing.getAxis() == EnumFacing.Axis.Y)
        {
            enumfacing = EnumFacing.NORTH;
        }

        return this.getDefaultState().withProperty(FACING, enumfacing);
    }

    @Override
    public int getMetaFromState(IBlockState state)
    {
        return ((EnumFacing)state.getValue(FACING)).getIndex();
    }

А так же те самые блок стейты:

Код:
{
  "variants": {
    "facing=east":  { "model": "seiren:cart", "y": 90  },
    "facing=west":   { "model": "seiren:cart", "y": 270 },
    "facing=south":   { "model": "seiren:cart", "y": 180},
    "facing=north": { "model": "seiren:cart"}
  }
}

Огромное спасибо Максику, без него бы не справился!
image.png
 
Сверху