From 5b62c4c3145c08b093521e42c565922fa85de4ad Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Fri, 26 Jun 2015 17:24:51 -0500 Subject: Reorganised the redstone simulator -> Many thanks to @worktycho for the idea, and @Haxi52 for the implementation plan! * Uses classes and inheritance now * Speed should be improved --- src/Simulator/RedstoneSimulator.h | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/Simulator/RedstoneSimulator.h') diff --git a/src/Simulator/RedstoneSimulator.h b/src/Simulator/RedstoneSimulator.h index b0ad08aa4..863ba2532 100644 --- a/src/Simulator/RedstoneSimulator.h +++ b/src/Simulator/RedstoneSimulator.h @@ -1,30 +1,41 @@ #pragma once -#include "Simulator.h" +#include "ChunkDef.h" +#include "Simulator/Simulator.h" + + + class cRedstoneSimulatorChunkData { public: virtual ~cRedstoneSimulatorChunkData() = 0; -} ; - +}; inline cRedstoneSimulatorChunkData::~cRedstoneSimulatorChunkData() {} + + + class cRedstoneSimulator : public cSimulator { typedef cSimulator super; - public: + cRedstoneSimulator(cWorld & a_World) : - super(a_World) + super(a_World) { } - + + virtual void Simulate(float a_Dt) = 0; + virtual void SimulateChunk(std::chrono::milliseconds a_Dt, int a_ChunkX, int a_ChunkZ, cChunk * a_Chunk) = 0; + virtual bool IsAllowedBlock(BLOCKTYPE a_BlockType) = 0; + virtual void AddBlock(int a_BlockX, int a_BlockY, int a_BlockZ, cChunk * a_Chunk) = 0; + virtual cRedstoneSimulatorChunkData * CreateChunkData() = 0; -} ; +}; -- cgit v1.2.3