Recast  1
Game with custom magic
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
ChunkedTemperatureWorld.hpp
Go to the documentation of this file.
1 //
2 // Created by Oleg Morozenkov on 13.06.17.
3 //
4 
5 #ifndef RECAST_SYNCHRONIZEDVECTORCHUNKEDTEMPERATUREWORLD_H
6 #define RECAST_SYNCHRONIZEDVECTORCHUNKEDTEMPERATUREWORLD_H
7 
8 
9 #include <list>
10 #include <memory>
14 
18 class ChunkedTemperatureWorld : public virtual ITemperatureWorldChunkableMutable<ITemperatureWorldChunkable<ITemperatureWorld>> {
19 public:
21 
22  bool hasChunk(Coord x, Coord y, Coord z) const noexcept override;
23  std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> getChunk(Coord x, Coord y, Coord z) const override;
24  void foreachChunk(ForeachChunkFn func) const override;
25 
26  bool has(Coord x, Coord y, Coord z) const noexcept override;
27  Temperature get(Coord x, Coord y, Coord z) const override;
28  void set(Coord x, Coord y, Coord z, Temperature temperature) override;
29  void amplify(Coord x, Coord y, Coord z, Temperature temperature) override;
30 
31  void addChunk(std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> chunk) override;
32  void removeChunk(std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>> chunk) override ;
33 
34  Coord previousCoordX(Coord x) const noexcept override;
35  Coord previousCoordY(Coord y) const noexcept override;
36  Coord previousCoordZ(Coord z) const noexcept override;
37  Coord nextCoordX(Coord x) const noexcept override;
38  Coord nextCoordY(Coord y) const noexcept override;
39  Coord nextCoordZ(Coord z) const noexcept override;
40 
41 protected:
42  std::list<std::shared_ptr<ITemperatureWorldBoundable<ITemperatureWorld>>> _chunks;
43 };
44 
45 
46 #endif //RECAST_SYNCHRONIZEDVECTORCHUNKEDTEMPERATUREWORLD_H
Definition: ITemperatureWorldChunkableMutable.hpp:40
void removeChunk(std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
Definition: ChunkedTemperatureWorld.cpp:57
Definition: Temperature.hpp:15
Coord nextCoordY(Coord y) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:77
std::list< std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > > _chunks
Definition: ChunkedTemperatureWorld.hpp:42
bool hasChunk(Coord x, Coord y, Coord z) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:13
Definition: Coord.hpp:16
void foreachChunk(ForeachChunkFn func) const override
Definition: ChunkedTemperatureWorld.cpp:31
Coord nextCoordX(Coord x) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:73
void set(Coord x, Coord y, Coord z, Temperature temperature) override
Definition: ChunkedTemperatureWorld.cpp:45
Coord previousCoordZ(Coord z) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:69
void addChunk(std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> chunk) override
Definition: ChunkedTemperatureWorld.cpp:53
std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld > > getChunk(Coord x, Coord y, Coord z) const override
Definition: ChunkedTemperatureWorld.cpp:22
bool has(Coord x, Coord y, Coord z) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:37
Coord nextCoordZ(Coord z) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:81
ChunkedTemperatureWorld()
Definition: ChunkedTemperatureWorld.cpp:10
Definition: ChunkedTemperatureWorld.hpp:18
Coord previousCoordY(Coord y) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:65
Coord previousCoordX(Coord x) const noexceptoverride
Definition: ChunkedTemperatureWorld.cpp:61
std::function< void(const std::shared_ptr< ITemperatureWorldBoundable< ITemperatureWorld >> &)> ForeachChunkFn
Definition: ITemperatureWorldChunkable.hpp:19
void amplify(Coord x, Coord y, Coord z, Temperature temperature) override
Definition: ChunkedTemperatureWorld.cpp:49