LeviLamina
Loading...
Searching...
No Matches
ParticleMotionCollisionComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/particlesystem/particle/components/ParticleMotionComponentBase.h"
7#include "mc/deps/core/math/Vec3.h"
8#include "mc/deps/core/string/HashedString.h"
9#include "mc/util/molang/ExpressionNode.h"
10
11// auto generated forward declare list
12// clang-format off
13class RenderParams;
15namespace Json { class Value; }
16namespace ParticleSystem { class ComponentAccessParticleEmitter; }
17namespace ParticleSystem { struct CommonParticle; }
18namespace SharedTypes::v1_20_80 { struct ParticleEffectComponent; }
19// clang-format on
20
21namespace ParticleSystem {
22
23class ParticleMotionCollisionComponent : public ::ParticleSystem::ParticleMotionComponentBase {
24public:
25 // ParticleMotionCollisionComponent inner types declare
26 // clang-format off
27 struct SweepResult;
28 // clang-format on
29
30 // ParticleMotionCollisionComponent inner types define
31 struct SweepResult {
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<4, 12, ::Vec3> mFrom;
36 ::ll::TypedStorage<4, 12, ::Vec3> mTo;
37 ::ll::TypedStorage<4, 12, ::Vec3> mVelocity;
38 ::ll::TypedStorage<4, 12, ::Vec3> mIntersectionNorm;
39 ::ll::TypedStorage<1, 1, bool> mHit;
40 // NOLINTEND
41 };
42
43public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<8, 16, ::ExpressionNode> mCollisionEnabledExpr;
47 ::ll::TypedStorage<4, 4, float> mCollisionDrag;
48 ::ll::TypedStorage<4, 4, float> mCoefficientOfRestitution;
49 ::ll::TypedStorage<4, 12, ::Vec3> mCollisionRadius;
50 ::ll::TypedStorage<1, 1, bool> mExpireOnContact;
51 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<float, ::HashedString>>> mCollisionEvents;
52 // NOLINTEND
53
54public:
55 // virtual functions
56 // NOLINTBEGIN
57 virtual void initializeFromData(::SharedTypes::v1_20_80::ParticleEffectComponent& data) /*override*/;
58
59 virtual void upgradeToSharedTypes(::SharedTypes::v1_20_80::ParticleEffectComponent& data) /*override*/;
60
61 virtual void parseJson(::ConstDeserializeDataParams const& deserializeDataParams) /*override*/;
62
63 virtual void updateParticleMotion(
64 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
65 ::ParticleSystem::CommonParticle& particle,
66 ::RenderParams& renderParams,
67 ::std::chrono::nanoseconds const& dt
68 ) /*override*/;
69
70 virtual int getSortOrderNumber() const /*override*/;
71 // NOLINTEND
72
73public:
74 // member functions
75 // NOLINTBEGIN
76 MCAPI void _extractEvent(::Json::Value const& event);
77
78 MCAPI ::ParticleSystem::ParticleMotionCollisionComponent::SweepResult _sweep(
79 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
80 ::ParticleSystem::ParticleMotionCollisionComponent::SweepResult const& previousRay,
81 ::Vec3 const& collisionRadius,
82 uint iteration
83 );
84 // NOLINTEND
85
86public:
87 // virtual function thunks
88 // NOLINTBEGIN
89 MCAPI void $initializeFromData(::SharedTypes::v1_20_80::ParticleEffectComponent& data);
90
91 MCAPI void $upgradeToSharedTypes(::SharedTypes::v1_20_80::ParticleEffectComponent& data);
92
93 MCAPI void $parseJson(::ConstDeserializeDataParams const& deserializeDataParams);
94
95 MCAPI void $updateParticleMotion(
96 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
97 ::ParticleSystem::CommonParticle& particle,
98 ::RenderParams& renderParams,
99 ::std::chrono::nanoseconds const& dt
100 );
101
102 MCFOLD int $getSortOrderNumber() const;
103 // NOLINTEND
104};
105
106} // namespace ParticleSystem
Definition Value.h:16
Definition ComponentAccessParticleEmitter.h:7
Definition ParticleMotionCollisionComponent.h:7
Definition RenderParams.h:29
Definition ConstDeserializeDataParams.h:13
Definition CommonParticle.h:7
Definition ParticleMotionCollisionComponent.h:15
Definition ParticleEffectComponent.h:12