public static ItemStack[] getBlockDrops( final World w, final BlockPos pos ) { List<ItemStack> out = new ArrayList<>(); final IBlockState state = w.getBlockState( pos ); if( state != null ) { out = state.getBlock().getDrops( w, pos, state, 0 ); } if( out == null ) { return new ItemStack[0]; } return out.toArray( new ItemStack[out.size()] ); }
private void explodeBlock(BlockPos pos) { IBlockState state = world.getBlockState(pos); Block block = state.getBlock(); if(!world.isRemote && block.canDropFromExplosion(explosion)) { List<ItemStack> drops = block.getDrops(world, pos, state, 0); ForgeEventFactory.fireBlockHarvesting(drops, world, pos, state, 0, 1f, false, null); droppedItems.addAll(drops); } if(world instanceof WorldServer) { ((WorldServer) world).spawnParticle(EnumParticleTypes.EXPLOSION_NORMAL, true, pos.getX(), pos.getY(), pos.getZ(), 2, 0, 0, 0, 0d); ((WorldServer) world).spawnParticle(EnumParticleTypes.SMOKE_LARGE, true, pos.getX(), pos.getY(), pos.getZ(), 1, 0, 0, 0, 0d); } block.onBlockExploded(world, pos, explosion); } }
public GuiTinkerStation(World world, BlockPos pos, ContainerTinkerStation<?> container) { super(container); this.world = world; this.container = container; tinkerTabs = new GuiTinkerTabs(this, container); addModule(tinkerTabs); // add tab data if(container.hasCraftingStation) { for(Pair<BlockPos, IBlockState> pair : container.tinkerStationBlocks) { IBlockState state = pair.getRight(); BlockPos blockPos = pair.getLeft(); ItemStack stack = state.getBlock().getDrops(world, blockPos, state, 0).get(0); tinkerTabs.addTab(stack, blockPos); } } // preselect the correct tab for(int i = 0; i < tinkerTabs.tabData.size(); i++) { if(tinkerTabs.tabData.get(i).equals(pos)) { tinkerTabs.tabs.selected = i; } } }
state.getBlock().getDrops(drops, world, pos, state, fortune); chance = ForgeEventFactory.fireBlockHarvesting(drops, world, pos, state, fortune, chance, false, player);
@Override public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { StartupCommon.methodCallLogger.enterMethod("BlockToolTest.getDrops", "{world}, " + pos + ", " + String.valueOf(state) + ", " + fortune); List<ItemStack> result = super.getDrops(world, pos, state, fortune); String resultString = ""; for (ItemStack itemStack : result) { resultString += String.valueOf(itemStack) + "; "; } StartupCommon.methodCallLogger.exitMethod("BlockToolTest.getDrops", String.valueOf(result)); return result; }
if(!burst.isFake()) { NonNullList<ItemStack> items = NonNullList.create(); block.getDrops(items, world, collidePos, world.getBlockState(collidePos), 0); float chance = net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, world, collidePos, state, 0, 1.0f, false, null);
public static List<ItemStack> getBlockDrops(World world, BlockPos posBlock) { IBlockState blockState = world.getBlockState(posBlock); return blockState.getBlock().getDrops(world, posBlock, blockState, 0); }
@Override public void getDrops(@Nonnull NonNullList<ItemStack> drops, @Nonnull IBlockAccess world, @Nonnull BlockPos pos, @Nonnull IBlockState state, int fortune) { NNList<ItemStack> drops2 = new NNList<>(); super.getDrops(drops2, world, pos, state, fortune); for (ItemStack drop : drops2) { PaintUtil.setSourceBlock(NullHelper.notnullM(drop, "null stack from getDrops()"), getPaintSource(state, world, pos)); } drops.addAll(drops2); }
protected NonNullList<ItemStack> getDrops(World world, IBlockState state, BlockPos pos, int fortune) { //using deprecated getDrops here just because of pam's harvestcraft, change to proper one in the future return InventoryTools.toNonNullList(state.getBlock().getDrops(world, pos, state, fortune)); }
@Override public int convertBlockDrops(World world, BlockPos blockPos, IBlockState blockState, EntityPlayer harvester, List<ItemStack> drops, boolean recursive) { if (blockState.getBlock().isLeaves(blockState, world, blockPos)) { drops.clear(); //clear previous drops to avoid possible issues NonNullList<ItemStack> dropsNonNull = NonNullList.create(); blockState.getBlock().getDrops(dropsNonNull, world, blockPos, blockState, 10); drops.addAll(dropsNonNull); } return 0; }
@Override public void onPlayerHarvestDropsWithTool(BlockEvent.HarvestDropsEvent event, @Nonnull ItemStack toolStack, @Nonnull ItemStack thisUpgradeStack) { BlockPos pos = event.getPos(); EntityPlayer player = event.getHarvester(); World world = event.getWorld(); IBlockState state = event.getState(); Block block = state.getBlock(); event.getDrops().clear(); event.getDrops().addAll(block.getDrops(world, pos, state, EnchantmentUtility.getFortuneModifier(player) + 2)); } }
@Override public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune){ Block normal = state.getValue(TYPE).getNormalVersion(); normal.getDrops(drops, world, pos, normal.getDefaultState().withProperty(BlockCrops.AGE, 7), fortune); }
private boolean harvestBlock(BlockPos current) { IBlockState state = world.getBlockState(current); Block block = state.getBlock(); NonNullList<ItemStack> stacks = NonNullList.create(); block.getDrops(stacks, world, current, state, getFortune()); if (!InventoryTools.insertItems(mainInventory, stacks, true).isEmpty()) { return false; } if (!BlockTools.breakBlockNoDrops(world, current, state)) { return false; } InventoryTools.insertOrDropItems(mainInventory, stacks, world, current); return true; }
@Override public boolean pick(World world, IBlockState state, BlockPos pos, int fortune, IItemHandler inventory) { NonNullList<ItemStack> drops = NonNullList.create(); state.getBlock().getDrops(drops, world, pos, state, fortune); if (drops.isEmpty() || !InventoryTools.canInventoryHold(inventory, drops)) { return false; } BlockTools.breakBlock(world, pos, fortune, false); InventoryTools.insertOrDropItems(inventory, drops, world, pos); return true; }
public static List<ItemStack> getBlockDrops(World world, EntityPlayer player, IBlockState state, ItemStack stack, BlockPos pos) { if (EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0 && state.getBlock().canSilkHarvest(world, pos, state, player)) { return Lists.newArrayList(new ItemStack(state.getBlock(), 1, state.getBlock().getMetaFromState(state))); } return state.getBlock().getDrops(world, pos, state, EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack)); }
private void placeInInventory(IBlockState choppedState, World world, BlockPos choppedPos, @Nullable IItemHandler inventory) { if (inventory == null) return; for (ItemStack stack : choppedState.getBlock().getDrops(world, choppedPos, world.getBlockState(choppedPos), 0)) { ItemStack remainder = ItemHandlerHelper.insertItem(inventory, stack, false); if (!remainder.isEmpty()) world.spawnEntity(new EntityItem(world, choppedPos.getX() + 0.4, choppedPos.getY() + 2, choppedPos.getZ() + 0.4, remainder)); } } }
@Override public boolean harvest(World world, BlockPos pos, IBlockState state, List<ItemStack> drops) { IBlockState up = world.getBlockState(pos.up()); if (up.getBlock() == state.getBlock()) { NonNullList<ItemStack> blockDrops = NonNullList.create(); up.getBlock().getDrops(blockDrops, world, pos.up(), up, 0); drops.addAll(blockDrops); world.destroyBlock(pos.up(), false); return true; } return false; }
@Override protected NonNullList<ItemStack> harvestBlock(World world, BlockPos pos) { Block block = blockState.getBlock(); NonNullList<ItemStack> harvest = NonNullList.create(); block.getDrops(harvest, world, pos, blockState, 0); if (harvest.size() > 1) { harvest.remove(1); //AgriCraft returns cropsticks in 0, seeds in 1 in getDrops, removing since harvesting doesn't return them. } harvest.remove(0); IBlockState oldState = world.getBlockState(pos); BlockUtil.setBlockWithBreakSound(world, pos, block.getDefaultState(), oldState); return harvest; }
private void dropConflictingBlock(World world, BlockPos pos) { if (!network.getPosition().equals(pos)) { IBlockState state = world.getBlockState(pos); NonNullList<ItemStack> drops = NonNullList.create(); state.getBlock().getDrops(drops, world, pos, state, 0); world.setBlockToAir(pos); for (ItemStack drop : drops) { InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), drop); } } }
private boolean tryBreakRailBlock(IBlockState blockState, World world, BlockPos blockPos, EntityPlayer player) { if (world.canMineBlockBody(player, blockPos) && blockState.getBlock().canHarvestBlock(world, blockPos, player)) { for (ItemStack drops : blockState.getBlock().getDrops(world, blockPos, blockState, 0)) { Block.spawnAsEntity(world, blockPos, drops); } blockState.getBlock().onBlockDestroyedByPlayer(world, blockPos, blockState); blockState.getBlock().onBlockHarvested(world, blockPos, blockState, player); blockState.getBlock().breakBlock(world, blockPos, blockState); world.setBlockToAir(blockPos); return true; } return false; }