@Nullable public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { if (!player.getEntityWorld().isRemote) { if (slotId == 1 && getSlot(1) != null && getSlot(1).getHasStack()) { listPid.remove(index); if (index +1>=totalPictureNum) { index--; } totalPictureNum--; if(totalPictureNum==0){ index=-1; } } } ItemStack i = super.slotClick(slotId, dragType, clickTypeIn, player); saveToNBT(player); return i; }
private void adjustPhantomSlot(Slot slot, ClickType clickType, int dragType) { if (!((IPhantomSlot) slot).canAdjust()) { return; } ItemStack stackSlot = slot.getStack().copy(); if (dragType == 1) { if (clickType == ClickType.QUICK_MOVE) { stackSlot.setCount(Math.min(stackSlot.getCount() * 2, slot.getSlotStackLimit())); // shift-r-click: double stack size } else { stackSlot.setCount(Math.min(stackSlot.getCount() + 1, slot.getSlotStackLimit())); // r-click: increase stack size } } else if (dragType == 0) { if (clickType == ClickType.QUICK_MOVE) { stackSlot.setCount(stackSlot.getCount() / 2); // shift-l-click: half stack size } else { stackSlot.shrink(1); // l-click: decrease stack size } } slot.putStack(stackSlot); }
@Override protected void keyTyped(char typedChar, int keyCode) throws IOException { if (keyCode == 1 || mc.gameSettings.keyBindInventory.isActiveAndMatches(keyCode)) { mc.player.closeScreen(); } //this.checkHotbarKeys(keyCode); if (theSlot != null && theSlot.getHasStack()) { if (mc.gameSettings.keyBindPickBlock.isActiveAndMatches(keyCode)) { handleMouseClick(theSlot, theSlot.slotNumber, 0, ClickType.CLONE); } else if (mc.gameSettings.keyBindDrop.isActiveAndMatches(keyCode)) { handleMouseClick(theSlot, theSlot.slotNumber, isCtrlKeyDown() && !(theSlot instanceof SlotDankNull) ? 1 : 0, ClickType.THROW); } } }
@Nullable public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { if(inventorySlots.get(slotId) != null) { if(!inventorySlots.get(slotId).getStack().isEmpty()) { if(!player.world.isRemote) { InventoryHelper.spawnItemStack(player.world, inventory.getPos().getX() + 0.5D, inventory.getPos().getY() + 1D, inventory.getPos().getZ() + 0.5D, inventorySlots.get(slotId).getStack()); } player.world.playSound(null, inventory.getPos().getX() + 0.5D, inventory.getPos().getY() + 1D, inventory.getPos().getZ() + 0.5D, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((player.world.rand.nextFloat() - player.world.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); inventorySlots.get(slotId).putStack(ItemStack.EMPTY); inventory.setInventorySlotContents(slotId, ItemStack.EMPTY); inventory.markDirty(); } } return super.slotClick(slotId, dragType, clickTypeIn, player); }
private void eatFood() { for(int slot = 44; slot >= 9; slot--) { ItemStack stack = Wrapper.getPlayer().inventoryContainer.getSlot(slot).getStack(); if(stack != null) { if(slot >= 36 && slot <= 44) { if(stack.getItem() instanceof ItemFood && !(stack.getItem() instanceof ItemAppleGold)) { Wrapper.getPlayer().inventory.currentItem = slot - 36; Wrapper.getMinecraft().gameSettings.keyBindUseItem.pressed = true; return; } } else if(stack.getItem() instanceof ItemFood && !(stack.getItem() instanceof ItemAppleGold)) { int itemSlot = slot; int currentSlot = Wrapper.getPlayer().inventory.currentItem + 36; Wrapper.getMinecraft().playerController.windowClick(0, slot, 0, ClickType.PICKUP, Wrapper.getPlayer()); Wrapper.getMinecraft().playerController.windowClick(0, currentSlot, 0, ClickType.PICKUP, Wrapper.getPlayer()); Wrapper.getMinecraft().playerController.windowClick(0, slot, 0, ClickType.PICKUP, Wrapper.getPlayer()); return; } } } }
/** * Fired when a key is typed (except F11 which toggles full screen). This is the equivalent of * KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) */ protected void keyTyped(char typedChar, int keyCode) throws IOException { if (keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) { this.mc.player.closeScreen(); } this.checkHotbarKeys(keyCode); if (this.theSlot != null && this.theSlot.getHasStack()) { if (keyCode == this.mc.gameSettings.keyBindPickBlock.getKeyCode()) { this.handleMouseClick(this.theSlot, this.theSlot.slotNumber, 0, ClickType.CLONE); } else if (keyCode == this.mc.gameSettings.keyBindDrop.getKeyCode()) { this.handleMouseClick(this.theSlot, this.theSlot.slotNumber, isCtrlKeyDown() ? 1 : 0, ClickType.THROW); } } }
/** * Checks whether a hotbar key (to swap the hovered item with an item in the hotbar) has been pressed. If so, it * swaps the given items. * Returns true if a hotbar key was pressed. */ protected boolean checkHotbarKeys(int keyCode) { if (this.mc.player.inventory.getItemStack().func_190926_b() && this.theSlot != null) { for (int i = 0; i < 9; ++i) { if (keyCode == this.mc.gameSettings.keyBindsHotbar[i].getKeyCode()) { this.handleMouseClick(this.theSlot, this.theSlot.slotNumber, i, ClickType.SWAP); return true; } } } return false; }
/** * Fired when a key is typed (except F11 which toggles full screen). This is the equivalent of * KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) */ protected void keyTyped(char typedChar, int keyCode) throws IOException { if (keyCode == 1 || this.mc.gameSettings.keyBindInventory.isActiveAndMatches(keyCode)) { this.mc.thePlayer.closeScreen(); } this.checkHotbarKeys(keyCode); if (this.theSlot != null && this.theSlot.getHasStack()) { if (this.mc.gameSettings.keyBindPickBlock.isActiveAndMatches(keyCode)) { this.handleMouseClick(this.theSlot, this.theSlot.slotNumber, 0, ClickType.CLONE); } else if (this.mc.gameSettings.keyBindDrop.isActiveAndMatches(keyCode)) { this.handleMouseClick(this.theSlot, this.theSlot.slotNumber, isCtrlKeyDown() ? 1 : 0, ClickType.THROW); } } }
/** * Checks whether a hotbar key (to swap the hovered item with an item in the hotbar) has been pressed. If so, it * swaps the given items. * Returns true if a hotbar key was pressed. */ protected boolean checkHotbarKeys(int keyCode) { if (this.mc.thePlayer.inventory.getItemStack() == null && this.theSlot != null) { for (int i = 0; i < 9; ++i) { if (this.mc.gameSettings.keyBindsHotbar[i].isActiveAndMatches(keyCode)) { this.handleMouseClick(this.theSlot, this.theSlot.slotNumber, i, ClickType.SWAP); return true; } } } return false; }
@Override public ItemStack slotClick(int id, int clickedButton, ClickType clickType, EntityPlayer player) { Slot slot = id >= 0 ? getSlot(id) : null; if(slot !=null){ if(slot instanceof SlotGhost){ if(ItemStackTools.isValid(slot.getStack())){ slot.putStack(ItemStackTools.getEmptyStack()); } else { if(ItemStackTools.isValid(player.inventory.getItemStack())){ slot.putStack(ItemUtil.copy(player.inventory.getItemStack(), 1)); } } return player.inventory.getItemStack(); } } return super.slotClick(id, clickedButton, clickType, player); }
@Override public ItemStack slotClick(int slot, int dragType, ClickType clickType, EntityPlayer player) { if (slot == 0) { ItemStack stack = inventorySlots.get(0).getStack(); if (stack != null) { Item item = stack.getItem(); if (item instanceof ICraftAchievement) { player.addStat(((ICraftAchievement) item).getAchievementOnCraft(stack, player, tile)); } else if (item instanceof ItemBlock && Block.getBlockFromItem(item) instanceof ICraftAchievement) { player.addStat(((ICraftAchievement) Block.getBlockFromItem(item)).getAchievementOnCraft(stack, player, tile)); } } if (dragType > 0) dragType = 0; } return super.slotClick(slot, dragType, clickType, player); }
@Override public void onUpdate() { if(mc.thePlayer.openContainer != null){ if(mc.thePlayer.openContainer instanceof ContainerChest){ ContainerChest chest = (ContainerChest) mc.thePlayer.openContainer; int i; for(i = 0; i<chest.numRows*9;i++){ if(mc.thePlayer.openContainer == null){ break; } Slot slot =(Slot)chest.inventorySlots.get(i); if(slot.getStack() == null) continue; if(!timer.check((float)(delay == 0 ? 1 : delay))){ return; } mc.playerController.func_187098_a(chest.windowId, i, 0, ClickType.QUICK_MOVE, mc.thePlayer); } } } }
@Override public ItemStack slotClick(int slotId, int clickedButton, ClickType mode, EntityPlayer playerIn) { if (slotId >= 0) { Slot s = getSlot(slotId); if (s instanceof EngramSlot && clickedButton == 0) { s.onPickupFromSlot(playerIn, playerIn.inventory.getCurrentItem()); //TODO: check if (mode == ClickType.PICKUP_ALL && selected != null && ARKPlayer.get(playerIn).canLearnEngram(selected.getId()) && !playerIn.world.isRemote) { enchantItem(playerIn, 1); } return playerIn.inventory.getCurrentItem(); } } return super.slotClick(slotId, clickedButton, mode, playerIn); }
/** * Fired when a key is typed (except F11 which toggles full screen). This is the equivalent of * KeyListener.keyTyped(KeyEvent e). Args : character (character on the key), keyCode (lwjgl Keyboard key code) */ protected void keyTyped(char typedChar, int keyCode) throws IOException { if (manager.lastKeyTyped(keyCode, typedChar)) { return; } if (keyCode == 1 || this.mc.gameSettings.keyBindInventory.isActiveAndMatches(keyCode)) { this.mc.thePlayer.closeScreen(); } this.checkHotbarKeys(keyCode); if (this.theSlot != null && this.theSlot.getHasStack()) { if (this.mc.gameSettings.keyBindPickBlock.isActiveAndMatches(keyCode)) { managerHandleMouseClick(this.theSlot, this.theSlot.slotNumber, 0, ClickType.CLONE); } else if (this.mc.gameSettings.keyBindDrop.isActiveAndMatches(keyCode)) { managerHandleMouseClick(this.theSlot, this.theSlot.slotNumber, isCtrlKeyDown() ? 1 : 0, ClickType.THROW); } } }
@SuppressWarnings ("unchecked") private boolean clearIngredients(GuiContainer gui, List<PositionedStack> ingreds) { for (PositionedStack pstack : ingreds) { for (Slot slot : gui.inventorySlots.inventorySlots) { if (slot.xPos == pstack.relx + offsetx && slot.yPos == pstack.rely + offsety) { if (!slot.getHasStack()) { continue; } FastTransferManager.clickSlot(gui, slot.slotNumber, 0, ClickType.QUICK_MOVE); if (slot.getHasStack()) { return false; } } } } return true; }
@Override public ItemStack slotClick(ContainerExtended container, EntityPlayer player, int button, ClickType clickType) { ItemStack held = player.inventory.getItemStack(); if (button == 0 && clickType == ClickType.QUICK_MOVE) { NEIClientUtils.cheatItem(getStack(), button, -1); } else if (button == 1) { putStack(ItemStack.EMPTY); } else if (!held.isEmpty()) { if (isItemValid(held)) { putStack(ItemUtils.copyStack(held, 1)); player.inventory.setItemStack(ItemStack.EMPTY); } } else if (getHasStack()) { player.inventory.setItemStack(getStack()); } return ItemStack.EMPTY; }
@Override public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { // if (clickTypeIn == ClickType.QUICK_CRAFT) { if (slotId >= 0 && slotId < inventorySlots.size()) { Slot slotObject = inventorySlots.get(slotId); if (slotObject != null && slotObject instanceof SlotCrafting) { // user clicked on result slot ItemStack[] recipe = new ItemStack[9]; for (int i = 0; i < 9; i++) { recipe[i] = this.craftMatrix.getStackInSlot(i); } ItemStack result = super.slotClick(slotId, dragType, clickTypeIn, player); if (result != null) { tryToPopulateCraftingGrid(recipe, player); } return result; } } // } return super.slotClick(slotId, dragType, clickTypeIn, player); }
@Override protected void handleMouseClick(Slot slot, int slotId, int mouseButton, ClickType type) { if (slot != null && slot.getHasStack()) { ItemStack stack = slot.getStack(); sign = new TileEntityMoarSign(); String texture = ItemMoarSign.getTextureFromNBTFull(stack.getTagCompound()); SignInfo info = SignRegistry.get(texture); sign.setWorldObj(FMLClientHandler.instance().getWorldClient()); sign.isMetal = info.isMetal; sign.setBlockType(info.isMetal ? ModBlocks.SIGN_STANDING_METAL : ModBlocks.SIGN_STANDING_WOOD); ITextComponent[] components = new ITextComponent[]{null, new TextComponentString(Localization.GUI.PREVIEW.EXAMPLE_TEXT_1.translate()), new TextComponentString(Localization.GUI.PREVIEW.EXAMPLE_TEXT_2.translate()), null}; System.arraycopy(components, 0, sign.signText, 0, sign.signText.length); sign.setResourceLocation(texture); } }
@Override public ItemStack slotClick(int slotNum, int dragType, ClickType clickType, EntityPlayer player) { ItemStack stack = ItemQuickStacker.getEnabledItem(player); // Middle click if (clickType == ClickType.CLONE && dragType == 2 && stack.isEmpty() == false) { int invSlotNum = this.getSlot(slotNum) != null ? this.getSlot(slotNum).getSlotIndex() : -1; if (invSlotNum != -1) { byte selected = NBTUtils.getByte(stack, ItemQuickStacker.TAG_NAME_CONTAINER, ItemQuickStacker.TAG_NAME_PRESET_SELECTION); long mask = NBTUtils.getLong(stack, ItemQuickStacker.TAG_NAME_CONTAINER, ItemQuickStacker.TAG_NAME_PRESET + selected); mask ^= (0x1L << invSlotNum); NBTUtils.setLong(stack, ItemQuickStacker.TAG_NAME_CONTAINER, ItemQuickStacker.TAG_NAME_PRESET + selected, mask); } return ItemStack.EMPTY; } return super.slotClick(slotNum, dragType, clickType, player); }
@Nullable @Override public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { if (slotId == 1) { if (te.getStackInSlot(slotId) == null) super.slotClick(slotId, dragType, clickTypeIn, player); else { final TileEntityIndustrialStorageUnit tileEntity = (TileEntityIndustrialStorageUnit) te; ItemStack slotStack = tileEntity.getStackInSlot(slotId); if (dragType == 0) { tileEntity.getBigItemStack().removeAmount(slotStack.stackSize); } else if (dragType == 1) { slotStack.stackSize >>>= 1; tileEntity.getBigItemStack().removeAmount(slotStack.stackSize); } super.slotClick(slotId, dragType, clickTypeIn, player); } } return super.slotClick(slotId, dragType, clickTypeIn, player); }
@Override public ItemStack onClick(EntityPlayer player, int dragType, ClickType clickType) { if (clickType == ClickType.CLONE && player.capabilities.isCreativeMode) { ItemStack contents = getStack(); if (!contents.isEmpty()) { ItemStack tmp = contents.copy(); tmp.setCount(tmp.getMaxStackSize()); player.inventory.setItemStack(tmp); return tmp; } } ItemStack held = player.inventory.getItemStack(); ItemStack place = ItemStack.EMPTY; if (!held.isEmpty()) { place = held.copy(); if (!keepSize) place.setCount(1); } inventory.setInventorySlotContents(slotNumber, place); onSlotChanged(); return place; }
@Override @Nullable public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { ItemStack i = super.slotClick(slotId, dragType, clickTypeIn, player); saveToNBT(player); return i; }
@Override protected void handleMouseClick(Slot par1Slot, int par2, int par3, ClickType par4) { if (par1Slot != null) { if (par1Slot.slotNumber == 36) { par1Slot.putStack(ItemStack.EMPTY); } else { setSearchStack(par1Slot.getStack()); } } }
@Override protected void handleMouseClick(Slot par1Slot, int par2, int par3, ClickType par4) { if (par1Slot != null) { if (par1Slot.slotNumber == 48) { par1Slot.putStack(ItemStack.EMPTY); } else { inventory.setStackInSlot(48, par1Slot.getStack()); } } }
@Override protected void handleMouseClick(Slot slot, int slotId, int clickedButton, ClickType clickType) { if (slot instanceof SlotPhantom && Minecraft.getMinecraft().player.inventory.getItemStack().isEmpty() && !slot.getHasStack() && clickedButton == 1) { editingSlot = slot.getSlotIndex(); Minecraft.getMinecraft().displayGuiScreen(searchGui = new GuiSearcher(Minecraft.getMinecraft().player)); } else { super.handleMouseClick(slot, slotId, clickedButton, clickType); } }
@Nonnull @Override public ItemStack slotClick(int slotId, int dragType, ClickType clickType, EntityPlayer player) { Slot slot = slotId < 0 ? null : inventorySlots.get(slotId); if (slot instanceof IPhantomSlot) { return slotClickPhantom(slot, dragType, clickType, player); } return super.slotClick(slotId, dragType, clickType, player); }
@Nonnull private ItemStack slotClickPhantom(Slot slot, int dragType, ClickType clickType, EntityPlayer player) { ItemStack stack = ItemStack.EMPTY; if (clickType == ClickType.CLONE && dragType == 2) { // middle-click: clear slot if (((IPhantomSlot) slot).canAdjust()) { slot.putStack(ItemStack.EMPTY); } } else if ((clickType == ClickType.PICKUP || clickType == ClickType.QUICK_MOVE) && (dragType == 0 || dragType == 1)) { // left or right-click... InventoryPlayer playerInv = player.inventory; slot.onSlotChanged(); ItemStack stackSlot = slot.getStack(); ItemStack stackHeld = playerInv.getItemStack(); stack = stackSlot.copy(); if (stackSlot.isEmpty()) { if (!stackHeld.isEmpty() && slot.isItemValid(stackHeld)) { fillPhantomSlot(slot, stackHeld, clickType, dragType); } } else if (stackHeld.isEmpty()) { adjustPhantomSlot(slot, clickType, dragType); slot.onTake(player, playerInv.getItemStack()); } else if (slot.isItemValid(stackHeld)) { if (canStacksMerge(stackSlot, stackHeld)) { adjustPhantomSlot(slot, clickType, dragType); } else { fillPhantomSlot(slot, stackHeld, clickType, dragType); } } } return stack; }
private void fillPhantomSlot(Slot slot, ItemStack stackHeld, ClickType clickType, int dragType) { if (!((IPhantomSlot) slot).canAdjust()) { return; } int stackSize = dragType == 0 ? stackHeld.getCount() : 1; if (stackSize > slot.getSlotStackLimit()) { stackSize = slot.getSlotStackLimit(); } ItemStack phantomStack = stackHeld.copy(); phantomStack.setCount(stackSize); slot.putStack(phantomStack); }
/** * You should override this method to prevent the player from moving the * stack that opened the inventory, otherwise if the player moves it, the * inventory will not be able to save properly */ @Override public ItemStack slotClick(int slot, int dragType, ClickType clickTypeIn, EntityPlayer player) { // this will prevent the player from interacting with the item that // opened the inventory: if (slot >= 0 && getSlot(slot).getStack() != ItemStack.EMPTY && (getSlot(slot).getStack().getItem() instanceof ItemWallet)) { return ItemStack.EMPTY; } return super.slotClick(slot, dragType, clickTypeIn, player); }
@Override public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, EntityPlayer player) { if(slotId != -999 && getSlot(slotId) != null && getSlot(slotId) instanceof SlotSorter) { if(getSlot(slotId).getHasStack()) { getSlot(slotId).putStack(ItemStack.EMPTY); } //TY mcjty ItemStack clickedStack = player.inventory.getItemStack(); if(!clickedStack.isEmpty()) { ItemStack copy = clickedStack.copy(); copy.setCount(1); getSlot(slotId).putStack(copy); } detectAndSendChanges(); return ItemStack.EMPTY; } if(slotId != -999 && getSlot(slotId) instanceof SlotDefaultSort) { if(dragType == 0) { te.incrementDefaultSort(); } else { te.decrementDefaultSort(); } } return super.slotClick(slotId, dragType, clickTypeIn, player); }
/** * Handles slot clicks, sends a packet to the server. */ public ItemStack windowClick(int windowId, int slotId, int mouseButton, ClickType type, EntityPlayer player) { short short1 = player.openContainer.getNextTransactionID(player.inventory); ItemStack itemstack = player.openContainer.slotClick(slotId, mouseButton, type, player); this.connection.sendPacket(new CPacketClickWindow(windowId, slotId, mouseButton, type, itemstack, short1)); return itemstack; }
@Override public void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException { super.mouseClicked(mouseX, mouseY, mouseButton); if (mouseButton == 0 || mouseButton == 1) { Slot slot = this.getSlotAtPosition(mouseX, mouseY); if(slot != null) { handleMouseClick(slot, slot.slotNumber, mouseButton, ClickType.PICKUP); } } }
public static void swapItems(int one, int two, int windowId) { Minecraft.getMinecraft().playerController.windowClick(windowId, one, 0, ClickType.SWAP, Minecraft.getMinecraft().player); Minecraft.getMinecraft().playerController.windowClick(windowId, two, 0, ClickType.SWAP, Minecraft.getMinecraft().player); Minecraft.getMinecraft().playerController.updateController(); }
public static void windowClick(int windowID, int id, int next, IClickType type) { ClickType t = ClickType.THROW; if (type.equals(IClickType.THROW)) { t = ClickType.THROW; } else if (type.equals(IClickType.QUICK_MOVE)) { t = ClickType.QUICK_MOVE; } else { return; } Minecraft.getMinecraft().playerController.windowClick(windowID, id, next, t, Minecraft.getMinecraft().player); }
public void replaceTotem(int inventoryIndex) { if (Wrapper.getPlayer().openContainer instanceof ContainerPlayer) { Wrapper.getMinecraft().playerController.windowClick(0, inventoryIndex < 9 ? inventoryIndex + 36 : inventoryIndex, 0, ClickType.PICKUP, Wrapper.getPlayer()); Wrapper.getMinecraft().playerController.windowClick(0, 45, 0, ClickType.PICKUP, Wrapper.getPlayer()); Wrapper.getMinecraft().playerController.windowClick(0, inventoryIndex < 9 ? inventoryIndex + 36 : inventoryIndex, 0, ClickType.PICKUP, Wrapper.getPlayer()); } }
public CPacketClickWindow(int windowIdIn, int slotIdIn, int usedButtonIn, ClickType modeIn, ItemStack clickedItemIn, short actionNumberIn) { this.windowId = windowIdIn; this.slotId = slotIdIn; this.usedButton = usedButtonIn; this.clickedItem = clickedItemIn.func_190926_b() ? ItemStack.field_190927_a : clickedItemIn.copy(); this.actionNumber = actionNumberIn; this.mode = modeIn; }
/** * Reads the raw packet data from the data stream. */ public void readPacketData(PacketBuffer buf) throws IOException { this.windowId = buf.readByte(); this.slotId = buf.readShort(); this.usedButton = buf.readByte(); this.actionNumber = buf.readShort(); this.mode = (ClickType)buf.readEnumValue(ClickType.class); this.clickedItem = buf.readItemStackFromBuffer(); }