3#include "mc/_HeaderOutputPredefine.h"
22namespace ParticleSystem {
28 virtual ~ParticleEmitter() =
default;
30 virtual void setActorBindInfo(::Dimension*, ::ActorUniqueID, ::HashedString
const&, ::Vec3
const&) = 0;
32 virtual void setActorBindInfo(::WeakEntityRef, ::HashedString
const&, ::Vec3
const&) = 0;
34 virtual void setActorBindInfo(::Actor*, ::HashedString
const&, ::Vec3
const&) = 0;
36 virtual void setEnableUpdate(
bool) = 0;
38 virtual void setEnableRender(
bool) = 0;
40 virtual void runInitializationScript(::ExpressionNode
const&) = 0;
42 virtual void onBlockChanged(::BlockPos
const&) = 0;
44 virtual void expire() = 0;
46 virtual void emitParticleManually(::Vec3
const&, ::Vec3
const&,
float const) = 0;
48 virtual bool isValid()
const = 0;
50 virtual bool isManualEmitter()
const = 0;
52 virtual bool expirationRequested()
const = 0;
54 virtual bool hasExpired()
const = 0;
56 virtual ::AABB
const& getAABB()
const = 0;
58 virtual ::HashedString
const& getEffectName()
const = 0;
60 virtual uint64 getParticleCount()
const = 0;
62 virtual uint64 getEffectEmitterCount()
const = 0;
64 virtual uint64 getEffectParticleCount()
const = 0;
66 virtual uint64 getTotalEmitterCount()
const = 0;
68 virtual uint64 getTotalParticleCount()
const = 0;
70 virtual void tick(::std::chrono::nanoseconds
const&,
float const) = 0;
72 virtual void frameUpdate(::ClientFrameUpdateContext&) = 0;
74 virtual void extractForRendering(::ParticleRenderData&,
float) = 0;
76 virtual void setManualParticleEmission(
bool) = 0;
78 virtual ::ParticleSystem::ActorBindInfo getActorBindInfo()
const = 0;
84 MCAPI
static void initProfileTracking();
90 MCAPI static ::Core::Profile::CounterToken& mEmitterLifetimeCounterToken();
92 MCAPI static ::Core::Profile::CounterToken& mEmitterRateCounterToken();
94 MCAPI static ::Core::Profile::CounterToken& mParticleAppearanceCounterToken();
96 MCAPI static ::Core::Profile::CounterToken& mParticleEmitterTickCountToken();
98 MCAPI static ::Core::Profile::CounterToken& mParticleLifetimeCounterToken();
100 MCAPI static ::Core::Profile::CounterToken& mParticleMotionCounterToken();
Definition CounterToken.h:7
Definition Dimension.h:85
Definition ExpressionNode.h:33
Definition HashedString.h:5
Definition ParticleRenderData.h:5
Definition ParticleEmitter.h:7
static MCAPI void ** $vftable()
Definition WeakEntityRef.h:14
Definition ActorUniqueID.h:5
Definition ClientFrameUpdateContext.h:5
Definition ActorBindInfo.h:7