Make SlotItemHandler override Slot.getSlotStackLimit. Closes #3497
Make Container.mergeItemStack respect target slot's max size when slot is non-empty. Closes #3498 Fix Shift clicking in Beacons with stacked items when fuel slot is empty.
This commit is contained in:
parent
c82d3af550
commit
c6bc4ec5a9
|
@ -1,6 +1,30 @@
|
|||
--- ../src-base/minecraft/net/minecraft/inventory/Container.java
|
||||
+++ ../src-work/minecraft/net/minecraft/inventory/Container.java
|
||||
@@ -708,7 +708,7 @@
|
||||
@@ -578,18 +578,19 @@
|
||||
if (!itemstack.func_190926_b() && itemstack.func_77973_b() == p_75135_1_.func_77973_b() && (!p_75135_1_.func_77981_g() || p_75135_1_.func_77960_j() == itemstack.func_77960_j()) && ItemStack.func_77970_a(p_75135_1_, itemstack))
|
||||
{
|
||||
int j = itemstack.func_190916_E() + p_75135_1_.func_190916_E();
|
||||
+ int maxSize = Math.min(slot.func_75219_a(), p_75135_1_.func_77976_d());
|
||||
|
||||
- if (j <= p_75135_1_.func_77976_d())
|
||||
+ if (j <= maxSize)
|
||||
{
|
||||
p_75135_1_.func_190920_e(0);
|
||||
itemstack.func_190920_e(j);
|
||||
slot.func_75218_e();
|
||||
flag = true;
|
||||
}
|
||||
- else if (itemstack.func_190916_E() < p_75135_1_.func_77976_d())
|
||||
+ else if (itemstack.func_190916_E() < maxSize)
|
||||
{
|
||||
- p_75135_1_.func_190918_g(p_75135_1_.func_77976_d() - itemstack.func_190916_E());
|
||||
- itemstack.func_190920_e(p_75135_1_.func_77976_d());
|
||||
+ p_75135_1_.func_190918_g(maxSize - itemstack.func_190916_E());
|
||||
+ itemstack.func_190920_e(maxSize);
|
||||
slot.func_75218_e();
|
||||
flag = true;
|
||||
}
|
||||
@@ -708,7 +709,7 @@
|
||||
p_94525_2_.func_190920_e(1);
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
--- ../src-base/minecraft/net/minecraft/inventory/ContainerBeacon.java
|
||||
+++ ../src-work/minecraft/net/minecraft/inventory/ContainerBeacon.java
|
||||
@@ -145,8 +145,7 @@
|
||||
@@ -90,12 +90,9 @@
|
||||
|
||||
slot.func_75220_a(itemstack1, itemstack);
|
||||
}
|
||||
- else if (!this.field_82864_f.func_75216_d() && this.field_82864_f.func_75214_a(itemstack1) && itemstack1.func_190916_E() == 1)
|
||||
+ else if (this.func_75135_a(itemstack1, 0, 1, false)) //Forge Fix Shift Clicking in beacons with stacks larger then 1.
|
||||
{
|
||||
- if (!this.func_75135_a(itemstack1, 0, 1, false))
|
||||
- {
|
||||
- return ItemStack.field_190927_a;
|
||||
- }
|
||||
+ return ItemStack.field_190927_a;
|
||||
}
|
||||
else if (p_82846_2_ >= 1 && p_82846_2_ < 28)
|
||||
{
|
||||
@@ -145,8 +142,7 @@
|
||||
|
||||
public boolean func_75214_a(ItemStack p_75214_1_)
|
||||
{
|
||||
|
|
|
@ -87,6 +87,12 @@ public class SlotItemHandler extends Slot
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotStackLimit()
|
||||
{
|
||||
return this.itemHandler.getSlotLimit(this.index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemStackLimit(@Nonnull ItemStack stack)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue