1212#include " ll/api/service/Bedrock.h"
1313#include " lse/api/MoreGlobal.h"
1414#include " lse/api/helper/AttributeHelper.h"
15+ #include " lse/api/helper/BlockHelper.h"
1516#include " mc/deps/core/math/Vec2.h"
1617#include " mc/deps/shared_types/legacy/actor/ActorDamageCause.h"
18+ #include " mc/deps/vanilla_components/ActorDataFlagComponent.h"
1719#include " mc/deps/vanilla_components/StateVectorComponent.h"
18- #include " mc/entity/components/ActorRotationComponent.h"
1920#include " mc/entity/components/InsideBlockComponent.h"
2021#include " mc/entity/components/IsOnHotBlockFlagComponent.h"
2122#include " mc/entity/components/TagsComponent.h"
@@ -316,7 +317,9 @@ Local<Value> EntityClass::isDancing() {
316317 Actor* entity = get ();
317318 if (!entity) return Local<Value>();
318319
319- return Boolean::newBoolean (entity->isDancing ());
320+ return Boolean::newBoolean (
321+ SynchedActorDataAccess::getActorFlag (entity->getEntityContext (), ActorFlags::Dancing)
322+ );
320323 }
321324 CATCH (" Fail in isDancing!" )
322325}
@@ -356,7 +359,8 @@ Local<Value> EntityClass::isMoving() {
356359 Actor* entity = get ();
357360 if (!entity) return Local<Value>();
358361
359- return Boolean::newBoolean (SynchedActorDataAccess::getActorFlag (entity->getEntityContext (), ActorFlags::Moving)
362+ return Boolean::newBoolean (
363+ SynchedActorDataAccess::getActorFlag (entity->getEntityContext (), ActorFlags::Moving)
360364 );
361365 }
362366 CATCH (" Fail in isMoving!" )
@@ -397,7 +401,7 @@ Local<Value> EntityClass::getPos() {
397401 Actor* entity = get ();
398402 if (!entity) return Local<Value>();
399403
400- return FloatPos::newPos (entity->getPosition (), entity->getDimensionId () );
404+ return FloatPos::newPos (entity->getPosition (), entity->getDimension (). mId -> id );
401405 }
402406 CATCH (" Fail in GetEntityPos!" )
403407}
@@ -407,7 +411,7 @@ Local<Value> EntityClass::getPosDelta() {
407411 Actor* entity = get ();
408412 if (!entity) return Local<Value>();
409413
410- return FloatPos::newPos (entity->getPosDelta (), entity->getDimensionId () );
414+ return FloatPos::newPos (entity->getPosDelta (), entity->getDimension (). mId -> id );
411415 }
412416 CATCH (" Fail in GetEntityPosDelta!" )
413417}
@@ -446,7 +450,7 @@ Local<Value> EntityClass::getFeetPos() {
446450 Actor* entity = get ();
447451 if (!entity) return Local<Value>();
448452
449- return FloatPos::newPos (entity->getFeetPos (), entity->getDimensionId () );
453+ return FloatPos::newPos (entity->getFeetPos (), entity->getDimension (). mId -> id );
450454 }
451455 CATCH (" Fail in GetEntityFeetPos!" )
452456}
@@ -456,7 +460,7 @@ Local<Value> EntityClass::getBlockPos() {
456460 Actor* entity = get ();
457461 if (!entity) return Local<Value>();
458462
459- return IntPos::newPos (entity->getFeetBlockPos (), entity->getDimensionId () );
463+ return IntPos::newPos (entity->getFeetBlockPos (), entity->getDimension (). mId -> id );
460464 }
461465 CATCH (" Fail in GetEntityBlockPos!" )
462466}
@@ -742,7 +746,7 @@ Local<Value> EntityClass::distanceTo(const Arguments& args) {
742746 pos.x = targetActorPos.x ;
743747 pos.y = targetActorPos.y ;
744748 pos.z = targetActorPos.z ;
745- pos.dim = targetActor->getDimensionId () ;
749+ pos.dim = targetActor->getDimension (). mId -> id ;
746750 } else {
747751 LOG_WRONG_ARG_TYPE (__FUNCTION__);
748752 return Local<Value>();
@@ -763,9 +767,9 @@ Local<Value> EntityClass::distanceTo(const Arguments& args) {
763767 return Local<Value>();
764768 }
765769
766- if (actor->getDimensionId ().id != pos.dim ) return Number::newNumber (INT_MAX);
770+ if (actor->getDimension ().mId -> id != pos.dim ) return Number::newNumber (INT_MAX);
767771
768- return Number::newNumber (actor->distanceTo (pos.getVec3 ()));
772+ return Number::newNumber (actor->getPosition (). distanceTo (pos.getVec3 ()));
769773 }
770774 CATCH (" Fail in distanceTo!" )
771775}
@@ -805,7 +809,7 @@ Local<Value> EntityClass::distanceToSqr(const Arguments& args) {
805809 pos.x = targetActorPos.x ;
806810 pos.y = targetActorPos.y ;
807811 pos.z = targetActorPos.z ;
808- pos.dim = targetActor->getDimensionId () ;
812+ pos.dim = targetActor->getDimension (). mId -> id ;
809813 } else {
810814 LOG_WRONG_ARG_TYPE (__FUNCTION__);
811815 return Local<Value>();
@@ -826,9 +830,9 @@ Local<Value> EntityClass::distanceToSqr(const Arguments& args) {
826830 return Local<Value>();
827831 }
828832
829- if (actor->getDimensionId ().id != pos.dim ) return Number::newNumber (INT_MAX);
833+ if (actor->getDimension ().mId -> id != pos.dim ) return Number::newNumber (INT_MAX);
830834
831- return Number::newNumber (actor->distanceToSqr (pos.getVec3 ()));
835+ return Number::newNumber (actor->getPosition (). distanceToSqr (pos.getVec3 ()));
832836 }
833837 CATCH (" Fail in distanceToSqr!" )
834838}
@@ -913,7 +917,7 @@ Local<Value> EntityClass::getBlockStandingOn(const Arguments&) {
913917 Actor* entity = get ();
914918 if (!entity) return Local<Value>();
915919
916- return BlockClass::newBlock (entity->getBlockPosCurrentlyStandingOn (nullptr ), entity->getDimensionId () );
920+ return BlockClass::newBlock (entity->getBlockPosCurrentlyStandingOn (nullptr ), entity->getDimension (). mId -> id );
917921 }
918922 CATCH (" Fail in getBlockStandingOn!" );
919923}
@@ -1379,7 +1383,7 @@ Local<Value> EntityClass::getBlockFromViewVector(const Arguments& args) {
13791383 if (solidOnly && !block.mCachedComponentData ->mIsSolid ) {
13801384 return false ;
13811385 }
1382- if (fullOnly && !block.isSlabBlock ()) {
1386+ if (fullOnly && !block.getBlockType (). isSlabBlock ()) {
13831387 return false ;
13841388 }
13851389 if (!includeLiquid && BlockUtils::isLiquidSource (block)) {
@@ -1397,12 +1401,13 @@ Local<Value> EntityClass::getBlockFromViewVector(const Arguments& args) {
13971401 } else {
13981402 bp = res.mBlock ;
13991403 }
1400- Block const & bl = actor->getDimensionBlockSource ().getBlock (bp);
1404+ Block const & bl = actor->getDimensionBlockSource ().getBlock (bp);
14011405 BlockType const & legacy = bl.getBlockType ();
1402- if (bl.isAir () || (legacy.mProperties == BlockProperty::None && legacy.mMaterial .mType == MaterialType::Any)) {
1406+ if (lse::api::BlockHelper::isAir (bl)
1407+ || (legacy.mProperties == BlockProperty::None && legacy.mMaterial .mType == MaterialType::Any)) {
14031408 return Local<Value>();
14041409 }
1405- return BlockClass::newBlock (bl, bp, actor->getDimensionId () );
1410+ return BlockClass::newBlock (bl, bp, actor->getDimension (). mId );
14061411 }
14071412 CATCH (" Fail in getBlockFromViewVector!" );
14081413}
@@ -1795,16 +1800,18 @@ Local<Value> McClass::explode(const Arguments& args) {
17951800 bool isDestroy = args[beginIndex + 2 ].asBoolean ().value ();
17961801 bool isFire = args[beginIndex + 3 ].asBoolean ().value ();
17971802
1798- return Boolean::newBoolean (ll::service::getLevel ()->explode (
1799- ll::service::getLevel ()->getDimension (pos.dim ).lock ()->getBlockSourceFromMainChunkSource (),
1800- source.value_or (nullptr ),
1801- pos.getVec3 (),
1802- radius,
1803- isFire,
1804- isDestroy,
1805- FLT_MAX,
1806- false
1807- ));
1803+ return Boolean::newBoolean (
1804+ ll::service::getLevel ()->explode (
1805+ ll::service::getLevel ()->getDimension (pos.dim ).lock ()->getBlockSourceFromMainChunkSource (),
1806+ source.value_or (nullptr ),
1807+ pos.getVec3 (),
1808+ radius,
1809+ isFire,
1810+ isDestroy,
1811+ FLT_MAX,
1812+ false
1813+ )
1814+ );
18081815 } else {
18091816 CHECK_ARG_TYPE (args[beginIndex + 1 ], ValueKind::kNumber );
18101817 CHECK_ARG_TYPE (args[beginIndex + 2 ], ValueKind::kNumber );
@@ -1816,16 +1823,18 @@ Local<Value> McClass::explode(const Arguments& args) {
18161823 bool isDestroy = args[beginIndex + 3 ].asBoolean ().value ();
18171824 bool isFire = args[beginIndex + 4 ].asBoolean ().value ();
18181825
1819- return Boolean::newBoolean (ll::service::getLevel ()->explode (
1820- ll::service::getLevel ()->getDimension (pos.dim ).lock ()->getBlockSourceFromMainChunkSource (),
1821- source.value_or (nullptr ),
1822- pos.getVec3 (),
1823- radius,
1824- isFire,
1825- isDestroy,
1826- maxResistance,
1827- false
1828- ));
1826+ return Boolean::newBoolean (
1827+ ll::service::getLevel ()->explode (
1828+ ll::service::getLevel ()->getDimension (pos.dim ).lock ()->getBlockSourceFromMainChunkSource (),
1829+ source.value_or (nullptr ),
1830+ pos.getVec3 (),
1831+ radius,
1832+ isFire,
1833+ isDestroy,
1834+ maxResistance,
1835+ false
1836+ )
1837+ );
18291838 }
18301839 }
18311840 CATCH (" Fail in Explode!" );
0 commit comments