diff options
Diffstat (limited to 'src/Simulator/IncrementalRedstoneSimulator/RedstoneHandler.h')
-rw-r--r-- | src/Simulator/IncrementalRedstoneSimulator/RedstoneHandler.h | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/src/Simulator/IncrementalRedstoneSimulator/RedstoneHandler.h b/src/Simulator/IncrementalRedstoneSimulator/RedstoneHandler.h index fdac7901f..42334e58b 100644 --- a/src/Simulator/IncrementalRedstoneSimulator/RedstoneHandler.h +++ b/src/Simulator/IncrementalRedstoneSimulator/RedstoneHandler.h @@ -16,19 +16,40 @@ class ForEachSourceCallback; namespace RedstoneHandler { - /** Asks a redstone component at the source position how much power it will deliver to the querying position. - If IsLinked is true, QueryPosition should point to the intermediate conduit block. - The Position and QueryPosition are both relative to Chunk. */ - PowerLevel GetPowerDeliveredToPosition(const cChunk & Chunk, Vector3i Position, BLOCKTYPE BlockType, Vector3i QueryPosition, BLOCKTYPE QueryBlockType, bool IsLinked); - - /** Tells a redstone component at this position to update itself. - PowerLevel represents the maximum power level all of its source positions gave to it. - Position is relative to Chunk, but if the component needs to queue neighbour updates, they are queued to CurrentlyTicking. */ - void Update(cChunk & Chunk, cChunk & CurrentlyTicking, Vector3i Position, BLOCKTYPE BlockType, NIBBLETYPE Meta, PowerLevel PowerLevel); - - /** Invokes Callback for each position this component can accept power from. */ - void ForValidSourcePositions(const cChunk & Chunk, Vector3i Position, BLOCKTYPE BlockType, NIBBLETYPE Meta, ForEachSourceCallback & Callback); - - /** Temporary: compute and set the block state of a redstone wire. */ - void SetWireState(const cChunk & Chunk, Vector3i Position); -} +/** Asks a redstone component at the source position how much power it will deliver to the querying position. +If IsLinked is true, QueryPosition should point to the intermediate conduit block. +The Position and QueryPosition are both relative to Chunk. */ +PowerLevel GetPowerDeliveredToPosition( + const cChunk & Chunk, + Vector3i Position, + BLOCKTYPE BlockType, + Vector3i QueryPosition, + BLOCKTYPE QueryBlockType, + bool IsLinked +); + +/** Tells a redstone component at this position to update itself. +PowerLevel represents the maximum power level all of its source positions gave to it. +Position is relative to Chunk, but if the component needs to queue neighbour updates, they are queued to +CurrentlyTicking. */ +void Update( + cChunk & Chunk, + cChunk & CurrentlyTicking, + Vector3i Position, + BLOCKTYPE BlockType, + NIBBLETYPE Meta, + PowerLevel PowerLevel +); + +/** Invokes Callback for each position this component can accept power from. */ +void ForValidSourcePositions( + const cChunk & Chunk, + Vector3i Position, + BLOCKTYPE BlockType, + NIBBLETYPE Meta, + ForEachSourceCallback & Callback +); + +/** Temporary: compute and set the block state of a redstone wire. */ +void SetWireState(const cChunk & Chunk, Vector3i Position); +} // namespace RedstoneHandler |