Maxik001 написал(а):оверрайд не забыл?
@SubscribeEvent
public void itemTooltipEvent(ItemTooltipEvent event) {
if (event.itemStack != null && event.itemStack.getItem() != null) {
if(event.itemStack.getItem() == Items.apple)
event.toolTip.add(ChatFormatting.DARK_GRAY.toString() + ChatFormatting.ITALIC.toString() + "Холо одобряет");
if(event.itemStack.getItem() == Items.stick)
event.toolTip.add(ChatFormatting.DARK_GRAY.toString() + ChatFormatting.ITALIC.toString() + "Для выбивания дури");
}
}
Нет, всё что нужно как предмету (блок в инвентаре отличается от блока в мире) - типа на подобии шерсти: метадата, разные имена в зависимости от метадаты, методы которых нет в блоке и т.п.MJaroslav написал(а):А? ItemBlock чисто для tooltip'а?
Даже, блин, не знаю, почему не работает!mastin.91 написал(а):> Блоку
> Код от итема
> Не работает
public class ItemBlockMyCoolBlock extends ItemBlock {
public ItemBlockMyCoolBlock(Block block) {
super(block);
// Всяко-разные set'ы и прочее
}
@Override // Не забыл -_- хотя он, в принципе, не обязателен
public void addInformation(ItemStack is, EntityPlayer player, List list, boolean show) {
list.add(StatCollector.translateToLocal("txt1.my_block.name"));
}
// Другие методы
}
GameRegistry.registerBlock(MyMod.mySuperBlock, ItemBlockMyCoolBlock.class, "MySuperBlock");
AlexSocol написал(а):Код:@SideOnly(Side.CLIENT) @Override public void addInformation(ItemStack is, EntityPlayer player, List list, boolean show)
timaxa007 написал(а):Нет, всё что нужно как предмету (блок в инвентаре отличается от блока в мире) - типа на подобии шерсти: метадата, разные имена в зависимости от метадаты, методы которых нет в блоке и т.п.MJaroslav написал(а):А? ItemBlock чисто для tooltip'а?
mastin.91 написал(а):Попробовал все вышеперечисленные способы, не получилось. А с ItemBlock'ом в классе блока появляются ошибки, будто ему не знакомы:
super(Material.rock);
this.setBlockName("my_block");
this.setCreativeTab(CreativeTabs.tabBlock);
this.setHardness(1F);
this.setHarvestLevel("pickaxe", 0);
this.setLightLevel(15F);
this.setBlockTextureName("ext:my_block");
Doc написал(а):mastin.91 написал(а):Попробовал все вышеперечисленные способы, не получилось. А с ItemBlock'ом в классе блока появляются ошибки, будто ему не знакомы:
super(Material.rock);
this.setBlockName("my_block");
this.setCreativeTab(CreativeTabs.tabBlock);
this.setHardness(1F);
this.setHarvestLevel("pickaxe", 0);
this.setLightLevel(15F);
this.setBlockTextureName("ext:my_block");
Тебе готовый пример дали, а ты фигню пишешь.
timaxa007 написал(а):Не нужно в класе блока, унаследовать от ItemBlock'а. Нужно два класса: один класс унаследован от Block, второй от ItemBlock.
mastin.91 написал(а):А по-подробнее можно?
public static Block myBlock;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
myBlock = new MyBlock();
GameRegistry.registerBlock(myBlock, MyItemBlock.class, "myblock");
}
public class MyBlock extends Block {
public MyBlock() {
super(Material.wood);
}
}
public class MyItemBlock extends ItemBlock {
public MyItemBlock(Block block) {
super(block);
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean isAdv) {
list.add("Bla-bla-bla...");
}
}
timaxa007 написал(а):mastin.91 написал(а):А по-подробнее можно?Код:public static Block myBlock; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { myBlock = new MyBlock(); GameRegistry.registerBlock(myBlock, MyItemBlock.class, "myblock"); }
Код:public class MyBlock extends Block { public MyBlock() { super(Material.wood); } }
Код:public class MyItemBlock extends ItemBlock { public MyItemBlock(Block block) { super(block); } @SideOnly(Side.CLIENT) @Override public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean isAdv) { list.add("Bla-bla-bla..."); } }
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
Всё равно просит удалить (block) из скобок и [font=Monaco, Consolas, Courier, monospace]@Override [/font]timaxa007 написал(а):Код:import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack;
timaxa007 написал(а):Я понятия не имею, что ты пишешь там, по-этому не знаю что ответить.
timaxa007 написал(а):Возможно значит, что у тебя какие-то проблемы твоего ItemBlock'а.