2014-01-20 12:17:24 -05:00
|
|
|
|
2014-02-18 02:25:29 -05:00
|
|
|
// ForEachChunkProvider.h
|
|
|
|
|
|
|
|
// Declares the cForEachChunkProvider class which acts as an interface for classes that provide a ForEachChunkInRect() function
|
|
|
|
// Primarily serves as a decoupling between cBlockArea and cWorld
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-20 13:15:19 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
2014-02-18 02:25:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
// fwd:
|
|
|
|
class cChunkDataCallback;
|
2014-01-20 12:17:24 -05:00
|
|
|
class cBlockArea;
|
|
|
|
|
2014-02-18 02:25:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-20 12:17:24 -05:00
|
|
|
class cForEachChunkProvider
|
|
|
|
{
|
|
|
|
public:
|
2014-03-28 16:35:45 -04:00
|
|
|
virtual ~cForEachChunkProvider() {}
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-02-18 02:25:29 -05:00
|
|
|
/** Calls the callback for each chunk in the specified range. */
|
2014-01-20 12:17:24 -05:00
|
|
|
virtual bool ForEachChunkInRect(int a_MinChunkX, int a_MaxChunkX, int a_MinChunkZ, int a_MaxChunkZ, cChunkDataCallback & a_Callback) = 0;
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-02-18 02:25:29 -05:00
|
|
|
/** Writes the block area into the specified coords.
|
|
|
|
Returns true if all chunks have been processed.
|
|
|
|
a_DataTypes is a bitmask of cBlockArea::baXXX constants ORed together.
|
|
|
|
*/
|
2014-01-20 12:17:24 -05:00
|
|
|
virtual bool WriteBlockArea(cBlockArea & a_Area, int a_MinBlockX, int a_MinBlockY, int a_MinBlockZ, int a_DataTypes) = 0;
|
|
|
|
};
|
2014-02-18 02:25:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|