diff options
author | Mattes D <github@xoft.cz> | 2014-04-22 13:34:32 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-04-22 13:34:32 +0200 |
commit | 6492aa000b322877aecda32573cc55b57abfc5ed (patch) | |
tree | f9f0f9211b42aa72729f8d6d444e4f48556e5fb9 /src/BlockEntities/HopperEntity.cpp | |
parent | Added prefab hitboxes. (diff) | |
parent | reverted the revert of the minecart collision detection fix. (diff) | |
download | cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.tar cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.tar.gz cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.tar.bz2 cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.tar.lz cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.tar.xz cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.tar.zst cuberite-6492aa000b322877aecda32573cc55b57abfc5ed.zip |
Diffstat (limited to 'src/BlockEntities/HopperEntity.cpp')
-rw-r--r-- | src/BlockEntities/HopperEntity.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/BlockEntities/HopperEntity.cpp b/src/BlockEntities/HopperEntity.cpp index 41fb9f811..7f001c739 100644 --- a/src/BlockEntities/HopperEntity.cpp +++ b/src/BlockEntities/HopperEntity.cpp @@ -234,24 +234,27 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick) bool TrySuckPickupIn(cPickup * a_Pickup) { + cItem & Item = a_Pickup->GetItem(); + for (int i = 0; i < ContentsWidth * ContentsHeight; i++) { if (m_Contents.IsSlotEmpty(i)) { m_bFoundPickupsAbove = true; - m_Contents.SetSlot(i, a_Pickup->GetItem()); + m_Contents.SetSlot(i, Item); a_Pickup->Destroy(); // Kill pickup return true; } - else if (m_Contents.GetSlot(i).IsEqual(a_Pickup->GetItem()) && !m_Contents.GetSlot(i).IsFullStack()) + else if (m_Contents.GetSlot(i).IsEqual(Item) && !m_Contents.GetSlot(i).IsFullStack()) { m_bFoundPickupsAbove = true; int PreviousCount = m_Contents.GetSlot(i).m_ItemCount; - a_Pickup->GetItem().m_ItemCount -= m_Contents.ChangeSlotCount(i, a_Pickup->GetItem().m_ItemCount) - PreviousCount; // Set count to however many items were added - if (a_Pickup->GetItem().IsEmpty()) + Item.m_ItemCount -= m_Contents.ChangeSlotCount(i, Item.m_ItemCount) - PreviousCount; // Set count to however many items were added + + if (Item.IsEmpty()) { a_Pickup->Destroy(); // Kill pickup if all items were added } |