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

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

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

Slot.onSlotChanged介绍

暂无

代码示例

代码示例来源: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: P3pp3rF1y/AncientWarfare2

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. if (!isOpening) {
  5. updateRecipes();
  6. updateSelectedRecipe();
  7. }
  8. }
  9. };

代码示例来源: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: Esteemed-Innovation/Esteemed-Innovation

  1. @Override
  2. public void onSlotChanged() {
  3. ContainerSteamAnvil.this.onCraftMatrixChanged(hammer);
  4. super.onSlotChanged();
  5. }
  6. });

代码示例来源:origin: Esteemed-Innovation/Esteemed-Innovation

  1. @Override
  2. public void onSlotChanged() {
  3. ContainerSteamAnvil.this.onCraftMatrixChanged(hammer);
  4. super.onSlotChanged();
  5. }
  6. });

代码示例来源:origin: SonarSonic/Calculator

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. locator.createOwner();
  5. }
  6. }

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

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. container.resetItemInventory(getStack());
  5. for (int i = 1; i <= 9; i++) {
  6. Slot slot = container.getSlot(i);
  7. slot.onSlotChanged();
  8. }
  9. }

代码示例来源:origin: OpenMods/OpenModsLib

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. // hackish, but required
  5. if (inventory instanceof GenericInventory) ((GenericInventory)inventory).onInventoryChanged(getSlotIndex());
  6. }
  7. }

代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2

  1. d.onSlotChanged();
  2. d.onSlotChanged();
  3. d.onSlotChanged();

代码示例来源:origin: Chisel-Team/Chisel

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. container.onChiselSlotChanged();
  5. container.getInventoryChisel().updateItems();
  6. }
  7. }

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

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. if (FMLCommonHandler.instance().getEffectiveSide().isServer()) {
  5. containerHolding.saveInventory(player);
  6. }
  7. }

代码示例来源:origin: PrinceOfAmber/Cyclic

  1. @Override
  2. public void onSlotChanged() {
  3. if (this.getHasStack() && this.getStack().getCount() == 0) {
  4. this.putStack((ItemStack) null);
  5. }
  6. super.onSlotChanged();
  7. }
  8. }

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

  1. @Override
  2. public ItemStack transferStackInSlot(EntityPlayer player, int par2) {
  3. ItemStack is = ItemStack.EMPTY;
  4. Slot slot = (Slot) inventorySlots.get(par2);
  5. if (slot != null && slot.getHasStack()) {
  6. ItemStack is1 = slot.getStack();
  7. is = is1.copy();
  8. if (par2 < 72) {
  9. if (!mergeItemStack(is1, 72, inventorySlots.size(), true))
  10. return ItemStack.EMPTY;
  11. } else if (!mergeItemStack(is1, 0, 72, false))
  12. return ItemStack.EMPTY;
  13. if (is1.getCount() == 0)
  14. slot.putStack(ItemStack.EMPTY);
  15. else
  16. slot.onSlotChanged();
  17. }
  18. return is;
  19. }

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

  1. private ItemStack shiftClick(final EntityPlayer player, final int slotnumber) {
  2. final TransferRequest request = this.getShiftClickRequest(player, slotnumber);
  3. TransferResult transferResult = request.transfer(player, true);
  4. if (transferResult.isSuccess()) {
  5. NonNullList<ItemStack> results = transferResult.getRemaining();
  6. if (results.size() == 1) {
  7. final ItemStack itemstack = results.get(0);
  8. final Slot shiftClickedSlot = this.inventorySlots.get(slotnumber);
  9. shiftClickedSlot.putStack(itemstack);
  10. shiftClickedSlot.onSlotChanged();
  11. }
  12. }
  13. return ItemStack.EMPTY;
  14. }

