net.minecraft.inventory.Slot.onTake()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(183)

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

Slot.onTake介绍

暂无

代码示例

代码示例来源:origin: Vazkii/Botania

  1. @Nonnull
  2. @Override
  3. public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
  4. ItemStack itemstack = ItemStack.EMPTY;
  5. Slot slot = inventorySlots.get(slotIndex);
  6. if(slot != null && slot.getHasStack()) {
  7. ItemStack itemstack1 = slot.getStack();
  8. itemstack = itemstack1.copy();
  9. if(slotIndex < 16) {
  10. if(!mergeItemStack(itemstack1, 16, 52, true))
  11. return ItemStack.EMPTY;
  12. } else {
  13. int i = itemstack.getItemDamage();
  14. if(i < 16) {
  15. Slot slot1 = inventorySlots.get(i);
  16. if(slot1.isItemValid(itemstack) && !mergeItemStack(itemstack1, i, i + 1, true))
  17. return ItemStack.EMPTY;
  18. }
  19. }
  20. if(itemstack1.isEmpty())
  21. slot.putStack(ItemStack.EMPTY);
  22. else slot.onSlotChanged();
  23. if(itemstack1.getCount() == itemstack.getCount())
  24. return ItemStack.EMPTY;
  25. slot.onTake(player, itemstack1);
  26. }
  27. return itemstack;
  28. }

代码示例来源:origin: Vazkii/Quark

  1. @Override
  2. public ItemStack onTake(EntityPlayer thePlayer, ItemStack stack) {
  3. finish(thePlayer, stack);
  4. return super.onTake(thePlayer, stack);
  5. }
  6. });

代码示例来源:origin: Vazkii/Botania

  1. @Nonnull
  2. @Override
  3. public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
  4. ItemStack itemstack = ItemStack.EMPTY;
  5. Slot slot = inventorySlots.get(slotIndex);
  6. if(slot != null && slot.getHasStack()) {
  7. ItemStack itemstack1 = slot.getStack();
  8. itemstack = itemstack1.copy();
  9. int boxStart = 7;
  10. int boxEnd = boxStart + 24;
  11. int invEnd = boxEnd + 36;
  12. if(slotIndex < boxEnd) {
  13. if(!mergeItemStack(itemstack1, boxEnd, invEnd, true))
  14. return ItemStack.EMPTY;
  15. } else {
  16. if(!itemstack1.isEmpty() && (itemstack1.getItem() instanceof IBauble || itemstack1.getItem() instanceof IManaItem) && !mergeItemStack(itemstack1, boxStart, boxEnd, false))
  17. return ItemStack.EMPTY;
  18. }
  19. if(itemstack1.isEmpty())
  20. slot.putStack(ItemStack.EMPTY);
  21. else slot.onSlotChanged();
  22. if(itemstack1.getCount() == itemstack.getCount())
  23. return ItemStack.EMPTY;
  24. slot.onTake(player, itemstack1);
  25. }
  26. return itemstack;
  27. }

代码示例来源:origin: Vazkii/Psi

  1. @Nonnull
  2. @Override
  3. public ItemStack onTake(EntityPlayer playerIn, @Nonnull ItemStack stack) {
  4. super.onTake(playerIn, stack);
  5. assembler.onCraftCAD(stack);
  6. return stack;
  7. }

代码示例来源:origin: MrCrayfish/MrCrayfishFurnitureMod

  1. @Override
  2. public ItemStack onTake(EntityPlayer player, ItemStack stack)
  3. {
  4. Triggers.trigger(Triggers.PLAYER_GOT_MAIL, player);
  5. return super.onTake(player, stack);
  6. }
  7. });

代码示例来源:origin: MrCrayfish/MrCrayfishFurnitureMod

  1. @Override
  2. public ItemStack onTake(EntityPlayer player, ItemStack stack)
  3. {
  4. Triggers.trigger(Triggers.FREEZER_FREEZE, player);
  5. return super.onTake(player, stack);
  6. }
  7. }

