Собственная текстура на каждую сторону блока.

101
3
Уважаемые, помогите разобраться.
Хочу сделать на каждую сторону блока собственную текстуру. Прочитал урок, сделал, все получилось!
НО! Если сделать по уроку, то на каждую сторону необходимо клепать отдельную текстуру (т.е. надо 6 файлов png).
А у меня боковые стороны имеют одинаковую текстуру. Как можно оптимизировать код, чтобы боковые стороны использовали текстуру с одинаковым именем?

Вот мой существующий код:
Код:
package ru.ipv2007.additionalcrafts;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;


public class Block008Ever extends Block {

    //Добавление своей текстуры на разные стороны
    public IIcon[] icons = new IIcon[6];
    
    protected Block008Ever() {
        super(Material.rock);

        this.setBlockName("block008");
        this.setCreativeTab(MainAdditionalCraftsMod.additionalcrafts);
        this.setHardness(10F);
        this.setResistance(10F);
        this.setHarvestLevel("pickaxe", 1);
        this.setStepSound(Block.soundTypeMetal);
        
        this.setBlockTextureName("additionalcrafts:Block008");
    }
    //продолжение кода на текстуры с разных сторон
        @Override
        public IIcon getIcon(int side, int meta) {
            return this.icons[side];
        }
        @Override
        public void registerBlockIcons(IIconRegister reg) {
            for (int i = 0; i < 6; i ++) {
                this.icons[i] = reg.registerIcon(this.textureName + "_" + i);
            }
            
        }
}
 
101
3
Agravaine написал(а):
Головой подумай.
Спасибо! Предлагаю такой ответ использовать на каждый заданный тут вопрос!

P.S. Мне казалось, что данный форум создан, как ресурс помощи и знаний. Если Вам сказать нечего, то проходите мимо.
 
101
3
Нашел вот такой код. Помогите в этот код добавить текстуры на низ и верх?

Код:
@SideOnly(Side.CLIENT)
    private IIcon blockIcon;
    private IIcon blockIcon_front;

    @SideOnly(Side.CLIENT)
    @Override
    public void registerBlockIcons(IIconRegister iconReg)
    {
        blockIcon = iconReg.registerIcon("modid:texturename");
        blockIcon_front = iconReg.registerIcon("modid:texturename_front");
    }
    @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 blockIcon_front;
        return blockIcon;
    }
    @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);
    }
 
101
3
Agravaine написал(а):
А что тебе помогать? Ты тупо копируешь код и даже не пытаешься разобраться с ним.
Я прошу помочь разобраться в "тупо скопированном коде". 
P.S. Если бы я тупо копировал, то мой код имел бы название "mybestmod", как в уроке и названия блоков бы были "MyBestBlock".

В этом разделе кода - я не могу понять что к чему и прошу помощь. В ответ же вижу лишь раздражение и не желание помочь.

Ладно, если тут отсутствует спокойный и готовый помочь человек, пойду на другие, более дружественные, форумы.
Спасибо.
 
101
3
FanKar написал(а):
Бай бай, юзверь желающий стать моддером, бай бай.
Я вполне обучаемый человек и если мне интересно - я очень хорошо усваиваю материал. Конечно, все это не без помощи, но, видимо, на этом ресурсе все слишком зазнались.
Для портфолио, кину ссылки, дабы не считали, что я "тупо копирую код"!
---[результат изучения RhinoCeros + 3DSMax]---
http://my-art2.narod.ru/risynki_9_page.html
bmw_m3_e46_pered_decal.jpg

[youtube]r8vOsE8WIyc[/youtube]
---[Мой проект Minecraft]---
http://minecraft-rus.ru

Поэтому, очень печально, что у вас на голове выросла "Корона".
 
1,087
2
Ну такое дело, прочитать 90 страничек какого нибудь учебника по джаве тебе сложно
 
