Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleActions.h
1#pragma once
2
3#include <EditorPluginParticle/EditorPluginParticleDLL.h>
4#include <GuiFoundation/Action/BaseActions.h>
5#include <GuiFoundation/GuiFoundationDLL.h>
6
9
11{
12public:
13 static void RegisterActions();
14 static void UnregisterActions();
15
16 static void MapActions(plStringView sMapping);
17
18 static plActionDescriptorHandle s_hCategory;
19 static plActionDescriptorHandle s_hPauseEffect;
20 static plActionDescriptorHandle s_hRestartEffect;
21 static plActionDescriptorHandle s_hAutoRestart;
22 static plActionDescriptorHandle s_hSimulationSpeedMenu;
23 static plActionDescriptorHandle s_hSimulationSpeed[10];
24 static plActionDescriptorHandle s_hRenderVisualizers;
25};
26
28{
29 PL_ADD_DYNAMIC_REFLECTION(plParticleAction, plButtonAction);
30
31public:
32 enum class ActionType
33 {
34 PauseEffect,
35 RestartEffect,
36 AutoRestart,
37 SimulationSpeed,
38 RenderVisualizers,
39 };
40
41 plParticleAction(const plActionContext& context, const char* szName, ActionType type, float fSimSpeed = 1.0f);
43
44 virtual void Execute(const plVariant& value) override;
45
46private:
47 void EffectEventHandler(const plParticleEffectAssetEvent& e);
48 void UpdateState();
49
50 plParticleEffectAssetDocument* m_pEffectDocument;
51 ActionType m_Type;
52 float m_fSimSpeed;
53};
Handle for a plAction.
Definition Action.h:27
Definition BaseActions.h:159
Definition ParticleActions.h:28
Definition ParticleActions.h:11
Definition ParticleEffectAsset.h:25
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition Action.h:67
Definition ParticleEffectAsset.h:11