代码示例来源:origin: Alex-the-666/Ice_and_Fire

  1. @Override
  2. public ItemStack onTake(EntityPlayer playerIn, ItemStack stack) {
  3. this.onCrafting(stack);
  4. return super.onTake(playerIn, stack);
  5. }

代码示例来源:origin: MrCrayfish/MrCrayfishFurnitureMod

  1. @Override
  2. public ItemStack onTake(EntityPlayer player, ItemStack stack)
  3. {
  4. Triggers.trigger(Triggers.OVEN_COOK, player);
  5. return super.onTake(player, stack);
  6. }
  7. }

代码示例来源:origin: MrCrayfish/MrCrayfishFurnitureMod

  1. @Override
  2. public ItemStack onTake(EntityPlayer player, ItemStack stack)
  3. {
  4. Triggers.trigger(Triggers.PRINTER_COPY, player);
  5. return super.onTake(player, stack);
  6. }
  7. }

代码示例来源:origin: jabelar/ExampleMod-1.12

  1. @Override
  2. public ItemStack onTake(EntityPlayer playerIn, ItemStack stack)
  3. {
  4. this.onCrafting(stack);
  5. return super.onTake(playerIn, stack);
  6. }

代码示例来源:origin: CyclopsMC/EvilCraft

  1. @Override
  2. public ItemStack onTake(EntityPlayer player, ItemStack itemStack) {
  3. if(!ItemStack.areItemStackTagsEqual(itemStack, this.getStack())) {
  4. tile.resetWork();
  5. }
  6. return super.onTake(player, itemStack);
  7. }

代码示例来源:origin: P3pp3rF1y/AncientWarfare2

  1. @Override
  2. public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int slotClickedIndex) {
  3. @Nonnull ItemStack slotStackCopy = ItemStack.EMPTY;
  4. Slot theSlot = this.getSlot(slotClickedIndex);
  5. if (theSlot != null && theSlot.getHasStack()) {
  6. @Nonnull ItemStack slotStack = theSlot.getStack();
  7. slotStackCopy = slotStack.copy();
  8. if (slotStack.getCount() == 0) {
  9. theSlot.putStack(ItemStack.EMPTY);
  10. } else {
  11. theSlot.onSlotChanged();
  12. }
  13. if (slotStack.getCount() == slotStackCopy.getCount()) {
  14. return ItemStack.EMPTY;
  15. }
  16. theSlot.onTake(par1EntityPlayer, slotStack);
  17. }
  18. return slotStackCopy;
  19. }

代码示例来源:origin: TheGreyGhost/MinecraftByExample

  1. sourceSlot.onTake(player, sourceStack); //onPickupFromSlot()
  2. return copyOfSourceStack;

代码示例来源:origin: ForestryMC/ForestryMC

  1. public static ItemStack transferStackInSlot(List<Slot> inventorySlots, EntityPlayer player, int slotIndex) {
  2. Slot slot = inventorySlots.get(slotIndex);
  3. if (slot == null || !slot.getHasStack()) {
  4. return ItemStack.EMPTY;
  5. }
  6. boolean fromCraftingSlot = slot instanceof SlotCrafting || slot instanceof SlotCrafter;
  7. int numSlots = inventorySlots.size();
  8. ItemStack stackInSlot = slot.getStack();
  9. ItemStack originalStack = stackInSlot.copy();
  10. if (!shiftItemStack(inventorySlots, stackInSlot, slotIndex, numSlots, fromCraftingSlot)) {
  11. return ItemStack.EMPTY;
  12. }
  13. slot.onSlotChange(stackInSlot, originalStack);
  14. if (stackInSlot.isEmpty()) {
  15. slot.putStack(ItemStack.EMPTY);
  16. } else {
  17. slot.onSlotChanged();
  18. }
  19. if (stackInSlot.getCount() == originalStack.getCount()) {
  20. return ItemStack.EMPTY;
  21. }
  22. slot.onTake(player, stackInSlot);
  23. return originalStack;
  24. }

代码示例来源:origin: sinkillerj/ProjectE

  1. return slot.onTake(player, newStack);