1,239
2
24
МБ У НЕГО ГУМАНИТАРНЫЙ СКЛАД УМА КАК У МЕНЯ И ОН ПРИРОЖДЕН ПИЗДИТЬ КОД У ДРУГИХ!!!!!!!
 
101
3
Да, собственно, при употреблении обсценной лексики отдельных "обитателей" данного форума - все становится на свои места.
Тему можете удалить, ибо здесь флуд не относящийся к делу.
 
1,137
5
3
FanKar пусть катится, бесит адово. 
ТСу посоветую поискать тему. Есть метод getIcon, там даётся сторона, в зависимости от стороны и даёшь текстуру(одинаковую по нескольким направлениям).
 
1,087
2
Шоб не ныл:
Код:
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.util.IIcon;

import yourMod.Main;

public class MultitextureBlock extends Block {

    public IIcon[] icons = new IIcon[6];

    public MultitextureBlock(String unlocalizedName, Material material) {
        super(material);
        this.setBlockName(unlocalizedName);
        this.setBlockTextureName("modid:" + unlocalizedName);
        this.setCreativeTab(CreativeTabs.tabBlock);
        this.setHardness(2.0F);
        this.setResistance(6.0F);
    }

    @Override
    public IIcon getIcon(int side, int meta) {
        return this.icons[side];
    }

    @Override
    public void registerBlockIcons(IIconRegister reg) {
        for (int i = 0; i < 6; i++) {
            this.icons[i] = reg.registerIcon(this.textureName + "_" + i);
        }
    }
}

А в классе с регистрацией блоков:
Код:
public static Block blockMultitexture = new MultitextureBlock("нелокализированное_имя", Material.материал);

И всё, если ты так легко осваиваешься, то думаю ты поймёшь что да как в импортах итд.

[merge_posts_bbcode]Добавлено: 10.01.2016 18:02:33[/merge_posts_bbcode]

FanKar пусть катится нахуй, бесит адово. 
Ахаха, ну ты и тупой)))
 
1,137
5
3
Ты скопировал код из заголовка темы и считаешь себя богом, но зуб даю, тебе 12-13 лет и ты туп настолько, что грамотно объяснить никак. И он не виноват, что в док-ии форджа ничего не написано
 
1,087
2
Ты скопировал код из заголовка темы и считаешь себя богом, но зуб даю, тебе 12-13 лет и ты туп настолько, что грамотно объяснить никак. И он не виноват, что в док-ии форджа ничего не написано
Я на изначальный код даже не смотрел, код не мой, я просто взял его из английского туториала, тут почти готовый вариант. А вот кому и 12-13 лет так это тебе, агро маленький.
 
101
3
Этот код я видел в уроке и, если посмотреть мое первое сообщение, его использовал.
Данный код требует наличия 6 текстур на каждую сторону. Я же просил немного другое, что именно - описано в первом сообщении.
Попробую рассказать то, как я понимаю данный код. Если не прав - поправьте:
Код:
@Override
    public void registerBlockIcons(IIconRegister reg) {
        for (int i = 0; i < 6; i++) {
            this.icons[i] = reg.registerIcon(this.textureName + "_" + i);

т.е. в этом коде мы присваиваем имя и через "_" прибавляем значение "i", которое имеет вид от 0 до 6. т.е. мы получаем textureName_0, textureName_1 и так до 6. Соответственно, каждая текстура присваивается своей грани.
А как изменить код, чтобы боковые грани использовали один и тот-же файл с одним именем текстур?
т.е. Верх, Низ и 4 боковые грани (всего 3 файла текстур).
 
1,087
2
А, видимо не заметил, сейчас попробую написать то, что нужно тебе.
А так, мм, почти правильно. textureName это само название текстурки, а не просто textureName)
 
Методом подбора ищешь каждую сторону и присваиваешь текстуру, а теперь нахуй иди, заебал уже всех. Хоть баньте, это крик души!
 
Сверху