Skip to content

Commit 0365f76

Browse files
committed
refactor: move BlockHelper to standalone file
1 parent e2aa7b4 commit 0365f76

File tree

3 files changed

+33
-21
lines changed

3 files changed

+33
-21
lines changed

src/legacy/api/BlockAPI.cpp

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "api/McAPI.h"
1010
#include "api/NbtAPI.h"
1111
#include "ll/api/service/Bedrock.h"
12+
#include "lse/api/BlockHelper.h"
1213
#include "mc/deps/core/utility/optional_ref.h"
1314
#include "mc/world/level/BlockSource.h"
1415
#include "mc/world/level/ChunkBlockPos.h"
@@ -25,6 +26,8 @@
2526

2627
#include <exception>
2728

29+
using lse::api::BlockHelper;
30+
2831
//////////////////// Class Definition ////////////////////
2932

3033
ClassDefine<BlockClass> BlockClassBuilder =
@@ -68,25 +71,6 @@ ClassDefine<BlockClass> BlockClassBuilder =
6871
.instanceFunction("getTag", &BlockClass::getNbt)
6972
.build();
7073

71-
namespace lse::api::BlockHelper {
72-
inline bool isValidHeight(WeakRef<Dimension> dimension, std::variant<int, float> height) {
73-
auto dim = dimension.lock();
74-
if (dim) {
75-
if (std::holds_alternative<int>(height)) {
76-
int y = std::get<int>(height);
77-
return dim->mHeightRange->mMin <= y && dim->mHeightRange->mMax >= y;
78-
} else {
79-
float y = std::get<float>(height);
80-
return dim->mHeightRange->mMin <= y && dim->mHeightRange->mMax >= y;
81-
}
82-
}
83-
84-
return false;
85-
}
86-
} // namespace lse::api::BlockHelper
87-
88-
using lse::api::BlockHelper::isValidHeight;
89-
9074
//////////////////// Classes ////////////////////
9175

9276
BlockClass::BlockClass(Block const& block) : ScriptClass(ScriptClass::ConstructFromCpp<BlockClass>{}), block(&block) {
@@ -107,7 +91,7 @@ Local<Object> BlockClass::newBlock(Block const& block, BlockPos const& pos, Dime
10791

10892
Local<Object> BlockClass::newBlock(BlockPos const& pos, DimensionType dim) {
10993
if (auto dimension = ll::service::getLevel()->getDimension(dim).lock()) {
110-
if (isValidHeight(dimension, pos.y)) {
94+
if (BlockHelper::isValidHeight(dimension, pos.y)) {
11195
auto& bl = dimension->getBlockSourceFromMainChunkSource().getBlock(pos);
11296
return BlockClass::newBlock(bl, pos, dim);
11397
}
@@ -127,7 +111,7 @@ Local<Object> BlockClass::newBlock(Block const& block, BlockPos const& pos, Bloc
127111
Local<Object> BlockClass::newBlock(IntVec4 pos) {
128112
BlockPos bp = {(float)pos.x, (float)pos.y, (float)pos.z};
129113
if (auto dimension = ll::service::getLevel()->getDimension(pos.dim).lock()) {
130-
if (isValidHeight(dimension, pos.y)) {
114+
if (BlockHelper::isValidHeight(dimension, pos.y)) {
131115
auto& bl = dimension->getBlockSourceFromMainChunkSource().getBlock(bp);
132116
return BlockClass::newBlock(bl, bp, pos.dim);
133117
}

src/lse/api/BlockHelper.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include "lse/api/BlockHelper.h"
2+
3+
#include "mc/world/level/dimension/DimensionHeightRange.h"
4+
5+
namespace lse::api {
6+
bool BlockHelper::isValidHeight(WeakRef<Dimension> dimension, std::variant<int, float> height) {
7+
auto dim = dimension.lock();
8+
if (dim) {
9+
if (std::holds_alternative<int>(height)) {
10+
int y = std::get<int>(height);
11+
return dim->mHeightRange->mMin <= y && dim->mHeightRange->mMax >= y;
12+
} else {
13+
float y = std::get<float>(height);
14+
return dim->mHeightRange->mMin <= y && dim->mHeightRange->mMax >= y;
15+
}
16+
}
17+
18+
return false;
19+
}
20+
} // namespace lse::api

src/lse/api/BlockHelper.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include "mc/world/level/dimension/Dimension.h"
2+
3+
namespace lse::api {
4+
class BlockHelper {
5+
public:
6+
static bool isValidHeight(WeakRef<Dimension> dimension, std::variant<int, float> height);
7+
};
8+
} // namespace lse::api

0 commit comments

Comments
 (0)