ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
ArticyEditorModule.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "Modules/ModuleInterface.h"
8#include "Modules/ModuleManager.h"
9#include "Delegates/IDelegateInstance.h"
10#include "ArticyEditorConsoleCommands.h"
11#include "Customizations/ArticyEditorCustomizationManager.h"
12#include "Framework/Commands/UICommandList.h"
13#include "Slate/SArticyIdProperty.h"
14
15
16DECLARE_LOG_CATEGORY_EXTERN(LogArticyEditor, Log, All)
17
18DECLARE_MULTICAST_DELEGATE(FOnImportFinished);
19DECLARE_MULTICAST_DELEGATE_OneParam(FOnCompilationFinished, UArticyImportData*);
20DECLARE_MULTICAST_DELEGATE(FOnAssetsGenerated);
21
25enum EImportStatusValidity
26{
27 Valid,
28 ImportantAssetMissing,
29 FileMissing,
30 ImportDataAssetMissing
31};
32
36class FArticyEditorModule : public IModuleInterface
37{
38public:
39
41 virtual void StartupModule() override;
42 virtual void ShutdownModule() override;
43
49 static inline FArticyEditorModule& Get()
50 {
51 return FModuleManager::LoadModuleChecked<FArticyEditorModule>(TEXT("ArticyEditor"));
52 }
53
59 TSharedPtr<FArticyEditorCustomizationManager> GetCustomizationManager() const { return CustomizationManager; }
60
66 TArray<UArticyPackage*> ARTICYEDITOR_API GetPackagesSlow();
67
76 void RegisterGraphPinFactory() const;
78 void RegisterPluginSettings() const;
79 void RegisterToolTabs();
80
81 void UnregisterPluginSettings() const;
82
83 void QueueImport();
84 bool IsImportQueued();
85
87 FOnCompilationFinished OnCompilationFinished;
88 FOnAssetsGenerated OnAssetsGenerated;
89 FOnImportFinished OnImportFinished;
90
91private:
92 void OpenArticyWindow();
93 void OpenArticyGVDebugger();
94
95 EImportStatusValidity CheckImportStatusValidity() const;
96 void OnGeneratedCodeChanged(const TArray<struct FFileChangeData>& FileChanges) const;
97
98 void UnqueueImport();
99 void TriggerQueuedImport(bool b);
100
101 // Old tool UI hook callbacks required for UE4
102#if ENGINE_MAJOR_VERSION == 4
103 void AddToolbarExtension(FToolBarBuilder& Builder);
104 TSharedRef<SWidget> OnGenerateArticyToolsMenu() const;
105#endif
106
107 TSharedRef<class SDockTab> OnSpawnArticyMenuTab(const class FSpawnTabArgs& SpawnTabArgs) const;
108 TSharedRef<class SDockTab> OnSpawnArticyGVDebuggerTab(const class FSpawnTabArgs& SpawnTabArgs) const;
109
110private:
111 bool bIsImportQueued = false;
112 FDelegateHandle QueuedImportHandle;
113 FDelegateHandle GeneratedCodeWatcherHandle;
114 FArticyEditorConsoleCommands* ConsoleCommands = nullptr;
115 TSharedPtr<FUICommandList> PluginCommands;
117 TSharedPtr<FArticyEditorCustomizationManager> CustomizationManager = nullptr;
118
120 TArray<const IArticyIdPropertyWidgetCustomizationFactory*> DefaultArticyRefWidgetCustomizationFactories;
121};
Provides console commands for the Articy Editor module in Unreal Engine.
Definition ArticyEditorConsoleCommands.h:25
Definition ArticyEditorModule.h:37
void RegisterConsoleCommands()
Definition ArticyEditorModule.cpp:113
void RegisterDirectoryWatcher()
Definition ArticyEditorModule.cpp:95
void RegisterPluginCommands()
Definition ArticyEditorModule.cpp:278
TArray< UArticyPackage * > ARTICYEDITOR_API GetPackagesSlow()
Definition ArticyEditorModule.cpp:182
void RegisterGraphPinFactory() const
Definition ArticyEditorModule.cpp:104
void RegisterDefaultArticyIdPropertyWidgetExtensions() const
Definition ArticyEditorModule.cpp:150
void RegisterPluginSettings() const
Definition ArticyEditorModule.cpp:312
void RegisterAssetTypeActions()
Definition ArticyEditorModule.cpp:268
virtual void ShutdownModule() override
Definition ArticyEditorModule.cpp:77
static FArticyEditorModule & Get()
Definition ArticyEditorModule.h:49
TSharedPtr< FArticyEditorCustomizationManager > GetCustomizationManager() const
Definition ArticyEditorModule.h:59
void UnregisterPluginSettings() const
Definition ArticyEditorModule.cpp:329
void RegisterDetailCustomizations() const
Definition ArticyEditorModule.cpp:164
void RegisterArticyToolbar()
Definition ArticyEditorModule.cpp:205
void RegisterAutoReimportExclusions()
Definition ArticyEditorModule.cpp:122
bool IsImportQueued()
Definition ArticyEditorModule.cpp:342
void QueueImport()
Definition ArticyEditorModule.cpp:350
virtual void StartupModule() override
Definition ArticyEditorModule.cpp:54
void RegisterToolTabs()
Definition ArticyEditorModule.cpp:296
FOnCompilationFinished OnCompilationFinished
Definition ArticyEditorModule.h:87
Definition ArticyImportData.h:411