代码示例来源:origin: SonarSonic/Calculator

  1. @Override
  2. public void onSlotChanged() {
  3. super.onSlotChanged();
  4. if (player != null) {
  5. /*
  6. int[] unblocked = entity.unblockedList();
  7. if (entity.isBlocked(entity.lastResearch) && entity.lastResearch != 0) {
  8. if (CalculatorRecipes.recipes().discovery(unblocked, entity.lastResearch)) {
  9. FontHelper.sendMessage(FontHelper.translate("research.recipeNew"), entity.getWorld(), player);
  10. }
  11. }
  12. */
  13. entity.markBlockForUpdate();
  14. entity.getWorld().addBlockEvent(entity.getPos(), entity.getBlockType(), 1, 0);
  15. }
  16. }

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

  1. @Override
  2. public ItemStack slotClick(int slotId, int mouseButton, ClickType modifier, EntityPlayer player) {
  3. Slot slot = slotId < 0 ? null : this.inventorySlots.get(slotId);
  4. if (slot instanceof SlotFalseCopy) {
  5. if (mouseButton == 2) {
  6. slot.putStack(ItemStack.EMPTY);
  7. slot.onSlotChanged();
  8. } else {
  9. slot.putStack(player.inventory.getItemStack().isEmpty() ? ItemStack.EMPTY : player.inventory.getItemStack().copy());
  10. }
  11. return player.inventory.getItemStack();
  12. }
  13. return super.slotClick(slotId, mouseButton, modifier, player);
  14. }

代码示例来源: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: P3pp3rF1y/AncientWarfare2

  1. @Override
  2. public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int slotClickedIndex) {
  3. Slot slot = this.getSlot(slotClickedIndex);
  4. if (slot == null || !slot.getHasStack()) {
  5. return ItemStack.EMPTY;
  6. }
  7. @Nonnull ItemStack stackFromSlot = slot.getStack();
  8. if (slotClickedIndex < tileEntitySlots) {
  9. this.mergeItemStack(stackFromSlot, tileEntitySlots, tileEntitySlots + playerSlots, false);
  10. } else {
  11. this.mergeItemStack(stackFromSlot, 0, tileEntitySlots, true);
  12. }
  13. if (stackFromSlot.getCount() == 0) {
  14. slot.putStack(ItemStack.EMPTY);
  15. } else {
  16. slot.onSlotChanged();
  17. }
  18. return ItemStack.EMPTY;
  19. }

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

  1. private static boolean shiftItemStackToRangeOpenSlots(List<Slot> inventorySlots, ItemStack stackToShift, int start, int count) {
  2. if (stackToShift.isEmpty()) {
  3. return false;
  4. }
  5. boolean changed = false;
  6. for (int slotIndex = start; !stackToShift.isEmpty() && slotIndex < start + count; slotIndex++) {
  7. Slot slot = inventorySlots.get(slotIndex);
  8. ItemStack stackInSlot = slot.getStack();
  9. if (stackInSlot.isEmpty()) {
  10. int max = Math.min(stackToShift.getMaxStackSize(), slot.getSlotStackLimit());
  11. stackInSlot = stackToShift.copy();
  12. stackInSlot.setCount(Math.min(stackToShift.getCount(), max));
  13. stackToShift.shrink(stackInSlot.getCount());
  14. slot.putStack(stackInSlot);
  15. slot.onSlotChanged();
  16. changed = true;
  17. }
  18. }
  19. return changed;
  20. }

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

  1. public boolean executeMoveItems(int fromSlot, int toSlotStart, int toSlotEnd, int amount) {
  2. if ((fromSlot >= toSlotStart && fromSlot < toSlotEnd) || toSlotEnd <= toSlotStart || amount <= 0) {
  3. return false;
  4. }
  5. Slot srcSlot = getSlot(fromSlot);
  6. ItemStack src = srcSlot.getStack();
  7. if (!src.isEmpty()) {
  8. ItemStack toMove = src.copy();
  9. toMove.setCount(Math.min(src.getCount(), amount));
  10. int remaining = src.getCount() - toMove.getCount();
  11. if (mergeItemStack(toMove, toSlotStart, toSlotEnd, false)) {
  12. remaining += toMove.getCount();
  13. if (remaining == 0) {
  14. srcSlot.putStack(ItemStack.EMPTY);
  15. } else {
  16. src.setCount(remaining);
  17. srcSlot.onSlotChanged();
  18. }
  19. return true;
  20. }
  21. }
  22. return false;
  23. }

相关文章