BlockState не поворачивает как надо.

Версия Minecraft
1.12
5,018
47
783
Я сделал веточки кактусу. Они должны прицеплятся к блоку с той стороны, на которую смотрит игрок
Проблема:

Код класса кактус-ветки
Код:
public class SideCactus extends BlockSide
{
public static final PropertyEnum<EnumFacing.Axis> AXIS = PropertyEnum.<EnumFacing.Axis>create("axis", EnumFacing.Axis.class);
    protected static final AxisAlignedBB[] SIDE_AABB = new AxisAlignedBB[] {new AxisAlignedBB(0.375D, 0.375D, 0.375D, 0.625D, 0.625D, 0.625D), new AxisAlignedBB(0.375D, 0.375D, 0D, 0.625D, 0.625D, 1D),
    new AxisAlignedBB(0D, 0.375D, 0.375D, 1D, 0.625D, 0.625D), new AxisAlignedBB(0D, 0.375D, 0.375D, 1D, 0.625D, 0.625D)};

    public SideCactus(String name)
    {
        super(name, Material.WOOD, SIDE_AABB);
        this.setHardness(1.2F);
        this.setCreativeTab(Realism.tabMain);
        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
    }


    @Override
    public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune)
    {
        super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune);

            worldIn.spawnEntity(new EntityItem(worldIn, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.STICK)));
     
        
    }
 
    @Override
    public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
    {
        Block block = worldIn.getBlockState(pos.up()).getBlock();
        return state;
    }

    @Override
    protected BlockStateContainer createBlockState()
    {
        return new BlockStateContainer(this, new IProperty[] {FACING});
    }
    @Override
    public IBlockState getStateFromMeta(int meta)
    {
        return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta & 3));
    }
    @Override
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
    {
        EnumFacing enumfacing = EnumFacing.fromAngle((double)placer.rotationYaw);
        int heading = MathHelper.floor((double)(placer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

        if(heading == 0){
        worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing.rotateY()), 2);
        System.out.println(enumfacing);
        }
        worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
    //    System.out.println(enumfacing);
    } 

    @Override
    public int getMetaFromState(IBlockState state)
    {
        int i = 0;
        i = i | state.getValue(FACING).getHorizontalIndex();
            i |= 8;
     


            i |= 4;
        

        return i;
    }
    
}

И блокстейт. Пробовал костылить с поворотом на 180 при соотв. стороне - не работает. Всмысле в коде работает, а модель не поворачивается
Код:
{
    "variants": {
        "facing=east":  { "model": "realism:cactusside", "y": 90  },
        "facing=west":   { "model": "realism:cactusside", "y": 90 },
        "facing=south":   { "model": "realism:cactusside", "z": 90},
        "facing=north": { "model": "realism:cactusside"}
    }
}
 
5,018
47
783
Установка это неважно. Это тест чисто. Мне нужно чтобы при генерации все правильно ставилось
 
1,200
37
237
Maxik001 написал(а):
Установка это неважно. Это тест чисто. Мне нужно чтобы при генерации все правильно ставилось

Тогда погляди, как печка устанавливается при генерации (да, такое есть). Говорю это только из-за того, что у меня дико бомбило, когда она у меня поворачивалась в другую сторону, когда я ей задавал одну. (Ну.. я потом залез и понял. что она становится лицевой частью напротив пустого места, если оно есть).

//Это, правда, было на 1.7.10, но и на твоей должно быть версии.
 
1,200
37
237
Minebot написал(а):
Ну, что бы это сделать, надо это представить. Там через запятую вторую ось можно написать. Подумай, как надо повернуть по x и y, чтобы результат был, как будто ты повернул по z

Я понял, что ничего не понял. Ты это на бумажке рисовал, чтобы найти?
 
1,200
37
237
Minebot написал(а):
Да нет. Пространственное мышление... всё такое. Главное знать где какая ось и в какую сторону

Я так Маузер около недели повернуть нормально не мог.

/Кстати, надо бы его дописать/
 
Сверху