summaryrefslogtreecommitdiffstats
path: root/src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp')
-rw-r--r--src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp b/src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp
index 33c0f9523..f2c8b7e65 100644
--- a/src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp
+++ b/src/Simulator/IncrementalRedstoneSimulator/IncrementalRedstoneSimulator.cpp
@@ -273,26 +273,18 @@ void cIncrementalRedstoneSimulator::ProcessWorkItem(cChunk & Chunk, cChunk & Tic
void cIncrementalRedstoneSimulator::AddBlock(cChunk & a_Chunk, Vector3i a_Position, BLOCKTYPE a_Block)
{
- // Can't inspect block, ignore:
- if ((a_Chunk == nullptr) || !a_Chunk->IsValid())
- {
- return;
- }
-
- auto & ChunkData = *static_cast<cIncrementalRedstoneSimulatorChunkData *>(a_Chunk->GetRedstoneSimulatorData());
- const auto Relative = cChunkDef::AbsoluteToRelative(a_Block, a_Chunk->GetPos());
- const auto CurrentBlock = a_Chunk->GetBlock(Relative);
+ auto & ChunkData = *static_cast<cIncrementalRedstoneSimulatorChunkData *>(a_Chunk.GetRedstoneSimulatorData());
- if (!IsRedstone(CurrentBlock))
+ if (!IsRedstone(a_Block))
{
return;
}
- if (IsAlwaysTicked(CurrentBlock))
+ if (IsAlwaysTicked(a_Block))
{
- ChunkData.AlwaysTickedPositions.emplace(Relative);
+ ChunkData.AlwaysTickedPositions.emplace(a_Position);
}
// Always update redstone devices:
- ChunkData.WakeUp(Relative);
+ ChunkData.WakeUp(a_Position);
}