diff options
author | jfhumann <j.f.humann@gmail.com> | 2014-04-18 21:09:44 +0200 |
---|---|---|
committer | jfhumann <j.f.humann@gmail.com> | 2014-04-18 21:09:44 +0200 |
commit | 013da806ec20b62a742aded9a9d2b8131193f30d (patch) | |
tree | bfe1f833f93cd4a57619fa149f5f9075a28862e2 /src/BlockEntities/HopperEntity.cpp | |
parent | ProtoProxy: Added 1.7.9 compatibility. (diff) | |
download | cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.tar cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.tar.gz cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.tar.bz2 cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.tar.lz cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.tar.xz cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.tar.zst cuberite-013da806ec20b62a742aded9a9d2b8131193f30d.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 } |