[1.7.10] Лицевая сторона - Top

372
0
Сделал для своего блока разностороннюю текстуру, мне нужно что бы top сторона блока поворачивалась как лицевая во все стороны в соответствии с игроком. 

Есть этот код, что нужно переделать что бы поворачивалась не лицевая сторона а top
Код:
       @SideOnly(Side.CLIENT)
        @Override
        public void registerBlockIcons(IIconRegister iconReg)
        {
            block = iconReg.registerIcon("modid:block");
            top = iconReg.registerIcon("modid:top");
        }
       
        @SideOnly(Side.CLIENT)
        @Override
        public IIcon getIcon(int side, int meta)
        {
            ForgeDirection dir = ForgeDirection.getOrientation(side);
            ForgeDirection block_dir;
            if (meta != 0)
                block_dir = ForgeDirection.getOrientation(meta);
            else
                block_dir = ForgeDirection.WEST;
            if (block_dir == dir) return top;
            return block;
        }
        
        @Override
        public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack itemStack) 
        {
            super.onBlockPlacedBy(world, x, y, z, entity, itemStack);
            int dir = (MathHelper.floor_double((double)(entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3);
            int[] r = {2, 5, 3, 4};
            world.setBlockMetadataWithNotify(x, y, z, r[dir], 3);
        }
 
nickita45 написал(а):

Я уже все это смотрел, я не могу понять как тоже самое осуществить с top стороной блока, лицевую трогать мне не нужно
 
[1.7.2] разносторонняя текстура блока
[merge_posts_bbcode]Добавлено: 19.09.2015 16:12:46[/merge_posts_bbcode]

Код:
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister par1IconRegister)
{
    // Регистрируем путь до png-текстур для разных сторон блока
    BlockTestFront = par1IconRegister.registerIcon(TaoModMain.MODID + ":" + "blocktest_front");
    BlockTestSide = par1IconRegister.registerIcon(TaoModMain.MODID + ":" + "blocktest_side");
    BlockTestTop = par1IconRegister.registerIcon(TaoModMain.MODID + ":" + "blocktest_top");
}

// Этот метод определяет, на какую грань блока накладывать ту или иную текстуру
@SideOnly(Side.CLIENT)
@Override
public IIcon getIcon(int par1int, int par2int)
{
        return par1int == 1 ? BlockTestTop : (par1int == 0 ? BlockTestTop : (par2int == 2 && par1int == 2 ? BlockTestFront : (par2int == 3 && par1int == 5 ? BlockTestFront : (par2int == 0 && par1int == 3 ? BlockTestFront : (par2int == 1 && par1int == 4 ? BlockTestFront : BlockTestSide)))));
}

// Когда мы поставим блок - будет вызван этот метод
@Override
public void onBlockPlacedBy(World par1World, int par2int, int par3int, int par4int, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack)
{
    // Ниже мы определяем угол поворота игрока
    // И определяем, куда будет повернут блок
    int i = MathHelper.floor_double((double)(par5EntityLivingBase.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
    par1World.setBlockMetadataWithNotify(par2int, par3int, par4int, i, 2);
}
 
Nix13Chanel написал(а):
undefined написал(а):
  1. nickita45
Я как бы это и кинул -.-
Код легче :)

Что тут за цифры?

Код:
return par1int == 1 ? BlockTestTop : (par1int == 0 ? BlockTestTop : (par2int == 2 && par1int == 2 ? BlockTestFront : (par2int == 3 && par1int == 5 ? BlockTestFront : (par2int == 0 && par1int == 3 ? BlockTestFront : (par2int == 1 && par1int == 4 ? BlockTestFront : BlockTestSide)))));
[merge_posts_bbcode]Добавлено: 19.09.2015 15:24:46[/merge_posts_bbcode]

И еще раз говорю, мне надо повернуть топ сторону блока, а как... лицевая должно остаться на WEST
 
RaDiC написал(а):
Nix13Chanel написал(а):
undefined написал(а):
  1. nickita45
Я как бы это и кинул -.-
Код легче :)

Что тут за цифры?

Код:
return par1int == 1 ? BlockTestTop : (par1int == 0 ? BlockTestTop : (par2int == 2 && par1int == 2 ? BlockTestFront : (par2int == 3 && par1int == 5 ? BlockTestFront : (par2int == 0 && par1int == 3 ? BlockTestFront : (par2int == 1 && par1int == 4 ? BlockTestFront : BlockTestSide)))));
[merge_posts_bbcode]Добавлено: 19.09.2015 15:24:46[/merge_posts_bbcode]

И еще раз говорю, мне надо повернуть топ сторону блока, а как... лицевая должно остаться на WEST
Наложение
 
Nix13Chanel написал(а):
RaDiC написал(а):
Nix13Chanel написал(а):
undefined написал(а):
  1. nickita45
Я как бы это и кинул -.-
Код легче :)

Что тут за цифры?

Код:
return par1int == 1 ? BlockTestTop : (par1int == 0 ? BlockTestTop : (par2int == 2 && par1int == 2 ? BlockTestFront : (par2int == 3 && par1int == 5 ? BlockTestFront : (par2int == 0 && par1int == 3 ? BlockTestFront : (par2int == 1 && par1int == 4 ? BlockTestFront : BlockTestSide)))));
[merge_posts_bbcode]Добавлено: 19.09.2015 15:24:46[/merge_posts_bbcode]

И еще раз говорю, мне надо повернуть топ сторону блока, а как... лицевая должно остаться на WEST
Наложение

Подробней можно?
 
RaDiC написал(а):
Подробней можно?
Ну смотри, сколько сторон у куба? 6 сторон. В том страшном коде фигурируют числа от 0 до 5. А теперь загляни вот сюда и сделай свой код определения стороны.
 
TaoGunner написал(а):
RaDiC написал(а):
Подробней можно?
Ну смотри, сколько сторон у куба? 6 сторон. В том страшном коде фигурируют числа от 0 до 5. А теперь загляни вот сюда и сделай свой код определения стороны.

Я таки не могу понять как крутить топ, я дурак, можно на моем языке?
 
Код:
par1World.setBlockMetadataWithNotify(par2int, par3int, par4int, i, 2);

Измени 2 в конце на 1
 
Тогда не знаю
[merge_posts_bbcode]Добавлено: 19.09.2015 18:55:31[/merge_posts_bbcode]

По гугли
 
Да ты иди отсюда, не можешь даже загуглить или нажать кнопку поиск.
 
Так как все таки крутить эту фигню, пож))
[merge_posts_bbcode]Добавлено: 19.09.2015 18:59:12[/merge_posts_bbcode]

А может сделать 4 текстуры с разным направлением и накладывать в зависимости от направления?
 
Назад
Сверху