Merge pull request #2985 from marvinkopf/poweredrail
Update RedstoneSimulator to delete unused cached PowerData
This commit is contained in:
commit
3c272b55ea
@ -125,8 +125,11 @@ void cIncrementalRedstoneSimulator::Simulate(float a_dt)
|
||||
}
|
||||
|
||||
auto CurrentHandler = cIncrementalRedstoneSimulator::CreateComponent(m_World, CurrentBlock, &m_Data);
|
||||
if (CurrentHandler == nullptr)
|
||||
if (CurrentHandler == nullptr) // Block at CurrentPosition doesn't have a corresponding redstone handler
|
||||
{
|
||||
// Clean up cached PowerData for CurrentPosition
|
||||
static_cast<cIncrementalRedstoneSimulator *>(m_World.GetRedstoneSimulator())->GetChunkData()->ErasePowerData(CurrentLocation);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -41,6 +41,12 @@ public:
|
||||
return (Result == m_MechanismDelays.end()) ? nullptr : &Result->second;
|
||||
}
|
||||
|
||||
/** Erase cached PowerData for position */
|
||||
void ErasePowerData(const Vector3i & a_Position)
|
||||
{
|
||||
m_CachedPowerLevels.erase(a_Position);
|
||||
}
|
||||
|
||||
cRedstoneHandler::PoweringData ExchangeUpdateOncePowerData(const Vector3i & a_Position, cRedstoneHandler::PoweringData a_PoweringData)
|
||||
{
|
||||
auto Result = m_CachedPowerLevels.find(a_Position);
|
||||
|
Loading…
Reference in New Issue
Block a user