From 1d9916492f25d809befe0514576ab79e647aca88 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Tue, 29 Mar 2022 19:33:30 +1100 Subject: [PATCH 1/3] Remove EditorScriptingUtilities plugin. --- CesiumForUnreal.uplugin | 6 +--- Source/CesiumRuntime/CesiumRuntime.Build.cs | 1 - .../CesiumEncodedMetadataComponent.cpp | 33 +++++++++++-------- .../Public/CesiumEncodedMetadataComponent.h | 2 +- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/CesiumForUnreal.uplugin b/CesiumForUnreal.uplugin index 93f280df6..affdb8f5c 100644 --- a/CesiumForUnreal.uplugin +++ b/CesiumForUnreal.uplugin @@ -42,10 +42,6 @@ { "Name": "Water", "Enabled": true - }, - { - "Name": "EditorScriptingUtilities", - "Enabled": true - } + } ] } diff --git a/Source/CesiumRuntime/CesiumRuntime.Build.cs b/Source/CesiumRuntime/CesiumRuntime.Build.cs index d96ba8842..e8317d278 100644 --- a/Source/CesiumRuntime/CesiumRuntime.Build.cs +++ b/Source/CesiumRuntime/CesiumRuntime.Build.cs @@ -184,7 +184,6 @@ public CesiumRuntime(ReadOnlyTargetRules Target) : base(Target) "SlateCore", "WorldBrowser", "ContentBrowser", - "EditorScriptingUtilities", "MaterialEditor" } ); diff --git a/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp b/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp index 88546875f..296537b1c 100644 --- a/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp +++ b/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp @@ -13,10 +13,8 @@ #include "ComponentReregisterContext.h" #include "Containers/Map.h" #include "ContentBrowserModule.h" -#include "EditorAssetLibrary.h" #include "Factories/MaterialFunctionMaterialLayerFactory.h" #include "IContentBrowserSingleton.h" -#include "MaterialEditorUtilities.h" #include "Materials/Material.h" #include "Materials/MaterialExpressionCustom.h" #include "Materials/MaterialExpressionFunctionInput.h" @@ -32,6 +30,8 @@ #include "Modules/ModuleManager.h" #include "Subsystems/AssetEditorSubsystem.h" #include "UObject/Package.h" + +extern UNREALED_API class UEditorEngine* GEditor; #endif void UCesiumEncodedMetadataComponent::AutoFill() { @@ -390,8 +390,10 @@ static void RemapUserConnections( } } } +#endif // WITH_EDITOR void UCesiumEncodedMetadataComponent::GenerateMaterial() { +#if WITH_EDITOR ACesium3DTileset* pTileset = Cast(this->GetOwner()); if (!pTileset) { @@ -863,19 +865,22 @@ void UCesiumEncodedMetadataComponent::GenerateMaterial() { // FMaterialResource created when we make a new UMaterial in place FGlobalComponentReregisterContext RecreateComponents; - // Save the asset - UEditorAssetLibrary::SaveLoadedAsset(this->TargetMaterialLayer, true); - // Open updated material in editor. - FAssetData assetData(this->TargetMaterialLayer); - FMaterialEditorUtilities::OnOpenFunction(assetData); - - TArray AssetsToHighlight; - AssetsToHighlight.Add(this->TargetMaterialLayer); + if (GEditor) { + UAssetEditorSubsystem* pAssetEditor = + GEditor->GetEditorSubsystem(); + if (pAssetEditor) { + pAssetEditor->OpenEditorForAsset(this->TargetMaterialLayer); + } + } - FContentBrowserModule& ContentBrowserModule = - FModuleManager::Get().LoadModuleChecked( + FContentBrowserModule* pContentBrowserModule = + FModuleManager::Get().GetModulePtr( "ContentBrowser"); - ContentBrowserModule.Get().SyncBrowserToAssets(AssetsToHighlight); -} + if (pContentBrowserModule) { + TArray AssetsToHighlight; + AssetsToHighlight.Add(this->TargetMaterialLayer); + pContentBrowserModule->Get().SyncBrowserToAssets(AssetsToHighlight); + } #endif +} diff --git a/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h b/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h index 26e59318f..eaee38737 100644 --- a/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h +++ b/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h @@ -241,7 +241,7 @@ class CESIUMRUNTIME_API UCesiumEncodedMetadataComponent UFUNCTION(CallInEditor, Category = "EncodeMetadata") void AutoFill(); -#if WITH_EDITOR +#if WITH_EDITORONLY_DATA /** * @brief This button can be used to create a boiler-plate material layer that * exposes the requested metadata properties in the current description. The From 1dd7223fdd6655efd3de7ba2a82725a0cc45092b Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Tue, 29 Mar 2022 20:39:34 +1100 Subject: [PATCH 2/3] Only include GenerateMaterial WITH_EDITOR. --- .../CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp | 5 ++--- Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp b/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp index 296537b1c..f94311a78 100644 --- a/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp +++ b/Source/CesiumRuntime/Private/CesiumEncodedMetadataComponent.cpp @@ -390,10 +390,8 @@ static void RemapUserConnections( } } } -#endif // WITH_EDITOR void UCesiumEncodedMetadataComponent::GenerateMaterial() { -#if WITH_EDITOR ACesium3DTileset* pTileset = Cast(this->GetOwner()); if (!pTileset) { @@ -882,5 +880,6 @@ void UCesiumEncodedMetadataComponent::GenerateMaterial() { AssetsToHighlight.Add(this->TargetMaterialLayer); pContentBrowserModule->Get().SyncBrowserToAssets(AssetsToHighlight); } -#endif } + +#endif // WITH_EDITOR diff --git a/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h b/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h index eaee38737..ac5d6e891 100644 --- a/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h +++ b/Source/CesiumRuntime/Public/CesiumEncodedMetadataComponent.h @@ -241,7 +241,7 @@ class CESIUMRUNTIME_API UCesiumEncodedMetadataComponent UFUNCTION(CallInEditor, Category = "EncodeMetadata") void AutoFill(); -#if WITH_EDITORONLY_DATA +#if WITH_EDITOR /** * @brief This button can be used to create a boiler-plate material layer that * exposes the requested metadata properties in the current description. The @@ -251,7 +251,9 @@ class CESIUMRUNTIME_API UCesiumEncodedMetadataComponent */ UFUNCTION(CallInEditor, Category = "EncodeMetadata") void GenerateMaterial(); +#endif +#if WITH_EDITORONLY_DATA /** * @brief This is the target UMaterialFunctionMaterialLayer that the * boiler-plate material generation will use. When pressing From e3d89341de3251ee95ad02ddc145fb112fa63c5a Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Tue, 29 Mar 2022 21:57:11 +1100 Subject: [PATCH 3/3] Fix clang compiler errors. Using the technique described in the comments above the UE_DEPRECATED macro. --- Source/CesiumRuntime/Public/CesiumExclusionZone.h | 10 ++++++---- .../CesiumRuntime/Public/CesiumMetadataFeatureTable.h | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Source/CesiumRuntime/Public/CesiumExclusionZone.h b/Source/CesiumRuntime/Public/CesiumExclusionZone.h index 0b8bb4921..2ab7fdfe6 100644 --- a/Source/CesiumRuntime/Public/CesiumExclusionZone.h +++ b/Source/CesiumRuntime/Public/CesiumExclusionZone.h @@ -6,16 +6,18 @@ #include "CesiumExclusionZone.generated.h" +struct UE_DEPRECATED( + 4.26, + "Exclusion Zones have been deprecated. Please use Cartographic Polygon actor instead.") + FCesiumExclusionZone; + /** * A region that should be excluded from a tileset. * * This is **experimental**, and may change in future releases. */ USTRUCT() -struct UE_DEPRECATED( - 4.26, - "Exclusion Zones have been deprecated. Please use Cartographic Polygon actor instead.") - FCesiumExclusionZone { +struct CESIUMRUNTIME_API FCesiumExclusionZone { GENERATED_BODY() /** diff --git a/Source/CesiumRuntime/Public/CesiumMetadataFeatureTable.h b/Source/CesiumRuntime/Public/CesiumMetadataFeatureTable.h index f5d2f4d95..eb86c1b8d 100644 --- a/Source/CesiumRuntime/Public/CesiumMetadataFeatureTable.h +++ b/Source/CesiumRuntime/Public/CesiumMetadataFeatureTable.h @@ -16,16 +16,18 @@ struct Accessor; struct FeatureTable; } // namespace CesiumGltf +struct UE_DEPRECATED( + 4.26, + "FCesiumMetadataFeatureTable is deprecated, use FCesiumFeatureTable instead.") + FCesiumMetadataFeatureTable; + /** * A Blueprint-accessible wrapper for a glTF feature table. A feature table is a * collection of properties for each feature ID in the mesh. It also knows how * to look up the feature ID associated with a given mesh vertex. */ USTRUCT(BlueprintType) -struct UE_DEPRECATED( - 4.26, - "FCesiumMetadataFeatureTable is deprecated, use FCesiumFeatureTable instead.") - CESIUMRUNTIME_API FCesiumMetadataFeatureTable { +struct CESIUMRUNTIME_API FCesiumMetadataFeatureTable { GENERATED_USTRUCT_BODY() using FeatureIDAccessorType = std::variant<