Files
BusyRabbit/Plugins/UnrealSharp/Source/UnrealSharpCore/CSUnrealSharpSettings.cpp
wyatt 648386cd73 Lua向C#逻辑迁移 一期 #13
将整个插件代码上传
2025-10-26 21:48:39 +08:00

56 lines
1.7 KiB
C++

#include "CSUnrealSharpSettings.h"
UCSUnrealSharpSettings::UCSUnrealSharpSettings()
{
CategoryName = "Plugins";
}
#if WITH_EDITOR
void UCSUnrealSharpSettings::PreEditChange(FProperty* PropertyAboutToChange)
{
Super::PreEditChange(PropertyAboutToChange);
if (PropertyAboutToChange->GetFName() == GET_MEMBER_NAME_CHECKED(UCSUnrealSharpSettings, bEnableNamespaceSupport))
{
OldValueOfNamespaceSupport = bEnableNamespaceSupport;
}
}
void UCSUnrealSharpSettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
Super::PostEditChangeProperty(PropertyChangedEvent);
if (PropertyChangedEvent.Property)
{
const FName PropertyName = PropertyChangedEvent.Property->GetFName();
if (PropertyName == GET_MEMBER_NAME_CHECKED(UCSUnrealSharpSettings, bEnableNamespaceSupport))
{
bRecentlyChangedNamespaceSupport = true;
FText Message = FText::FromString(
TEXT("Namespace support settings have been updated. A restart is required for the changes to take effect.\n\n"
"WARNING: This experimental feature will break existing Blueprints derived from C# classes due to changes in the outermost package when restarting the engine.\n\n"
"Press 'Cancel' to revert these changes.")
);
if (FMessageDialog::Open(EAppMsgType::OkCancel, Message) == EAppReturnType::Cancel)
{
bEnableNamespaceSupport = OldValueOfNamespaceSupport;
bRecentlyChangedNamespaceSupport = false;
}
}
}
}
#endif
bool UCSUnrealSharpSettings::HasNamespaceSupport() const
{
if (bRecentlyChangedNamespaceSupport)
{
// Keep returning the old value until we have restarted the editor
return OldValueOfNamespaceSupport;
}
return bEnableNamespaceSupport;
}