载入中...
搜索中...
未找到
UnderwaterParticles.cpp
浏览该文件的文档.
2
4
5namespace eve::particles {
6
8 bool active, bool transitionFx, bool entered, bool exited) {
9 if (!ambience || (entered && exited))
12 "particles.underwater: ambience required and transition directions must be exclusive"));
13
14 ambience->setVisible(active);
15 if (active) {
16 if (ambience->isStopped()) ambience->start();
17 } else if (!ambience->isStopped()) {
18 ambience->stop();
19 }
20
21 if (transition && transitionFx && (entered || exited)) {
22 transition->setVisible(true);
23 transition->stop();
24 transition->start();
25 }
26 return Result<void>::success();
27}
28
30 if (!surfaceVfx)
33 "particles.underwaterSurfaceVfx: non-null surface emitter required"));
34
35 surfaceVfx->setVisible(active);
36 if (active) {
37 if (surfaceVfx->isStopped()) surfaceVfx->start();
38 } else if (!surfaceVfx->isStopped()) {
39 surfaceVfx->stop();
40 }
41 return Result<void>::success();
42}
43
44} // namespace eve::particles
bool & active
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
Move-only operation result carrying either a value or Status.
Definition Result.h:155
static Result success(T value)
Construct a successful result owning value.
Definition Result.h:164
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
ECS emitter entity. Script configures components; ParticleSimSystem / ParticleRenderSystem drive per-...
Result< void > applyUnderwaterParticles(ParticleEmitter *ambience, ParticleEmitter *transition, bool active, bool transitionFx, bool entered, bool exited)
Apply Pcg underwater ambience and transition visibility to particle emitters.
Result< void > applyUnderwaterSurfaceVfx(ParticleEmitter *surfaceVfx, bool active)
Apply Pcg's inverse underwater state to one surface weather or VFX emitter.