51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef VOXELALGORITHMS_HEADER
-#define VOXELALGORITHMS_HEADER
+#pragma once
#include "voxel.h"
#include "mapnode.h"
#include "util/container.h"
class Map;
-class ServerMap;
class MapBlock;
class MMVManip;
namespace voxalgo
{
-// TODO: Move unspreadLight and spreadLight from VoxelManipulator to here
-
-void setLight(VoxelManipulator &v, VoxelArea a, u8 light,
- INodeDefManager *ndef);
-
-void clearLightAndCollectSources(VoxelManipulator &v, VoxelArea a,
- enum LightBank bank, INodeDefManager *ndef,
- std::set<v3s16> & light_sources,
- std::map<v3s16, u8> & unlight_from);
-
-struct SunlightPropagateResult
-{
- bool bottom_sunlight_valid;
-
- SunlightPropagateResult(bool bottom_sunlight_valid_):
- bottom_sunlight_valid(bottom_sunlight_valid_)
- {}
-};
-
-SunlightPropagateResult propagateSunlight(VoxelManipulator &v, VoxelArea a,
- bool inexistent_top_provides_sunlight,
- std::set<v3s16> & light_sources,
- INodeDefManager *ndef);
-
/*!
* Updates the lighting on the map.
* The result will be correct only if
*/
void update_lighting_nodes(
Map *map,
- std::vector<std::pair<v3s16, MapNode> > &oldnodes,
+ const std::vector<std::pair<v3s16, MapNode>> &oldnodes,
std::map<v3s16, MapBlock*> &modified_blocks);
/*!
* \param modified_blocks output, contains all map blocks that
* the function modified
*/
-void blit_back_with_light(ServerMap *map, MMVManip *vm,
+void blit_back_with_light(Map *map, MMVManip *vm,
std::map<v3s16, MapBlock*> *modified_blocks);
/*!
*
* \param block the block to update
*/
-void repair_block_light(ServerMap *map, MapBlock *block,
+void repair_block_light(Map *map, MapBlock *block,
std::map<v3s16, MapBlock*> *modified_blocks);
/*!
};
} // namespace voxalgo
-
-
-
-#endif
-