public static void tryToSetLastRecipe(EntityPlayer player, IItemHandlerModifiable inv, List<ItemStack> lastRecipe) { if(lastRecipe == null || lastRecipe.isEmpty() || player.world.isRemote) return; int index = 0; boolean didAny = false; for(ItemStack stack : lastRecipe) { if(stack.isEmpty()) continue; for(int i = 0; i < player.inventory.getSizeInventory(); i++) { ItemStack pstack = player.inventory.getStackInSlot(i); if(!pstack.isEmpty() && pstack.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(stack, pstack)) { inv.setStackInSlot(index, pstack.splitStack(1)); didAny = true; index++; break; } } } if(didAny) { player.world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_GENERIC_SPLASH, SoundCategory.BLOCKS, 0.1F, 10F); EntityPlayerMP mp = (EntityPlayerMP) player; mp.inventoryContainer.detectAndSendChanges(); } }
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing s, float xs, float ys, float zs) { ItemStack stack = player.getHeldItem(hand); if(!stack.isEmpty() && stack.getItem() == ModItems.manaResource && stack.getItemDamage() < 3) { if(!world.isRemote) { ItemStack target = stack.splitStack(1); EntityItem item = new EntityItem(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, target); item.setPickupDelay(40); item.motionX = item.motionY = item.motionZ = 0; world.spawnEntity(item); } return true; } return false; }
ItemStack toSpawn = player != null && player.capabilities.isCreativeMode ? stack.copy().splitStack(1) : stack.splitStack(1); EntityItem item = new EntityItem(world, getPos().getX() + 0.5, getPos().getY() + 1, getPos().getZ() + 0.5, toSpawn); item.setPickupDelay(40);
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing s, float xs, float ys, float zs) { TileAvatar avatar = (TileAvatar) world.getTileEntity(pos); ItemStack stackOnAvatar = avatar.getItemHandler().getStackInSlot(0); ItemStack stackOnPlayer = player.getHeldItem(hand); if(!stackOnAvatar.isEmpty()) { avatar.getItemHandler().setStackInSlot(0, ItemStack.EMPTY); ItemHandlerHelper.giveItemToPlayer(player, stackOnAvatar); return true; } else if(!stackOnPlayer.isEmpty() && stackOnPlayer.getItem() instanceof IAvatarWieldable) { avatar.getItemHandler().setStackInSlot(0, stackOnPlayer.splitStack(1)); return true; } return false; }
getItemHandler().setStackInSlot(index, ItemStack.EMPTY); } else if(!stack.isEmpty()) { ItemStack copy = stack.splitStack(1);
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing s, float xs, float ys, float zs) { TileSparkChanger changer = (TileSparkChanger) world.getTileEntity(pos); ItemStack pstack = player.getHeldItem(hand); ItemStack cstack = changer.getItemHandler().getStackInSlot(0); if(!cstack.isEmpty()) { changer.getItemHandler().setStackInSlot(0, ItemStack.EMPTY); world.updateComparatorOutputLevel(pos, this); changer.markDirty(); ItemHandlerHelper.giveItemToPlayer(player, cstack); return true; } else if(!pstack.isEmpty() && pstack.getItem() == ModItems.sparkUpgrade) { changer.getItemHandler().setStackInSlot(0, pstack.splitStack(1)); world.updateComparatorOutputLevel(pos, this); changer.markDirty(); return true; } return false; }
@Nonnull @Override public ItemStack dispenseStack(IBlockSource source, ItemStack stack) { World world = source.getWorld(); EnumFacing enumfacing = world.getBlockState(source.getBlockPos()).getValue(BlockDispenser.FACING); double d0 = source.getX() + enumfacing.getXOffset() * 1.125F; double d1 = source.getY() + enumfacing.getYOffset() * 1.125F; double d2 = source.getZ() + enumfacing.getZOffset() * 1.125F; BlockPos pos = source.getBlockPos().offset(enumfacing); IBlockState state = world.getBlockState(pos); double d3; if(BlockRailBase.isRailBlock(state)) d3 = 0.0D; else { if(state.getMaterial() != Material.AIR || !BlockRailBase.isRailBlock(world.getBlockState(pos.down()))) return super.dispenseStack(source, stack); d3 = -1.0D; } EntityMinecart entityminecart = new EntityPoolMinecart(world, d0, d1 + d3, d2); if(stack.hasDisplayName()) entityminecart.setCustomNameTag(stack.getDisplayName()); world.spawnEntity(entityminecart); stack.splitStack(1); return stack; }
@Nonnull @Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { ItemStack slotStack = stack.splitStack(getSlotLimit(slot)); if (!simulate) { setInventorySlotContents(slot, slotStack); } return stack; }
ItemHandlerHelper.insertItem(invToPutItemIn, stack.splitStack(amountToPutIn), false);
public @Nonnull ItemStack decrStackSize(int index, int amount) { if (index < 0 || index >= items.size()) { return Prep.getEmpty(); } oreIds.set(index, null); return items.get(index).splitStack(amount); }
@Override public ItemStack decrStackSize(int slotId, int count) { ItemStack itemStack = contents.get(slotId); if (itemStack.isEmpty()) { return ItemStack.EMPTY; } return itemStack.splitStack(count); }
public static boolean setDartItem(ItemStack dartGun, ItemStack dartItem) { boolean hadItem = !dartItem.isEmpty(); ItemStack dartItem2 = dartItem.splitStack(MAX_CARRY_SIZE); dartGun.getOrCreateSubCompound("dart_gun").setTag("itemstack", dartItem2.serializeNBT()); return hadItem; } }
itemHandler.setStackInSlot(i, stack.splitStack(1)); world.playSound(null, pos, SoundEvents.ENTITY_GENERIC_SPLASH, SoundCategory.BLOCKS, 0.1F, 10F); return true;
@Override @SuppressWarnings("ConstantConditions") public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase target, EnumHand hand) { AnimalStats stats = EntityHelper.getStats(target); AnimalAction action = getEnumFromStack(stack).getType() != null ? AnimalAction.TREAT_SPECIAL : AnimalAction.TREAT_GENERIC; if (stats != null && stats.performAction(player.world, stack, action)) { stack.splitStack(1); return true; } else return false; }
@Override @Nonnull public ItemStack takeSeedFromSupplies(@Nonnull ItemStack seeds, @Nonnull BlockPos pos) { FarmSlots slot = mapBlockPosToSeedSlot(pos); ItemStack inv = slot.get(owner); if (Prep.isValid(inv) && (Prep.isInvalid(seeds) || ItemUtil.areStacksEqual(seeds, inv))) { if (inv.getCount() > 1 || !owner.isSlotLocked(slot)) { owner.markDirty(); return inv.splitStack(1); } } return Prep.getEmpty(); }
@Override public ItemStack decrStackSize(int amount) { if (myTile.getAugmentSlots()[getSlotIndex()] == ItemStack.EMPTY) { return ItemStack.EMPTY; } ItemStack stack = myTile.getAugmentSlots()[getSlotIndex()].splitStack(1); myTile.getAugmentSlots()[getSlotIndex()] = ItemStack.EMPTY; return stack; }
private boolean tryInsertingModule(EntityPlayer entityplayer) { for (int i = 0; i < _moduleInventory.getSizeInventory(); i++) { ItemStack item = _moduleInventory.getStackInSlot(i); if (item.isEmpty()) { _moduleInventory.setInventorySlotContents(i, entityplayer.getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).splitStack(1)); InventoryChanged(_moduleInventory); return true; } } return false; }
@Override public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { if (!world.isRemote) { EntityMob entity = getEntityFromEnum(world, getEnumFromStack(stack)); if (entity != null) { entity.setPosition(pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5); world.spawnEntity(entity); } } stack.splitStack(1); return EnumActionResult.FAIL; }
private boolean mergeOutput(@Nonnull ItemStack stack) { ItemStack oldOutput = getInventory().getSlot(OUTPUT_SLOT).get(); if (oldOutput.isEmpty()) { getInventory().getSlot(OUTPUT_SLOT).set(stack); return true; } else if (ItemUtil.areStackMergable(oldOutput, stack)) { oldOutput.grow(stack.splitStack(Math.min(oldOutput.getMaxStackSize() - oldOutput.getCount(), stack.getCount())).getCount()); getInventory().getSlot(OUTPUT_SLOT).set(oldOutput); return stack.isEmpty(); } return false; }
public void setBufferStacks(boolean bufferStacks) { if (!bufferStacks && this.bufferStacks) { for (int i = 0; i < 9; i++) { ItemStack stack = getInventory().getSlot(INPUT_SLOT + i).getCopy(); if (stack.getCount() > 1) { containerItems.add(stack.splitStack(stack.getCount() - 1)); getInventory().getSlot(INPUT_SLOT + i).set(stack); } } } this.bufferStacks = bufferStacks; }