Fix InventoryAction wrong for Bundles (#11902)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
--- a/net/minecraft/world/item/component/BundleContents.java
|
||||
+++ b/net/minecraft/world/item/component/BundleContents.java
|
||||
@@ -76,6 +_,12 @@
|
||||
return !stack.isEmpty() && stack.getItem().canFitInsideContainerItems();
|
||||
}
|
||||
|
||||
+ // Paper start - correct bundle inventory action
|
||||
+ public int getMaxAmountToAdd(final ItemStack stack) {
|
||||
+ return Mutable.getMaxAmountToAdd(stack, this.weight);
|
||||
+ }
|
||||
+ // Paper end - correct bundle inventory action
|
||||
+
|
||||
public int getNumberOfItemsToShow() {
|
||||
int size = this.size();
|
||||
int i = size > 12 ? 11 : 12;
|
||||
@@ -171,7 +_,13 @@
|
||||
}
|
||||
|
||||
public int getMaxAmountToAdd(ItemStack stack) {
|
||||
- Fraction fraction = Fraction.ONE.subtract(this.weight);
|
||||
+ // Paper start - correct bundle inventory action
|
||||
+ // Static overload to easily compute this value without the need for an instance of mutable.
|
||||
+ return getMaxAmountToAdd(stack, this.weight);
|
||||
+ }
|
||||
+ static int getMaxAmountToAdd(final ItemStack stack, final Fraction weight) {
|
||||
+ Fraction fraction = Fraction.ONE.subtract(weight);
|
||||
+ // Paper end - correct bundle inventory action
|
||||
return Math.max(fraction.divideBy(BundleContents.getWeight(stack)).intValue(), 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user