24 ::ll::TypedStorage<1, 1, bool> mWaveApplied;
25 ::ll::TypedStorage<8, 32, ::RopePoints> mQueuedRenderPoints;
26 ::ll::TypedStorage<8, 32, ::RopePoints> mRenderPoints;
27 ::ll::TypedStorage<8, 24, ::std::vector<::RopeNode>> mNodes;
28 ::ll::TypedStorage<8, 24, ::std::vector<::AABBBucket>> mColliderBuckets;
29 ::ll::TypedStorage<8, 24, ::std::vector<::RopeWave>> mWaves;
30 ::ll::TypedStorage<8, 88, ::RopeParams> mParams;
31 ::ll::TypedStorage<8, 16, ::std::set<::AABB, ::AABBPred>> mDenyListedColliders;
32 ::ll::TypedStorage<4, 12, ::Vec3> mPrevStartPin;
33 ::ll::TypedStorage<4, 12, ::Vec3> mPrevEndPin;
34 ::ll::TypedStorage<8, 8, uint64> mCutNode;
35 ::ll::TypedStorage<8, 8, uint64> mCutRenderNode;
36 ::ll::TypedStorage<8, 8, uint64> mMinNodes;
37 ::ll::TypedStorage<8, 8, uint64> mCutTicks;
38 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mEndPinEntity;
39 ::ll::TypedStorage<4, 4, ::std::atomic_flag> mTicking;
40 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mRenderMutex;
41 ::ll::TypedStorage<1, 1, bool> mAbandonCollision;
42 ::ll::TypedStorage<4, 12, ::Vec3> mStartPin;
43 ::ll::TypedStorage<4, 12, ::Vec3> mEndPin;
44 ::ll::TypedStorage<8, 8, uint64> mToCutNode;
56 MCAPI
void _initializePins();
58 MCAPI
void _integrate();
60 MCAPI
void _prepareAABBBuckets();
62 MCAPI
void _pruneDenyList();
64 MCAPI
void _pushRange(uint64 begin, uint64 end);
66 MCAPI
void _resizeRope();
68 MCAPI
float _solveCollisions(
bool checkDenyList);
70 MCAPI
float _solveDistanceConstraint(
::Vec3& a,
::Vec3& b,
float targetDist);
74 MCAPI
float _solveDistanceConstraints1();
76 MCAPI
float _solveDistanceConstraints3();
80 MCAPI
void _tickWaves();
82 MCAPI
void _updateRenderPoints();
84 MCAPI
void queueTick(
::BlockSource& region, ::std::shared_ptr<::RopeSystem>& self);
92 MCAPI
static bool& sEnabled();