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"
2526
2627#include < exception>
2728
29+ using lse::api::BlockHelper;
30+
2831// ////////////////// Class Definition ////////////////////
2932
3033ClassDefine<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
9276BlockClass::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
10892Local<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
127111Local<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 }
0 commit comments