From e10f25938f9f162a0b260d47f4a2577e60feeb41 Mon Sep 17 00:00:00 2001 From: BlueAgent Date: Sat, 12 Jun 2021 23:09:10 +0800 Subject: [PATCH] Fix craftable stack vanishing or duplicating when using craftable view (#2940) When an associated non-craftable stack was: - Fully removed, the craftable stack duplicated. - Newly added, the craftable stack vanished. --- .../refinedstorage/screen/grid/view/GridViewImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java b/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java index f8cf0a345..6dbd938ac 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/grid/view/GridViewImpl.java @@ -144,6 +144,7 @@ public class GridViewImpl implements IGridView { IGridStack existing = map.get(stack.getId()); boolean stillExists = true; boolean shouldSort = screen.canSort(); + boolean shouldDisplay = getActiveFilters().test(existing); if (existing == null) { stack.setQuantity(delta); @@ -151,7 +152,7 @@ public class GridViewImpl implements IGridView { map.put(stack.getId(), stack); existing = stack; - if (craftingStack != null && shouldSort) { + if (craftingStack != null && shouldSort && shouldDisplay) { stacks.remove(craftingStack); } } else { @@ -163,7 +164,7 @@ public class GridViewImpl implements IGridView { map.remove(existing.getId()); stillExists = false; - if (craftingStack != null && shouldSort && getActiveFilters().test(craftingStack)) { + if (craftingStack != null && shouldSort && shouldDisplay && getActiveFilters().test(craftingStack)) { addStack(craftingStack); } } @@ -172,7 +173,7 @@ public class GridViewImpl implements IGridView { } if (shouldSort) { - if (stillExists && getActiveFilters().test(existing)) { + if (stillExists && shouldDisplay) { addStack(existing); } this.screen.updateScrollbar();