From bb06cb34eb42cbf7ece44d444afbd4d6813e8413 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 14 Oct 2020 18:32:10 +0200 Subject: [PATCH] allow pressing control to request 10 crafting items Closes #40 --- .../java/de/ellpeck/prettypipes/packets/PacketButton.java | 3 +-- .../prettypipes/terminal/CraftingTerminalTileEntity.java | 8 ++++---- .../terminal/containers/CraftingTerminalGui.java | 4 ++-- .../prettypipes/terminal/containers/ItemTerminalGui.java | 3 ++- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java b/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java index d77db91..a35fd6b 100644 --- a/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java +++ b/src/main/java/de/ellpeck/prettypipes/packets/PacketButton.java @@ -113,8 +113,7 @@ public class PacketButton { }), CRAFT_TERMINAL_REQUEST((pos, data, player) -> { CraftingTerminalTileEntity tile = Utility.getTileEntity(CraftingTerminalTileEntity.class, player.world, pos); - boolean all = data[0] > 0; - tile.requestCraftingItems(player, all); + tile.requestCraftingItems(player, data[0]); }); public final TriConsumer action; diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalTileEntity.java b/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalTileEntity.java index 074522d..194d4dc 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalTileEntity.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/CraftingTerminalTileEntity.java @@ -93,7 +93,7 @@ public class CraftingTerminalTileEntity extends ItemTerminalTileEntity { } } - public void requestCraftingItems(PlayerEntity player, boolean all) { + public void requestCraftingItems(PlayerEntity player, int maxAmount) { PipeNetwork network = PipeNetwork.get(this.world); network.startProfile("terminal_request_crafting"); this.updateItems(); @@ -137,9 +137,9 @@ public class CraftingTerminalTileEntity extends ItemTerminalTileEntity { player.sendMessage(new TranslationTextComponent("info." + PrettyPipes.ID + ".not_found", stack.stack.getDisplayName()).setStyle(Style.EMPTY.setFormatting(TextFormatting.RED)), UUID.randomUUID()); } if (lowestAvailable > 0) { - // if we're only crafting one item, pretend we only have enough for one - if (!all) - lowestAvailable = 1; + // if we're limiting the amount, pretend we only have that amount available + if (maxAmount < lowestAvailable) + lowestAvailable = maxAmount; for (int i = 0; i < this.craftItems.getSlots(); i++) { ItemStack requested = this.getRequestedCraftItem(i); if (requested.isEmpty()) diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java index 0233c6f..5f7fb8c 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/CraftingTerminalGui.java @@ -31,8 +31,8 @@ public class CraftingTerminalGui extends ItemTerminalGui { protected void init() { super.init(); this.requestButton = this.addButton(new Button(this.guiLeft + 8, this.guiTop + 100, 50, 20, new TranslationTextComponent("info." + PrettyPipes.ID + ".request"), button -> { - int all = hasShiftDown() ? 1 : 0; - PacketHandler.sendToServer(new PacketButton(this.container.tile.getPos(), PacketButton.ButtonResult.CRAFT_TERMINAL_REQUEST, all)); + int amount = requestModifier(); + PacketHandler.sendToServer(new PacketButton(this.container.tile.getPos(), PacketButton.ButtonResult.CRAFT_TERMINAL_REQUEST, amount)); })); this.tick(); } diff --git a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java index f09d410..5644503 100644 --- a/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java +++ b/src/main/java/de/ellpeck/prettypipes/terminal/containers/ItemTerminalGui.java @@ -57,6 +57,7 @@ public class ItemTerminalGui extends ContainerScreen { } else { this.requestAmount += modifier; } + // 384 items is 6 stacks, which is what fits into the terminal slots if (this.requestAmount > 384) this.requestAmount = 384; })); @@ -247,7 +248,7 @@ public class ItemTerminalGui extends ContainerScreen { .map(w -> (ItemTerminalWidget) w); } - private static int requestModifier() { + public static int requestModifier() { if (hasControlDown()) { return 10; } else if (hasShiftDown()) {