Понедельник, 04.08.2025Приветствую Вас, Гость! | RSS

Свойства блоков

Дроп

Предмет для дропа устанавливается методом getItemDropped(), количество - quantityDropped.


public Item getItemDropped(int i1, Random random, int i2) {

    return Items.apple;

}

 

public int quantityDropped(Random random) {

    return 2;

}


Многотекстурный блок

Для использования нескольких текстур применяются методы registerIcons() и getIcon().


@SideOnly(Side.CLIENT)

private IIcon top;

private IIcon front;

...

    @SideOnly(Side.CLIENT)
    public void registerBlockIcons(IIconRegister IIcon)
    {    
        this.blockIcon = IIcon.registerIcon(Strings.MODID + ":" + "tut_block_side");
        this.front = IIcon.registerIcon(Strings.MODID + ":" + "tut_block_front");
        this.top = IIcon.registerIcon(Strings.MODID + ":" + "tut_block_top");

     }

    @SideOnly(Side.CLIENT)
    public IIcon getIcon(int side, int meta) {
        if (side == 1 || side == 0) {
            return top;
        } else if (side == 3) {
            return front;
        } else {
            return blockIcon;
        }
    }


Светимость блока


Фиксированный уровень освещения:

this.setLightLevel(0.5F);


Прозрачность блока


    public boolean func_149730_j()
    {
        return this.opaque;
    }

    public int getLightOpacity()
    {
        return this.lightOpacity;
    }

Вместо this.lightOpacity можно передать любое целое число.


Звуки при ходьбе


this.setStepSound(SoundType sound). Полный список вариаций можно посмотреть в классе Block.


Неломаемый блок


this.setBlockUnbreakable();


Отключение статистики для блока


this.disableStats();


Несколько блоков в одном классе


this.hasSubtypes = true;


Получение ID блока


Получить текущий числовой идентификатор любого блока можно с помощью функции Block.getIdFromBlock(Block block), которая в свою очередь использует значение функции GameData.getBlockRegistry().getIDForObject(Block block).


Получение блока по ID


Зная идентификатор блока, можно получить доступ непосредственно к его объекту, полученному с помощью функции Block.getBlockById(int id). Она возвращает значение GameData.getBlockRegistry().getObjectById(int id). В случае, если блока с таким id не существует, вернётся блок воздуха.


Получение блока по его предмету


Если предмет является наследником класса ItemBlock, то его объект блока можно получить с помощью функции Block.getBlockFromItem(Item item).


Получение блока по имени в BlockRegistry


Можно получить блок, зная его наименование в BlockRegistry с помощью функции Block.getBlockFromName(string name)