Fix craftable stack vanishing or duplicating when using craftable view

When an associated non-craftable stack was:
- Fully removed, the craftable stack duplicated.
- Newly added, the craftable stack vanished.
This commit is contained in:
BlueAgent
2021-06-24 21:26:40 +08:00
parent 038661f5ee
commit 4e035b0312

View File

@@ -141,6 +141,7 @@ public class GridViewImpl implements IGridView {
craftingStack = null;
}
Predicate<IGridStack> activeFilters = getActiveFilters();
IGridStack existing = map.get(stack.getId());
boolean stillExists = true;
boolean shouldSort = screen.canSort();
@@ -151,7 +152,7 @@ public class GridViewImpl implements IGridView {
map.put(stack.getId(), stack);
existing = stack;
if (craftingStack != null && shouldSort) {
if (craftingStack != null && shouldSort && activeFilters.test(existing)) {
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 && activeFilters.test(existing) && activeFilters.test(craftingStack)) {
addStack(craftingStack);
}
}
@@ -172,7 +173,7 @@ public class GridViewImpl implements IGridView {
}
if (shouldSort) {
if (stillExists && getActiveFilters().test(existing)) {
if (stillExists && activeFilters.test(existing)) {
addStack(existing);
}
this.screen.updateScrollbar();