Revert "Replace ItemCallbacks with lambdas (#3948)"
This reverts commit 496c337cdf.
This commit is contained in:
committed by
Alexander Harkness
parent
700bbdabf5
commit
49c443896d
@@ -193,7 +193,8 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
{
|
||||
UNUSED(a_CurrentTick);
|
||||
|
||||
class cHopperPickupSearchCallback
|
||||
class cHopperPickupSearchCallback :
|
||||
public cEntityCallback
|
||||
{
|
||||
public:
|
||||
cHopperPickupSearchCallback(const Vector3i & a_Pos, cItemGrid & a_Contents) :
|
||||
@@ -203,20 +204,22 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
{
|
||||
}
|
||||
|
||||
bool operator () (cEntity & a_Entity)
|
||||
virtual bool Item(cEntity * a_Entity) override
|
||||
{
|
||||
if (!a_Entity.IsPickup())
|
||||
ASSERT(a_Entity != nullptr);
|
||||
|
||||
if (!a_Entity->IsPickup())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Vector3f EntityPos = a_Entity.GetPosition();
|
||||
Vector3f EntityPos = a_Entity->GetPosition();
|
||||
Vector3f BlockPos(m_Pos.x + 0.5f, static_cast<float>(m_Pos.y) + 1, m_Pos.z + 0.5f); // One block above hopper, and search from center outwards
|
||||
double Distance = (EntityPos - BlockPos).Length();
|
||||
|
||||
if (Distance < 0.5)
|
||||
{
|
||||
if (TrySuckPickupIn(static_cast<cPickup &>(a_Entity)))
|
||||
if (TrySuckPickupIn(static_cast<cPickup *>(a_Entity)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -225,9 +228,9 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TrySuckPickupIn(cPickup & a_Pickup)
|
||||
bool TrySuckPickupIn(cPickup * a_Pickup)
|
||||
{
|
||||
cItem & Item = a_Pickup.GetItem();
|
||||
cItem & Item = a_Pickup->GetItem();
|
||||
|
||||
for (int i = 0; i < ContentsWidth * ContentsHeight; i++)
|
||||
{
|
||||
@@ -235,7 +238,7 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
{
|
||||
m_bFoundPickupsAbove = true;
|
||||
m_Contents.SetSlot(i, Item);
|
||||
a_Pickup.Destroy(); // Kill pickup
|
||||
a_Pickup->Destroy(); // Kill pickup
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -249,7 +252,7 @@ bool cHopperEntity::MovePickupsIn(cChunk & a_Chunk, Int64 a_CurrentTick)
|
||||
|
||||
if (Item.IsEmpty())
|
||||
{
|
||||
a_Pickup.Destroy(); // Kill pickup if all items were added
|
||||
a_Pickup->Destroy(); // Kill pickup if all items were added
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user