mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-06 17:59:48 +00:00
Added API method Item::canStackWith()
This commit is contained in:
@ -118,7 +118,7 @@ trait InventoryHelpersTrait{
|
||||
$count = $item->getCount();
|
||||
for($i = 0, $size = $this->getSize(); $i < $size; ++$i){
|
||||
$slot = $this->getItem($i);
|
||||
if($item->equals($slot)){
|
||||
if($item->canStackWith($slot)){
|
||||
if(($diff = min($slot->getMaxStackSize(), $item->getMaxStackSize()) - $slot->getCount()) > 0){
|
||||
$count -= $diff;
|
||||
}
|
||||
@ -166,7 +166,7 @@ trait InventoryHelpersTrait{
|
||||
$emptySlots[] = $i;
|
||||
}
|
||||
|
||||
if($slot->equals($item) and $item->getCount() < $item->getMaxStackSize()){
|
||||
if($slot->canStackWith($item) and $item->getCount() < $item->getMaxStackSize()){
|
||||
$amount = min($item->getMaxStackSize() - $item->getCount(), $slot->getCount(), $this->getMaxStackSize());
|
||||
if($amount > 0){
|
||||
$slot->setCount($slot->getCount() - $amount);
|
||||
|
@ -84,7 +84,7 @@ class CraftingTransaction extends InventoryTransaction{
|
||||
$recipeItem = array_pop($recipeItems);
|
||||
$needCount = $recipeItem->getCount();
|
||||
foreach($recipeItems as $i => $otherRecipeItem){
|
||||
if($otherRecipeItem->equals($recipeItem)){ //make sure they have the same wildcards set
|
||||
if($otherRecipeItem->canStackWith($recipeItem)){ //make sure they have the same wildcards set
|
||||
$needCount += $otherRecipeItem->getCount();
|
||||
unset($recipeItems[$i]);
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ class InventoryTransaction{
|
||||
|
||||
foreach($needItems as $i => $needItem){
|
||||
foreach($haveItems as $j => $haveItem){
|
||||
if($needItem->equals($haveItem)){
|
||||
if($needItem->canStackWith($haveItem)){
|
||||
$amount = min($needItem->getCount(), $haveItem->getCount());
|
||||
$needItem->setCount($needItem->getCount() - $amount);
|
||||
$haveItem->setCount($haveItem->getCount() - $amount);
|
||||
|
Reference in New Issue
Block a user