diff options
Diffstat (limited to 'game/shared/feature.cc')
| -rw-r--r-- | game/shared/feature.cc | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/game/shared/feature.cc b/game/shared/feature.cc deleted file mode 100644 index eb6cceb..0000000 --- a/game/shared/feature.cc +++ /dev/null @@ -1,52 +0,0 @@ -#include "shared/pch.hh" - -#include "shared/feature.hh" - -#include "shared/chunk.hh" -#include "shared/coord.hh" -#include "shared/dimension.hh" -#include "shared/voxel_storage.hh" - -void Feature::place(const voxel_pos& vpos, Dimension* dimension) const -{ - for(const auto [rpos, voxel, overwrite] : (*this)) { - auto it_vpos = vpos + rpos; - auto it_cpos = coord::to_chunk(it_vpos); - - if(auto chunk = dimension->create_chunk(it_cpos)) { - auto it_lpos = coord::to_local(it_vpos); - auto it_index = coord::to_index(it_lpos); - - if(chunk->get_voxel(it_index) && !overwrite) { - // There is something in the way - // and the called intentionally requested - // we do not force feature to overwrite voxels - continue; - } - - chunk->set_voxel(voxel, it_index); - } - } -} - -void Feature::place(const voxel_pos& vpos, const chunk_pos& cpos, VoxelStorage& voxels) const -{ - for(const auto [rpos, voxel, overwrite] : (*this)) { - auto it_vpos = vpos + rpos; - auto it_cpos = coord::to_chunk(it_vpos); - - if(it_cpos == cpos) { - auto it_lpos = coord::to_local(it_vpos); - auto it_index = coord::to_index(it_lpos); - - if(voxels[it_index] && !overwrite) { - // There is something in the way - // and the called intentionally requested - // we do not force feature to overwrite voxels - continue; - } - - voxels[it_index] = voxel; - } - } -} |
