3#include "mc/_HeaderOutputPredefine.h"
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"
16namespace Json {
class Value; }
22namespace ParticleSystem {
36 ::ll::TypedStorage<4, 12, ::Vec3> mFrom;
37 ::ll::TypedStorage<4, 12, ::Vec3> mTo;
38 ::ll::TypedStorage<4, 12, ::Vec3> mVelocity;
39 ::ll::TypedStorage<4, 12, ::Vec3> mIntersectionNorm;
40 ::ll::TypedStorage<1, 1, bool> mHit;
47 ::ll::TypedStorage<8, 16, ::ExpressionNode> mCollisionEnabledExpr;
48 ::ll::TypedStorage<4, 4, float> mCollisionDrag;
49 ::ll::TypedStorage<4, 4, float> mCoefficientOfRestitution;
50 ::ll::TypedStorage<4, 12, ::Vec3> mCollisionRadius;
51 ::ll::TypedStorage<1, 1, bool> mExpireOnContact;
52 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<float, ::HashedString>>> mCollisionEvents;
58 virtual void initializeFromData(::SharedTypes::v1_20_80::ParticleEffectComponent& data) ;
60 virtual void upgradeToSharedTypes(::SharedTypes::v1_20_80::ParticleEffectComponent& data) ;
62 virtual void parseJson(::ConstDeserializeDataParams
const& deserializeDataParams) ;
64 virtual void updateParticleMotion(
65 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
66 ::ParticleSystem::CommonParticle& particle,
67 ::RenderParams& renderParams,
68 ::std::chrono::nanoseconds
const& dt
71 virtual int getSortOrderNumber() const ;
73 virtual ~ParticleMotionCollisionComponent() = default;
79 MCAPI
void _extractEvent(::Json::Value const& event);
81 MCAPI
void _handleCollisions(
82 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
83 ::ParticleSystem::CommonParticle& particle,
84 ::std::chrono::nanoseconds const& dt
87 MCAPI ::ParticleSystem::ParticleMotionCollisionComponent::
SweepResult _sweep(
88 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
89 ::ParticleSystem::ParticleMotionCollisionComponent::
SweepResult const& previousRay,
90 ::Vec3 const& collisionRadius,
95 ::Vec3 const& currentPosition,
96 ::Vec3 const& lastPosition,
106 MCAPI
void $initializeFromData(::SharedTypes::v1_20_80::ParticleEffectComponent& data);
108 MCAPI
void $upgradeToSharedTypes(::SharedTypes::v1_20_80::ParticleEffectComponent& data);
110 MCAPI
void $parseJson(::ConstDeserializeDataParams const& deserializeDataParams);
112 MCAPI
void $updateParticleMotion(
113 ::ParticleSystem::ComponentAccessParticleEmitter& emitter,
114 ::ParticleSystem::CommonParticle& particle,
115 ::RenderParams& renderParams,
116 ::std::chrono::nanoseconds const& dt
119 MCFOLD
int $getSortOrderNumber() const;
Definition ComponentAccessParticleEmitter.h:7
Definition ParticleMotionCollisionComponent.h:7
static MCAPI void ** $vftable()
Definition RenderParams.h:30
Definition ConstDeserializeDataParams.h:13
Definition CommonParticle.h:7
Definition ParticleMotionCollisionComponent.h:15
Definition ParticleEffectComponent.h:12