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.
This commit is contained in:
@@ -144,6 +144,7 @@ public class GridViewImpl implements IGridView {
|
|||||||
IGridStack existing = map.get(stack.getId());
|
IGridStack existing = map.get(stack.getId());
|
||||||
boolean stillExists = true;
|
boolean stillExists = true;
|
||||||
boolean shouldSort = screen.canSort();
|
boolean shouldSort = screen.canSort();
|
||||||
|
boolean shouldDisplay = getActiveFilters().test(existing);
|
||||||
|
|
||||||
if (existing == null) {
|
if (existing == null) {
|
||||||
stack.setQuantity(delta);
|
stack.setQuantity(delta);
|
||||||
@@ -151,7 +152,7 @@ public class GridViewImpl implements IGridView {
|
|||||||
map.put(stack.getId(), stack);
|
map.put(stack.getId(), stack);
|
||||||
existing = stack;
|
existing = stack;
|
||||||
|
|
||||||
if (craftingStack != null && shouldSort) {
|
if (craftingStack != null && shouldSort && shouldDisplay) {
|
||||||
stacks.remove(craftingStack);
|
stacks.remove(craftingStack);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -163,7 +164,7 @@ public class GridViewImpl implements IGridView {
|
|||||||
map.remove(existing.getId());
|
map.remove(existing.getId());
|
||||||
stillExists = false;
|
stillExists = false;
|
||||||
|
|
||||||
if (craftingStack != null && shouldSort && getActiveFilters().test(craftingStack)) {
|
if (craftingStack != null && shouldSort && shouldDisplay && getActiveFilters().test(craftingStack)) {
|
||||||
addStack(craftingStack);
|
addStack(craftingStack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -172,7 +173,7 @@ public class GridViewImpl implements IGridView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (shouldSort) {
|
if (shouldSort) {
|
||||||
if (stillExists && getActiveFilters().test(existing)) {
|
if (stillExists && shouldDisplay) {
|
||||||
addStack(existing);
|
addStack(existing);
|
||||||
}
|
}
|
||||||
this.screen.updateScrollbar();
|
this.screen.updateScrollbar();
|
||||||
|
Reference in New Issue
Block a user