net.minecraft.block.BlockCrops.getDrops()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(115)

本文整理了Java中net.minecraft.block.BlockCrops.getDrops()方法的一些代码示例,展示了BlockCrops.getDrops()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BlockCrops.getDrops()方法的具体详情如下:
包路径:net.minecraft.block.BlockCrops
类名称:BlockCrops
方法名:getDrops

BlockCrops.getDrops介绍

暂无

代码示例

代码示例来源:origin: TeamLapen/Vampirism

@Override
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
  return super.getDrops(world, pos, state, fortune - 1);
}

代码示例来源:origin: MatrexsVigil/harvestcraft

private static void harvestCrops(IBlockState blockState, EntityPlayer player, World world, BlockPos blockPos) {
  final BlockCrops crops = (BlockCrops) blockState.getBlock();
  final ItemStack stack = player.getHeldItemMainhand();
  final int fortune = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack);
  final List<ItemStack> drops = crops.getDrops(world, blockPos, blockState, fortune);
  // This removes exactly one seed from drops in order to make this more fair compared to vanilla
  // as one seed stays planted.
  final Item seedItem = crops.getItemDropped(blockState, world.rand, fortune);
  if(seedItem != null)
    for(Iterator<ItemStack> iterator = drops.iterator(); iterator.hasNext();) {
      final ItemStack drop = iterator.next();
      // Remove a seed, then break.
      if(!(drop.getItem() == seedItem) || crops instanceof BlockCarrot || crops instanceof BlockPotato) {
        iterator.remove();
        break;
      }
    }
  ForgeEventFactory.fireBlockHarvesting(drops, world, blockPos, blockState, fortune, 1f, false, player);
  // Reset growth level
  world.setBlockState(blockPos, crops.withAge(0));
  for(ItemStack drop : drops) {
    dropItem(drop, world, blockPos);
  }
  
}

相关文章