Как сделать, чтобы модель поворачивалась в зависимости от положения игрока

Версия Minecraft
1.12.2
101
3
Привет, всем!
Нарисовал модель в программе "Model Creator by MrCrayfish", добавил ее в майн (версия 1.12.2), но никак не могу разобраться, каким образом можно заставить ее поворачиваться в зависимости от положения игрока. Т.е. если я ставлю ее на землю она всегда смотрит лицом на Юг.
Может, кто-нибудь подскажет направление в решении этой проблемы?
Спасибо!
 
Последнее редактирование:
126
6
33
Поделить player.rotationYaw на 4 сектора(в коде печки можно глянуть как), в зависимости от сектора ставить блок с определённой метадатой(та же печка) потом в тайле по его кордам получить блок и его мету и по этой мете уже крутить модель(например мета от 0 до 3 на 4 стороны света и ворочять по принципу ГлРотейтФ(мета * 90F, 0, 1, 0); )
 
13
1
Ну в моём случае помогло вот это
Пишешь в класс блока вот это(Осторожно лишние строки!):
Java:
    public IBlockState withRotation(IBlockState state, Rotation rot)
    {
        return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
    }
    public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
    {
        return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
    }
    public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
    {
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
    }
    public IBlockState getStateFromMeta(int meta)
    {
        return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
    }
    public int getMetaFromState(IBlockState state)
    {
        return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
    }

    protected BlockStateContainer createBlockState()
    {
        return new BlockStateContainer(this, new IProperty[] {FACING});
    }
Рендеришь как написано в учебнике
по пути assets/MODID/blockstates создаёшь файл (имя блока).json и в него пишешь
JSON:
{
    "variants": {
        "facing=north": { "model": "MODID:(путь к моделе смотрящая на север, north)" },
        "facing=south": { "model": "MODID:(путь к моделе смотрящая на юг, south)" },
        "facing=east": { "model": "MODID:(путь к моделе смотрящая на восток, east)" },
        "facing=west": { "model": "MODID:(путь к моделе смотрящая на запад, west)" }
    }
}
и потому пути ставишь модели смотрящие в определённые стороны
и воуля:
2018-11-18_11.22.10.png
 
1,057
50
234
GL11.glRotatef(meta * 90F, 0F, 1F, 0F);
 
  • Like
Реакции: stil
Сверху