summaryrefslogtreecommitdiffstats
path: root/src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h')
-rw-r--r--src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h b/src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h
index 6d49291cb..66b56aa5a 100644
--- a/src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h
+++ b/src/Simulator/IncrementalRedstoneSimulator/ForEachSourceCallback.h
@@ -13,20 +13,24 @@ public:
ForEachSourceCallback(const cChunk & Chunk, Vector3i Position, BLOCKTYPE CurrentBlock);
- /** Returns whether a potential source position should be treated as linked. */
- bool ShouldQueryLinkedPosition(Vector3i Location, BLOCKTYPE Block);
-
/** Callback invoked for each potential source position of the redstone component. */
void operator()(Vector3i Location);
- /** Asks redstone handlers adjacent to a solid block how much power they will deliver to the querying position, via the solid block.
- Both QueryPosition and SolidBlockPosition are relative to Chunk. */
- static PowerLevel QueryLinkedPower(const cChunk & Chunk, Vector3i QueryPosition, BLOCKTYPE QueryBlock, Vector3i SolidBlockPosition);
+ /** Callback invoked for blocks supporting quasiconnectivity. */
+ void CheckIndirectPower();
+ // The maximum power level of all source locations.
PowerLevel Power;
private:
+ /** Returns whether a potential source position that's occupied by Block should be treated as linked. */
+ static bool ShouldQueryLinkedPosition(BLOCKTYPE Block);
+
+ /** Asks redstone handlers adjacent to a solid block how much power they will deliver to the querying position, via the solid block.
+ Both QueryPosition and SolidBlockPosition are relative to Chunk. */
+ static PowerLevel QueryLinkedPower(const cChunk & Chunk, Vector3i QueryPosition, BLOCKTYPE QueryBlock, Vector3i SolidBlockPosition);
+
const cChunk & m_Chunk;
const Vector3i m_Position;
const BLOCKTYPE m_CurrentBlock;