summaryrefslogtreecommitdiffstats
path: root/src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h')
-rw-r--r--src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h37
1 files changed, 7 insertions, 30 deletions
diff --git a/src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h b/src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h
index 4ae4aff3d..80e55faec 100644
--- a/src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h
+++ b/src/Simulator/IncrementalRedstoneSimulator/TrappedChestHandler.h
@@ -1,4 +1,4 @@
-
+
#pragma once
#include "RedstoneHandler.h"
@@ -28,38 +28,15 @@ public:
UNUSED(a_BlockType);
UNUSED(a_Meta);
- class cGetTrappedChestPlayers :
- public cItemCallback<cChestEntity>
- {
- public:
- cGetTrappedChestPlayers(void) :
- m_NumberOfPlayers(0)
- {
- }
-
- virtual ~cGetTrappedChestPlayers() override
- {
- }
-
- virtual bool Item(cChestEntity * a_Chest) override
+ int NumberOfPlayers = 0;
+ VERIFY(!a_World.DoWithChestAt(a_Position.x, a_Position.y, a_Position.z, [&](cChestEntity & a_Chest)
{
- ASSERT(a_Chest->GetBlockType() == E_BLOCK_TRAPPED_CHEST);
- m_NumberOfPlayers = a_Chest->GetNumberOfPlayers();
+ ASSERT(a_Chest.GetBlockType() == E_BLOCK_TRAPPED_CHEST);
+ NumberOfPlayers = a_Chest.GetNumberOfPlayers();
return true;
}
-
- unsigned char GetPowerLevel(void) const
- {
- return static_cast<unsigned char>(std::min(m_NumberOfPlayers, 15));
- }
-
- private:
- int m_NumberOfPlayers;
-
- } GTCP;
-
- VERIFY(!a_World.DoWithChestAt(a_Position.x, a_Position.y, a_Position.z, GTCP));
- return GTCP.GetPowerLevel();
+ ));
+ return static_cast<unsigned char>(std::min(NumberOfPlayers, 15));
}
virtual cVector3iArray Update(cWorld & a_World, Vector3i a_Position, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta, PoweringData a_PoweringData) const override