3#include "mc/_HeaderOutputPredefine.h"
21namespace ParticleSystem {
27 virtual ~ParticleEmitter() =
default;
29 virtual void setActorBindInfo(
30 ::Dimension* dimension,
31 ::ActorUniqueID actorId,
32 ::HashedString
const& locator,
36 virtual void setActorBindInfo(::WeakEntityRef actorRef, ::HashedString
const& locator, ::Vec3
const& offset) = 0;
38 virtual void setActorBindInfo(::Actor* actor, ::HashedString
const& locator, ::Vec3
const& offset) = 0;
40 virtual void setEnableUpdate(
bool enable) = 0;
42 virtual void setEnableRender(
bool enable) = 0;
44 virtual void runInitializationScript(::ExpressionNode
const& initializationScript) = 0;
46 virtual void onBlockChanged(::BlockPos
const& blockPosition) = 0;
48 virtual void expire() = 0;
51 emitParticleManually(::Vec3
const& particlePosition, ::Vec3
const& velocityAdd,
float const scaleMult) = 0;
53 virtual bool isValid()
const = 0;
55 virtual bool isManualEmitter()
const = 0;
57 virtual bool expirationRequested()
const = 0;
59 virtual bool hasExpired()
const = 0;
61 virtual ::AABB
const& getAABB()
const = 0;
63 virtual ::HashedString
const& getEffectName()
const = 0;
65 virtual uint64 getParticleCount()
const = 0;
67 virtual uint64 getEffectEmitterCount()
const = 0;
69 virtual uint64 getEffectParticleCount()
const = 0;
71 virtual uint64 getTotalEmitterCount()
const = 0;
73 virtual uint64 getTotalParticleCount()
const = 0;
75 virtual void tick(::std::chrono::nanoseconds
const& dtIn,
float const a) = 0;
77 virtual void frameUpdate(::ClientFrameUpdateContext& clientFrameUpdateContext) = 0;
79 virtual void extractForRendering(::ParticleRenderData& particleRenderData,
float a) = 0;
81 virtual void setManualParticleEmission(
bool manualParticleEmission) = 0;
83 virtual ::ParticleSystem::ActorBindInfo getActorBindInfo()
const = 0;
89 MCAPI static ::std::atomic<int64>& mEmitterLifetimeCounter();
91 MCAPI static ::std::atomic<int64>& mEmitterRateCounter();
93 MCAPI static ::std::atomic<int64>& mParticleAppearanceCounter();
95 MCAPI static ::std::atomic<int64>& mParticleEmitterTickCount();
97 MCAPI static ::std::atomic<int64>& mParticleLifetimeCounter();
99 MCAPI static ::std::atomic<int64>& mParticleMotionCounter();
Definition ClientFrameUpdateContext.h:5
Definition Dimension.h:86
Definition ExpressionNode.h:34
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 ActorBindInfo.h:7