Replace PowerData struct with PowerLevel
* We no longer need to track the powering block with the removal of SolidBlockHandler. PowerLevel is now just an unsigned char
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace HopperHandler
|
||||
{
|
||||
inline unsigned char GetPowerDeliveredToPosition(const cChunk & a_Chunk, Vector3i a_Position, BLOCKTYPE a_BlockType, Vector3i a_QueryPosition, BLOCKTYPE a_QueryBlockType, bool IsLinked)
|
||||
inline PowerLevel GetPowerDeliveredToPosition(const cChunk & a_Chunk, Vector3i a_Position, BLOCKTYPE a_BlockType, Vector3i a_QueryPosition, BLOCKTYPE a_QueryBlockType, bool IsLinked)
|
||||
{
|
||||
UNUSED(a_Chunk);
|
||||
UNUSED(a_Position);
|
||||
@@ -20,19 +20,19 @@ namespace HopperHandler
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline void Update(cChunk & a_Chunk, cChunk &, Vector3i a_Position, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta, PoweringData a_PoweringData)
|
||||
inline void Update(cChunk & a_Chunk, cChunk &, Vector3i a_Position, BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta, const PowerLevel Power)
|
||||
{
|
||||
// LOGD("Evaluating holey the hopper (%d %d %d)", a_Position.x, a_Position.y, a_Position.z);
|
||||
|
||||
auto Previous = DataForChunk(a_Chunk).ExchangeUpdateOncePowerData(a_Position, a_PoweringData);
|
||||
if (Previous.PowerLevel == a_PoweringData.PowerLevel)
|
||||
const auto Previous = DataForChunk(a_Chunk).ExchangeUpdateOncePowerData(a_Position, Power);
|
||||
if (Previous == Power)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
a_Chunk.DoWithHopperAt(a_Position, [a_PoweringData](cHopperEntity & a_Hopper)
|
||||
a_Chunk.DoWithHopperAt(a_Position, [Power](cHopperEntity & a_Hopper)
|
||||
{
|
||||
a_Hopper.SetLocked(a_PoweringData.PowerLevel != 0);
|
||||
a_Hopper.SetLocked(Power != 0);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user