1. 高级物品实例
这一部分将介绍一些比较普遍的特殊物品的实现方式。
1.1. 复用现有的类
虽然这不是在说具体的实现,但这一点仍然相当重要:复用现有的类。比方说我要写一个纯粹的合成材料,像原版铁锭和钻石那样的东西。这些物品没有任何额外的行为,那这个时候你完全可以直接复用原版的 Item
类,而不必再新写一个。
event.getRegistry().register(new Item().setCreativeTab(myTab).setRegistryName("my_first_item"));
或者弄个匿名类,以获得额外的行为??
event.getRegistry().register(myItem = new Item() {
// 右击一下就会播放恶魂尖叫的音效。
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, EnumHand hand) {
world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_GHAST_SCREAM, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
}
}.setCreativeTab(myTab).setRegistryName("troll"));