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

Версия Minecraft
1.7.10
37
0
Здравствуйте. У меня есть своя модель блока , всё работает, всё хорошо, но мне нужно сделать так, чтобы модель обращалась лицом к игроку когда игрок ее ставит. Я полазил по форуму, посмотрел на Майнкрафт исходники, но всё никак не могу сделать. Мне бы очень помогло, если бы кто-то скинул самый простой пример (есть своя модель, когда игрок ее ставит, модель будет постоянно ставиться определенной стороной к игроку).
 
1,007
36
206
Код:
@Override
   public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack is) {          
       int l = MathHelper.floor_double((double)(entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;    
       world.setBlockMetadataWithNotify(x, y, z, l, 3);
   }
Затем в рендере меняй расположение модели в зависимости от меты
 
37
0
Затем в рендере меняй расположение модели в зависимости от меты
Я не совсем понимаю как это. Можешь объяснить поподробней как поменять расположение в зависимости от меты и как мету получить.
 
1,007
36
206
Код:
private void render(TileEntityCoffeeMachine tile, double x, double y, double z, float f) {
        int i;
           if (tile.getWorldObj() == null)
           {
                   i = 0;
           } else {
                   Block block = tile.getBlockType();
                   i = tile.getBlockMetadata();
                   if (block != null && i == 0)
                   {
                           i = tile.getBlockMetadata();
                          
                   }
                   if(i != 4){
        GL11.glPushMatrix();
        GL11.glTranslated(x + 0.5, y, z + 0.5);
        
        GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
        bindTexture(texture);
        GL11.glScalef(0.1F, 0.1F, 0.1F);
        int j = 0;                       
        if(i == 3) {
            j = 270;
        }
        if(i == 2) {
            j = 180;
        }
        if(i == 1) {
            j = 90;
        }
        if(i == 0) {
         j = 0;
        }

        GL11.glRotatef(j, 0.0F, 1.0F, 0F);
        model.render(null, 0, 0, 0, 0, 0, 0.625F);
        GL11.glPopMatrix();
        }       
        

}
}
 
1,057
50
234
Что это?
int meta = tile.getBlockMetadata();
GL11.glRotatef(meta * 90.0F, 0.0F, 1.0F, 0F); и все
 
37
0
(Что у меня в рендере)

{
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glTranslatef(0.5F, 1.5F, 0.5F);

int meta = tileentity.getBlockMetadata();
GL11.glRotatef(meta * 90F, 0.0F, 0.0F, 1.0F);
//GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); (так всё окей)

bindTexture(texture);
model.render();
GL11.glPopMatrix();
}

У меня шас происходит вакханалия, то блок ставиться неправильно, то сдвигается на 1 блок (текстура) и т.п, в чём мне надо полазить чтоб это исправить. С закомментированой строчкой и без меты всё работает (ну это блок без вращения)
 
Сверху