Cuberite
A lightweight, fast and extensible game server for Minecraft
IncrementalRedstoneSimulator.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "../RedstoneSimulator.h"
5 
6 
7 
8 
9 
11  public cRedstoneSimulator
12 {
14 
15 public:
16 
17  using Super::Super;
18 
19 private:
20 
22  static bool IsAlwaysTicked(BLOCKTYPE a_Block);
23 
25  static bool IsRedstone(BLOCKTYPE a_Block);
26 
27  void ProcessWorkItem(cChunk & Chunk, cChunk & TickingSource, const Vector3i Position);
28 
29  virtual void SimulateChunk(std::chrono::milliseconds Dt, int ChunkX, int ChunkZ, cChunk * Chunk) override;
30  virtual void AddBlock(cChunk & a_Chunk, Vector3i a_Position, BLOCKTYPE a_Block) override;
31  virtual cRedstoneSimulatorChunkData * CreateChunkData() override;
32  virtual void WakeUp(cChunk & a_Chunk, Vector3i a_Position, BLOCKTYPE a_Block) override;
33  virtual void WakeUp(cChunk & a_Chunk, Vector3i a_Position, Vector3i a_Offset, BLOCKTYPE a_Block) override;
34 } ;
unsigned char BLOCKTYPE
The datatype used by blockdata.
Definition: ChunkDef.h:41
Definition: Chunk.h:36
static bool IsRedstone(BLOCKTYPE a_Block)
Returns if a block is any sort of redstone device.
virtual void WakeUp(cChunk &a_Chunk, Vector3i a_Position, BLOCKTYPE a_Block) override
Called to simulate a single new block, typically as a result of a single block break or change.
void ProcessWorkItem(cChunk &Chunk, cChunk &TickingSource, const Vector3i Position)
virtual void AddBlock(cChunk &a_Chunk, Vector3i a_Position, BLOCKTYPE a_Block) override
Called to simulate a new block.
virtual void SimulateChunk(std::chrono::milliseconds Dt, int ChunkX, int ChunkZ, cChunk *Chunk) override
static bool IsAlwaysTicked(BLOCKTYPE a_Block)
Returns if a redstone device is always ticked due to influence by its environment.
virtual cRedstoneSimulatorChunkData * CreateChunkData() override