LeviLamina
Loading...
Searching...
No Matches
Rope.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Vec3.h"
7#include "mc/world/phys/AABB.h"
8#include "mc/world/phys/rope/RopeParams.h"
9#include "mc/world/phys/rope/RopePoints.h"
10#include "mc/world/phys/rope/rope_details/AABBPred.h"
11
12// auto generated forward declare list
13// clang-format off
14class BlockSource;
15struct AABBBucket;
16struct RopeNode;
17struct RopeWave;
18// clang-format on
19
20class Rope {
21public:
22 // Rope inner types declare
23 // clang-format off
24 struct IntermediateData;
25 // clang-format on
26
27 // Rope inner types define
29 public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 32, ::RopePoints> mQueuedRenderPoints;
33 ::ll::TypedStorage<4, 12, ::Vec3> mPrevStartPin;
34 ::ll::TypedStorage<4, 12, ::Vec3> mPrevEndPin;
35 ::ll::TypedStorage<4, 12, ::Vec3> mStartPin;
36 ::ll::TypedStorage<4, 12, ::Vec3> mEndPin;
37 ::ll::TypedStorage<8, 8, uint64> mToCutNode;
38 ::ll::TypedStorage<1, 1, bool> mAbandonCollision;
39 // NOLINTEND
40
41 public:
42 // member functions
43 // NOLINTBEGIN
44 MCAPI ~IntermediateData();
45 // NOLINTEND
46
47 public:
48 // destructor thunk
49 // NOLINTBEGIN
50 MCFOLD void $dtor();
51 // NOLINTEND
52 };
53
54public:
55 // member variables
56 // NOLINTBEGIN
57 ::ll::TypedStorage<8, 96, ::Rope::IntermediateData> mIntermediateData;
58 ::ll::TypedStorage<8, 88, ::RopeParams> mParameters;
59 ::ll::TypedStorage<8, 32, ::RopePoints> mRenderPoints;
60 ::ll::TypedStorage<8, 24, ::std::vector<::RopeNode>> mNodes;
61 ::ll::TypedStorage<8, 24, ::std::vector<::AABBBucket>> mColliderBuckets;
62 ::ll::TypedStorage<8, 24, ::std::vector<::RopeWave>> mWaves;
63 ::ll::TypedStorage<8, 16, ::std::set<::AABB, ::RopeDetails::AABBPred>> mDenyListedColliders;
64 ::ll::TypedStorage<8, 8, uint64> mCutNode;
65 ::ll::TypedStorage<8, 8, uint64> mMinNodes;
66 // NOLINTEND
67
68public:
69 // prevent constructor by default
70 Rope& operator=(Rope const&);
71
72public:
73 // member functions
74 // NOLINTBEGIN
75 MCAPI Rope();
76
77 MCAPI Rope(::Rope const&);
78
79 MCAPI void _finalizeBucket(::AABBBucket& bucket);
80
81 MCAPI void _integrate();
82
83 MCAPI void _pruneDenyList();
84
85 MCAPI void _resize();
86
87 MCAPI float _solveCollisions(bool checkDenyList);
88
89 MCAPI float _solveDistanceConstraints1();
90
91 MCAPI float _solveDistanceConstraints3();
92
93 MCAPI void _solveFrictionConstraints();
94
95 MCAPI bool cacheColliders(::BlockSource& region);
96
97 MCAPI void initializePins(::std::optional<::RopeParams> parameters);
98
99 MCAPI void prepareAABBBucketsForNextFrame();
100
101 MCAPI void tick();
102
103 MCAPI void tickWaves();
104
105 MCAPI uint64 updateRenderPoints();
106
107 MCAPI ~Rope();
108 // NOLINTEND
109
110public:
111 // constructor thunks
112 // NOLINTBEGIN
113 MCAPI void* $ctor();
114
115 MCAPI void* $ctor(::Rope const&);
116 // NOLINTEND
117
118public:
119 // destructor thunk
120 // NOLINTBEGIN
121 MCAPI void $dtor();
122 // NOLINTEND
123};
Definition BlockSource.h:73
Definition AABBBucket.h:13
Definition RopeNode.h:8
Definition RopeWave.h:5
Definition Rope.h:28