代码示例来源:origin: WayofTime/BloodMagic

  1. @Override
  2. public ItemStack transferStackInSlot(EntityPlayer player, int slot) {
  3. ItemStack stack = ItemStack.EMPTY;
  4. Slot slotObject = inventorySlots.get(slot);
  5. int slots = inventorySlots.size();
  6. if (slotObject != null && slotObject.getHasStack()) {
  7. ItemStack stackInSlot = slotObject.getStack();
  8. stack = stackInSlot.copy();
  9. if (stack.getItem() instanceof ItemTelepositionFocus) {
  10. if (slot <= slots) {
  11. if (!this.mergeItemStack(stackInSlot, 0, slots, false)) {
  12. return ItemStack.EMPTY;
  13. }
  14. } else if (!this.mergeItemStack(stackInSlot, slots, 36 + slots, false)) {
  15. return ItemStack.EMPTY;
  16. }
  17. }
  18. if (stackInSlot.getCount() == 0) {
  19. slotObject.putStack(ItemStack.EMPTY);
  20. } else {
  21. slotObject.onSlotChanged();
  22. }
  23. if (stackInSlot.getCount() == stack.getCount()) {
  24. return ItemStack.EMPTY;
  25. }
  26. slotObject.onTake(player, stackInSlot);
  27. }
  28. return stack;
  29. }

代码示例来源:origin: SleepyTrousers/EnderIO

  1. slot.onSlotChanged();
  2. return slot.onTake(par1EntityPlayer, origStack);

代码示例来源:origin: sinkillerj/ProjectE

  1. return slot.onTake(player, stack);

代码示例来源:origin: CoFH/CoFHCore

  1. @Override
  2. public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
  3. if (!supportsShiftClick(player, slotIndex)) {
  4. return ItemStack.EMPTY;
  5. }
  6. ItemStack stack = ItemStack.EMPTY;
  7. Slot slot = inventorySlots.get(slotIndex);
  8. if (slot != null && slot.getHasStack()) {
  9. ItemStack stackInSlot = slot.getStack();
  10. stack = stackInSlot.copy();
  11. if (!performMerge(player, slotIndex, stackInSlot)) {
  12. return ItemStack.EMPTY;
  13. }
  14. slot.onSlotChange(stackInSlot, stack);
  15. if (stackInSlot.getCount() <= 0) {
  16. slot.putStack(ItemStack.EMPTY);
  17. } else {
  18. slot.putStack(stackInSlot);
  19. }
  20. if (stackInSlot.getCount() == stack.getCount()) {
  21. return ItemStack.EMPTY;
  22. }
  23. slot.onTake(player, stackInSlot);
  24. }
  25. return stack;
  26. }

代码示例来源:origin: vadis365/TheErebus

  1. @Override
  2. public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) {
  3. ItemStack stack = ItemStack.EMPTY;
  4. Slot slot = (Slot) inventorySlots.get(slotIndex);
  5. if (slot != null && slot.getHasStack()) {
  6. ItemStack stack1 = slot.getStack();
  7. stack = stack1.copy();
  8. if (slotIndex > 4) {
  9. if (stack1.getItem() == ModItems.MATERIALS && stack1.getItemDamage() != ItemMaterials.EnumErebusMaterialsType.SMOOTHIE_GLASS.ordinal() || stack1.getItem() != ModItems.MATERIALS) {
  10. if (!mergeItemStack(stack1, 0, 4, false))
  11. return ItemStack.EMPTY;
  12. } else if (stack1.getItem() == ModItems.MATERIALS && stack1.getItemDamage() == ItemMaterials.EnumErebusMaterialsType.SMOOTHIE_GLASS.ordinal())
  13. if (!mergeItemStack(stack1, 4, 5, false))
  14. return ItemStack.EMPTY;
  15. } else if (!mergeItemStack(stack1, 5, inventorySlots.size(), false))
  16. return ItemStack.EMPTY;
  17. if (stack1.getCount() == 0)
  18. slot.putStack(ItemStack.EMPTY);
  19. else
  20. slot.onSlotChanged();
  21. if (stack1.getCount() != stack.getCount())
  22. slot.onTake(player, stack1);
  23. else
  24. return ItemStack.EMPTY;
  25. }
  26. return stack;
  27. }

相关文章