Skip to content

Commit

Permalink
refactor: replace callback with Generator
Browse files Browse the repository at this point in the history
  • Loading branch information
OEOTYAN committed Feb 3, 2025
1 parent 1781258 commit 5eba7aa
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions src/mc/world/level/levelgen/structure/BoundingBox.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include "ll/api/coro/Generator.h"
#include "mc/_HeaderOutputPredefine.h"
#include "mc/world/level/BlockPos.h"

Expand Down Expand Up @@ -28,16 +29,12 @@ class BoundingBox : public ll::math::CommutativeGroup<BoundingBox, BlockPos, Blo
constexpr BoundingBox& operator=(class BoundingBox const& k) noexcept = default;
[[nodiscard]] constexpr BoundingBox(BlockPos const& min, BlockPos const& max) noexcept : min(min), max(max) {}

template <class F>
constexpr bool forEachPos(F&& todo) const {
ll::coro::Generator<BlockPos> forEachPos() const {
for (int dy = min.y; dy <= max.y; ++dy)
for (int dx = min.x; dx <= max.x; ++dx)
for (int dz = min.z; dz <= max.z; ++dz) {
if (!std::invoke(std::forward<F>(todo), BlockPos{dx, dy, dz})) {
return false;
}
co_yield BlockPos{dx, dy, dz};
}
return true;
}

constexpr BoundingBox& merge(BoundingBox const& a) noexcept {
Expand Down

0 comments on commit 5eba7aa

Please sign in to comment.