From 2a66e65103cd1baab833f753c541ee33da5fd117 Mon Sep 17 00:00:00 2001 From: Daniel <57419659+LeHast@users.noreply.github.com> Date: Tue, 8 Aug 2023 15:50:44 -0700 Subject: [PATCH 1/4] Fix #1043 --- .../crusher/CrushingWheelControllerBlockEntity.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java index 751c56fa30..77f07de278 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java @@ -307,8 +307,17 @@ private void applyRecipe() { ItemHelper.addToList(stack, list); } } + + // Change the inventory size when the list contains more than 16 items + int containerOriginalSize = inventory.getContainerSize(); + if (inventory.getContainerSize() < list.size()){ + inventory.setSize(list.size()); + } + for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlotCount(); slot++) inventory.setStackInSlot(slot + 1, list.get(slot)); + inventory.setSize(containerOriginalSize); + } else { inventory.clear(); } From 26ff31a9698c228ae1cbe65addc6293f5c3c552b Mon Sep 17 00:00:00 2001 From: Daniel <57419659+LeHast@users.noreply.github.com> Date: Tue, 8 Aug 2023 16:44:42 -0700 Subject: [PATCH 2/4] Update CrushingWheelControllerBlockEntity.java --- .../kinetics/crusher/CrushingWheelControllerBlockEntity.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java index 77f07de278..6b470da955 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java @@ -316,8 +316,6 @@ private void applyRecipe() { for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlotCount(); slot++) inventory.setStackInSlot(slot + 1, list.get(slot)); - inventory.setSize(containerOriginalSize); - } else { inventory.clear(); } From 76e75b525b18c20221f978eb75bf3fcb8c0deec9 Mon Sep 17 00:00:00 2001 From: Daniel <57419659+LeHast@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:16:23 -0700 Subject: [PATCH 3/4] Fix inventory clear --- .../crusher/CrushingWheelControllerBlockEntity.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java index 6b470da955..78c542ca01 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java @@ -133,6 +133,7 @@ public void tick() { if (level.isClientSide) return; + int containerOriginalSize = inventory.getContainerSize(); if (inventory.remainingTime < 20 && !inventory.appliedRecipe) { applyRecipe(); inventory.appliedRecipe = true; @@ -184,7 +185,12 @@ public void tick() { .put("BypassCrushingWheel", NbtUtils.writeBlockPos(worldPosition)); level.addFreshEntity(entityIn); } - inventory.clear(); + if (inventory.getContainerSize() != containerOriginalSize){ + inventory.setSize(containerOriginalSize); + }else{ + inventory.clear(); + } + level.sendBlockUpdated(worldPosition, getBlockState(), getBlockState(), 2 | 16); return; @@ -254,6 +260,7 @@ public void tick() { intakeItem(itemEntity); } } + } @Environment(EnvType.CLIENT) @@ -309,13 +316,13 @@ private void applyRecipe() { } // Change the inventory size when the list contains more than 16 items - int containerOriginalSize = inventory.getContainerSize(); if (inventory.getContainerSize() < list.size()){ inventory.setSize(list.size()); } for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlotCount(); slot++) inventory.setStackInSlot(slot + 1, list.get(slot)); + } else { inventory.clear(); } From dd44f1d268d39138c556cc01e68339b23e4c5c2b Mon Sep 17 00:00:00 2001 From: Daniel <57419659+LeHast@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:41:54 -0700 Subject: [PATCH 4/4] Restore inventory size to original size --- .../crusher/CrushingWheelControllerBlockEntity.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java index 78c542ca01..e2bfca9a60 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/crusher/CrushingWheelControllerBlockEntity.java @@ -133,7 +133,6 @@ public void tick() { if (level.isClientSide) return; - int containerOriginalSize = inventory.getContainerSize(); if (inventory.remainingTime < 20 && !inventory.appliedRecipe) { applyRecipe(); inventory.appliedRecipe = true; @@ -185,8 +184,8 @@ public void tick() { .put("BypassCrushingWheel", NbtUtils.writeBlockPos(worldPosition)); level.addFreshEntity(entityIn); } - if (inventory.getContainerSize() != containerOriginalSize){ - inventory.setSize(containerOriginalSize); + if (inventory.getContainerSize() != 16){ + inventory.setSize(16); }else{ inventory.clear(); } @@ -317,10 +316,10 @@ private void applyRecipe() { // Change the inventory size when the list contains more than 16 items if (inventory.getContainerSize() < list.size()){ - inventory.setSize(list.size()); + inventory.setSize(list.size() + 1); } - for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlotCount(); slot++) + for (int slot = 0; slot < list.size(); slot++) inventory.setStackInSlot(slot + 1, list.get(slot)); } else {