Plasma Engine  2.0
Loading...
Searching...
No Matches
SceneActions.h
1#pragma once
2
3#include <EditorPluginScene/EditorPluginSceneDLL.h>
4#include <EditorPluginScene/Scene/SceneDocument.h>
5#include <GuiFoundation/Action/BaseActions.h>
6#include <GuiFoundation/GuiFoundationDLL.h>
7
8class plPreferences;
9
11class PL_EDITORPLUGINSCENE_DLL plSceneActions
12{
13public:
14 static void RegisterActions();
15 static void UnregisterActions();
16
17 static void MapMenuActions(plStringView sMapping);
18 static void MapToolbarActions(plStringView sMapping);
19 static void MapViewContextMenuActions(plStringView sMapping);
20
21 static plActionDescriptorHandle s_hSceneCategory;
22 static plActionDescriptorHandle s_hSceneUtilsMenu;
23 static plActionDescriptorHandle s_hExportScene;
24 static plActionDescriptorHandle s_hGameModeSimulate;
25 static plActionDescriptorHandle s_hGameModePlay;
26 static plActionDescriptorHandle s_hGameModePlayFromHere;
27 static plActionDescriptorHandle s_hGameModeStop;
28 static plActionDescriptorHandle s_hUtilExportSceneToOBJ;
29 static plActionDescriptorHandle s_hKeepSimulationChanges;
30 static plActionDescriptorHandle s_hCreateThumbnail;
31 static plActionDescriptorHandle s_hFavoriteCamsMenu;
32 static plActionDescriptorHandle s_hStoreEditorCamera[10];
33 static plActionDescriptorHandle s_hRestoreEditorCamera[10];
34 static plActionDescriptorHandle s_hJumpToCamera[10];
35 static plActionDescriptorHandle s_hCreateLevelCamera[10];
36};
37
39class PL_EDITORPLUGINSCENE_DLL plSceneAction : public plButtonAction
40{
41 PL_ADD_DYNAMIC_REFLECTION(plSceneAction, plButtonAction);
42
43public:
44 enum class ActionType
45 {
46 ExportAndRunScene,
47 StartGameModeSimulate,
48 StartGameModePlay,
49 StartGameModePlayFromHere,
50 StopGameMode,
51 ExportSceneToOBJ,
52 KeepSimulationChanges,
53 CreateThumbnail,
54
55 StoreEditorCamera0,
56 StoreEditorCamera1,
57 StoreEditorCamera2,
58 StoreEditorCamera3,
59 StoreEditorCamera4,
60 StoreEditorCamera5,
61 StoreEditorCamera6,
62 StoreEditorCamera7,
63 StoreEditorCamera8,
64 StoreEditorCamera9,
65
66 RestoreEditorCamera0,
67 RestoreEditorCamera1,
68 RestoreEditorCamera2,
69 RestoreEditorCamera3,
70 RestoreEditorCamera4,
71 RestoreEditorCamera5,
72 RestoreEditorCamera6,
73 RestoreEditorCamera7,
74 RestoreEditorCamera8,
75 RestoreEditorCamera9,
76
77 JumpToCamera0,
78 JumpToCamera1,
79 JumpToCamera2,
80 JumpToCamera3,
81 JumpToCamera4,
82 JumpToCamera5,
83 JumpToCamera6,
84 JumpToCamera7,
85 JumpToCamera8,
86 JumpToCamera9,
87
88 CreateLevelCamera0,
89 CreateLevelCamera1,
90 CreateLevelCamera2,
91 CreateLevelCamera3,
92 CreateLevelCamera4,
93 CreateLevelCamera5,
94 CreateLevelCamera6,
95 CreateLevelCamera7,
96 CreateLevelCamera8,
97 CreateLevelCamera9,
98 };
99
100 plSceneAction(const plActionContext& context, const char* szName, ActionType type);
102
103 virtual void Execute(const plVariant& value) override;
104
105 void LaunchPlayer(const char* szPlayerApp);
106 QStringList GetPlayerCommandLine(plStringBuilder& out_sSingleLine) const;
107
108private:
109 void SceneEventHandler(const plGameObjectEvent& e);
110 void UpdateState();
111
112 plSceneDocument* m_pSceneDocument;
113 ActionType m_Type;
114};
Definition EditorApp.moc.h:27
Handle for a plAction.
Definition Action.h:27
Definition BaseActions.h:159
Base class for all preferences.
Definition Preferences.h:17
Definition SceneActions.h:40
Definition SceneActions.h:12
Definition SceneDocument.h:22
plStringBuilder is a class that is meant for creating and modifying strings.
Definition StringBuilder.h:35
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 GameObjectDocument.h:28