Свойства блоков
Дроп
Предмет для дропа устанавливается методом 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)