Added support for translating variables types in the variable manager
Signed-off-by: lsemp3d <58790905+lsemp3d@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"entries": [
|
||||
{
|
||||
"base": "AWSGameLiftRequestBus",
|
||||
"context": "EBusSender",
|
||||
"variant": "",
|
||||
"details": {
|
||||
"name": "Requests",
|
||||
"category": "AWS Game Lift"
|
||||
},
|
||||
"methods": [
|
||||
{
|
||||
"base": "ConfigureGameLiftClient",
|
||||
"entry": {
|
||||
"name": "In",
|
||||
"tooltip": "When signaled, this will invoke Configure Game Lift Client"
|
||||
},
|
||||
"exit": {
|
||||
"name": "Out",
|
||||
"tooltip": "Signaled after Configure Game Lift Client is invoked"
|
||||
},
|
||||
"details": {
|
||||
"name": "Configure Game Lift Client"
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"typeid": "{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}",
|
||||
"details": {
|
||||
"name": "Region"
|
||||
}
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
|
||||
"details": {
|
||||
"name": "Result"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"base": "CreatePlayerId",
|
||||
"entry": {
|
||||
"name": "In",
|
||||
"tooltip": "When signaled, this will invoke Create Player Id"
|
||||
},
|
||||
"exit": {
|
||||
"name": "Out",
|
||||
"tooltip": "Signaled after Create Player Id is invoked"
|
||||
},
|
||||
"details": {
|
||||
"name": "Create Player Id"
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
|
||||
"details": {
|
||||
"name": "Include Brackets"
|
||||
}
|
||||
},
|
||||
{
|
||||
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
|
||||
"details": {
|
||||
"name": "Include Dashes"
|
||||
}
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"typeid": "{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}",
|
||||
"details": {
|
||||
"name": "Player Id"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,15 +8,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
||||
#include <AzCore/Serialization/Json/StackedString.h>
|
||||
#include <AzCore/std/string/conversions.h>
|
||||
|
||||
#include <ScriptCanvas/Core/Slot.h>
|
||||
#include <Source/Translation/TranslationBus.h>
|
||||
#include <AzFramework/Gem/GemInfo.h>
|
||||
#include <AzCore/Settings/SettingsRegistry.h>
|
||||
#include <ScriptCanvas/Data/Data.h>
|
||||
|
||||
namespace Translation
|
||||
{
|
||||
@@ -27,447 +20,32 @@ namespace Translation
|
||||
static constexpr const char* MissingFunctionKey = "Globals.MissingFunction";
|
||||
static constexpr const char* EBusHandlerOutSlot = "Globals.EBusHandler.OutSlot";
|
||||
}
|
||||
|
||||
static inline bool GetValue(const AZStd::string key, AZStd::string& value)
|
||||
{
|
||||
GraphCanvas::TranslationKey tkey;
|
||||
tkey = key;
|
||||
|
||||
bool result = false;
|
||||
GraphCanvas::TranslationRequestBus::BroadcastResult(result, &GraphCanvas::TranslationRequests::Get, key, value);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
namespace GraphCanvasAttributeHelper
|
||||
{
|
||||
template <typename T>
|
||||
AZStd::string GetStringAttribute(const T* source, const AZ::Crc32& attribute)
|
||||
{
|
||||
AZStd::string attributeValue = "";
|
||||
if (auto attributeItem = azrtti_cast<AZ::AttributeData<AZStd::string>*>(AZ::FindAttribute(attribute, source->m_attributes)))
|
||||
{
|
||||
attributeValue = attributeItem->Get(nullptr);
|
||||
}
|
||||
return attributeValue;
|
||||
}
|
||||
|
||||
inline AZStd::string ReadStringAttribute(const AZ::AttributeArray& attributes, const AZ::Crc32& attribute)
|
||||
{
|
||||
AZStd::string attributeValue = "";
|
||||
if (auto attributeItem = azrtti_cast<AZ::AttributeData<AZStd::string>*>(AZ::FindAttribute(attribute, attributes)))
|
||||
{
|
||||
attributeValue = attributeItem->Get(nullptr);
|
||||
return attributeValue;
|
||||
}
|
||||
|
||||
if (auto attributeItem = azrtti_cast<AZ::AttributeData<const char*>*>(AZ::FindAttribute(attribute, attributes)))
|
||||
{
|
||||
attributeValue = attributeItem->Get(nullptr);
|
||||
return attributeValue;
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
enum class TranslationContextGroup : AZ::u32
|
||||
namespace TranslationHelper
|
||||
{
|
||||
EbusSender,
|
||||
EbusHandler,
|
||||
ClassMethod,
|
||||
GlobalMethod,
|
||||
Invalid
|
||||
};
|
||||
|
||||
enum class TranslationItemType : AZ::u32
|
||||
{
|
||||
Node,
|
||||
Wrapper,
|
||||
ExecutionInSlot,
|
||||
ExecutionOutSlot,
|
||||
ParamDataSlot,
|
||||
ReturnDataSlot,
|
||||
BusIdSlot,
|
||||
Invalid
|
||||
};
|
||||
|
||||
enum class TranslationKeyId : AZ::u32
|
||||
{
|
||||
Name,
|
||||
Tooltip,
|
||||
Category,
|
||||
Invalid
|
||||
};
|
||||
|
||||
|
||||
namespace TranslationKeyParts
|
||||
{
|
||||
const char* const handler = "HANDLER_";
|
||||
const char* const name = "NAME";
|
||||
const char* const tooltip = "TOOLTIP";
|
||||
const char* const category = "CATEGORY";
|
||||
const char* const in = "IN";
|
||||
const char* const out = "OUT";
|
||||
const char* const param = "PARAM";
|
||||
const char* const output = "OUTPUT";
|
||||
const char* const busid = "BUSID";
|
||||
}
|
||||
|
||||
namespace TranslationContextGroupParts
|
||||
{
|
||||
const char* const ebusSender = "EBus";
|
||||
const char* const ebusHandler = "Handler";
|
||||
const char* const classMethod = "Method";
|
||||
constexpr const char* const globalMethod = "GlobalMethod";
|
||||
};
|
||||
|
||||
// The context name and keys generated by TranslationHelper should match the keys
|
||||
// being exported by the TSGenerateAction.cpp in the ScriptCanvasDeveloper Gem.
|
||||
class TranslationHelper
|
||||
{
|
||||
public:
|
||||
static AZStd::string GetContextName(TranslationContextGroup group, AZStd::string_view keyBase)
|
||||
{
|
||||
if (group == TranslationContextGroup::Invalid || keyBase.empty())
|
||||
{
|
||||
// Missing information
|
||||
return AZStd::string();
|
||||
}
|
||||
|
||||
const char* groupPart;
|
||||
|
||||
switch (group)
|
||||
{
|
||||
case TranslationContextGroup::EbusSender:
|
||||
groupPart = TranslationContextGroupParts::ebusSender;
|
||||
break;
|
||||
case TranslationContextGroup::EbusHandler:
|
||||
groupPart = TranslationContextGroupParts::ebusHandler;
|
||||
break;
|
||||
case TranslationContextGroup::ClassMethod:
|
||||
groupPart = TranslationContextGroupParts::classMethod;
|
||||
break;
|
||||
case TranslationContextGroup::GlobalMethod:
|
||||
groupPart = TranslationContextGroupParts::globalMethod;
|
||||
break;
|
||||
default:
|
||||
AZ_Warning("TranslationComponent", false, "Invalid translation group ID.");
|
||||
groupPart = "";
|
||||
}
|
||||
|
||||
AZStd::string fullKey = AZStd::string::format("%s: %.*s", groupPart,
|
||||
aznumeric_cast<int>(keyBase.size()), keyBase.data());
|
||||
|
||||
return fullKey;
|
||||
}
|
||||
|
||||
// UserDefined
|
||||
static AZStd::string GetUserDefinedNodeKey(AZStd::string_view contextName, AZStd::string_view nodeName, TranslationKeyId keyId)
|
||||
{
|
||||
return GetKey(TranslationContextGroup::ClassMethod, contextName, nodeName, TranslationItemType::Node, keyId);
|
||||
}
|
||||
////
|
||||
|
||||
static AZStd::string GetKey(TranslationContextGroup group, AZStd::string_view keyBase, AZStd::string_view keyName, TranslationItemType type, TranslationKeyId keyId, int paramIndex = 0)
|
||||
{
|
||||
if (group == TranslationContextGroup::Invalid || keyBase.empty()
|
||||
|| type == TranslationItemType::Invalid || keyId == TranslationKeyId::Invalid)
|
||||
{
|
||||
// Missing information
|
||||
return AZStd::string();
|
||||
}
|
||||
|
||||
if (type != TranslationItemType::Wrapper && keyName.empty())
|
||||
{
|
||||
// Missing information
|
||||
return AZStd::string();
|
||||
}
|
||||
|
||||
AZStd::string fullKey;
|
||||
|
||||
const char* prefix = "";
|
||||
if (group == TranslationContextGroup::EbusHandler)
|
||||
{
|
||||
prefix = TranslationKeyParts::handler;
|
||||
}
|
||||
|
||||
const char* keyPart = GetKeyPart(keyId);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case TranslationItemType::Node:
|
||||
fullKey = AZStd::string::format("%s%.*s_%.*s_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::Wrapper:
|
||||
fullKey = GetClassKey(group, keyBase, keyId);
|
||||
break;
|
||||
case TranslationItemType::ExecutionInSlot:
|
||||
fullKey = AZStd::string::format("%s%.*s_%.*s_%s_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::in,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ExecutionOutSlot:
|
||||
fullKey = AZStd::string::format("%s%.*s_%.*s_%s_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::out,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ParamDataSlot:
|
||||
fullKey = AZStd::string::format("%s%.*s_%.*s_%s%d_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::param,
|
||||
paramIndex,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ReturnDataSlot:
|
||||
fullKey = AZStd::string::format("%s%.*s_%.*s_%s%d_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::output,
|
||||
paramIndex,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::BusIdSlot:
|
||||
fullKey = AZStd::string::format("%s%.*s_%.*s_%s_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::busid,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
default:
|
||||
AZ_Warning("ScriptCanvas TranslationHelper", false, "Invalid translation item type.");
|
||||
}
|
||||
|
||||
AZStd::to_upper(fullKey.begin(), fullKey.end());
|
||||
|
||||
return fullKey;
|
||||
}
|
||||
|
||||
static AZStd::string GetClassKey(TranslationContextGroup group, AZStd::string_view keyBase, TranslationKeyId keyId)
|
||||
{
|
||||
const char* prefix = "";
|
||||
if (group == TranslationContextGroup::EbusHandler)
|
||||
{
|
||||
prefix = TranslationKeyParts::handler;
|
||||
}
|
||||
|
||||
const char* keyPart = GetKeyPart(keyId);
|
||||
|
||||
AZStd::string fullKey = AZStd::string::format("%s%.*s_%s",
|
||||
prefix,
|
||||
aznumeric_cast<int>(keyBase.size()),
|
||||
keyBase.data(),
|
||||
keyPart
|
||||
);
|
||||
|
||||
AZStd::to_upper(fullKey.begin(), fullKey.end());
|
||||
|
||||
return fullKey;
|
||||
}
|
||||
|
||||
static AZStd::string GetGlobalMethodKey(AZStd::string_view keyName, TranslationItemType keyType,
|
||||
TranslationKeyId keyId, int paramIndex = 0)
|
||||
{
|
||||
const char* keyPart = GetKeyPart(keyId);
|
||||
|
||||
AZStd::string fullKey;
|
||||
switch (keyType)
|
||||
{
|
||||
case TranslationItemType::Node:
|
||||
fullKey = AZStd::string::format("%.*s_%s",
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ExecutionInSlot:
|
||||
fullKey = AZStd::string::format("%.*s_%s_%s",
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::in,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ExecutionOutSlot:
|
||||
fullKey = AZStd::string::format("%.*s_%s_%s",
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::out,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ParamDataSlot:
|
||||
fullKey = AZStd::string::format("%.*s_%s%d_%s",
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::param,
|
||||
paramIndex,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
case TranslationItemType::ReturnDataSlot:
|
||||
fullKey = AZStd::string::format("%.*s_%s%d_%s",
|
||||
aznumeric_cast<int>(keyName.size()),
|
||||
keyName.data(),
|
||||
TranslationKeyParts::output,
|
||||
paramIndex,
|
||||
keyPart
|
||||
);
|
||||
break;
|
||||
default:
|
||||
AZ_Warning("ScriptCanvas TranslationHelper", false, "Invalid translation item type.");
|
||||
}
|
||||
|
||||
AZStd::to_upper(fullKey.begin(), fullKey.end());
|
||||
|
||||
return fullKey;
|
||||
}
|
||||
|
||||
static const char* GetKeyPart(TranslationKeyId keyId)
|
||||
{
|
||||
const char* keyPart = "";
|
||||
|
||||
switch (keyId)
|
||||
{
|
||||
case TranslationKeyId::Name:
|
||||
keyPart = TranslationKeyParts::name;
|
||||
break;
|
||||
case TranslationKeyId::Tooltip:
|
||||
keyPart = TranslationKeyParts::tooltip;
|
||||
break;
|
||||
case TranslationKeyId::Category:
|
||||
keyPart = TranslationKeyParts::category;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
AZ_Warning("ScriptCanvas TranslationHelper", false, "Invalid translation key ID.");
|
||||
}
|
||||
|
||||
return keyPart;
|
||||
}
|
||||
|
||||
static TranslationItemType GetItemType(ScriptCanvas::SlotDescriptor slotDescriptor)
|
||||
{
|
||||
if (slotDescriptor == ScriptCanvas::SlotDescriptors::ExecutionIn())
|
||||
{
|
||||
return TranslationItemType::ExecutionInSlot;
|
||||
}
|
||||
else if (slotDescriptor == ScriptCanvas::SlotDescriptors::ExecutionOut())
|
||||
{
|
||||
return TranslationItemType::ExecutionOutSlot;
|
||||
}
|
||||
else if (slotDescriptor == ScriptCanvas::SlotDescriptors::DataIn())
|
||||
{
|
||||
return TranslationItemType::ParamDataSlot;
|
||||
}
|
||||
else if (slotDescriptor == ScriptCanvas::SlotDescriptors::DataOut())
|
||||
{
|
||||
return TranslationItemType::ReturnDataSlot;
|
||||
}
|
||||
|
||||
return TranslationItemType::Invalid;
|
||||
}
|
||||
|
||||
static AZStd::string GetSafeTypeName(ScriptCanvas::Data::Type dataType)
|
||||
inline AZStd::string GetSafeTypeName(ScriptCanvas::Data::Type dataType)
|
||||
{
|
||||
if (!dataType.IsValid())
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
return ScriptCanvas::Data::GetName(dataType);
|
||||
AZStd::string azType = dataType.GetAZType().ToString<AZStd::string>();
|
||||
|
||||
GraphCanvas::TranslationKey key;
|
||||
key << "BehaviorType" << azType << "details";
|
||||
|
||||
GraphCanvas::TranslationRequests::Details details;
|
||||
|
||||
details.m_name = ScriptCanvas::Data::GetName(dataType);
|
||||
|
||||
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
|
||||
|
||||
return details.m_name;
|
||||
}
|
||||
|
||||
static AZStd::string GetKeyTranslation(TranslationContextGroup group, AZStd::string_view keyBase, AZStd::string_view keyName, TranslationItemType type, TranslationKeyId keyId, int paramIndex = 0)
|
||||
{
|
||||
AZStd::string translationContext = TranslationHelper::GetContextName(group, keyBase);
|
||||
AZStd::string translationKey = TranslationHelper::GetKey(group, keyBase, keyName, type, keyId, paramIndex);
|
||||
AZStd::string translated = QCoreApplication::translate(translationContext.c_str(), translationKey.c_str()).toUtf8().data();
|
||||
|
||||
if (translated == translationKey)
|
||||
{
|
||||
return AZStd::string();
|
||||
}
|
||||
|
||||
return translated;
|
||||
}
|
||||
|
||||
static AZStd::string GetClassKeyTranslation(TranslationContextGroup group, AZStd::string_view keyBase, TranslationKeyId keyId)
|
||||
{
|
||||
AZStd::string translationContext = TranslationHelper::GetContextName(group, keyBase);
|
||||
AZStd::string translationKey = TranslationHelper::GetClassKey(group, keyBase, keyId);
|
||||
AZStd::string translated = QCoreApplication::translate(translationContext.c_str(), translationKey.c_str()).toUtf8().data();
|
||||
|
||||
if (translated == translationKey)
|
||||
{
|
||||
return AZStd::string();
|
||||
}
|
||||
|
||||
return translated;
|
||||
}
|
||||
|
||||
static AZStd::string GetGlobalMethodKeyTranslation(AZStd::string_view keyName,
|
||||
TranslationItemType keyType, TranslationKeyId keyId, int paramIndex = 0)
|
||||
{
|
||||
AZStd::string translationKey = TranslationHelper::GetGlobalMethodKey(keyName, keyType, keyId, paramIndex);
|
||||
AZStd::string translated = QCoreApplication::translate(TranslationContextGroupParts::globalMethod, translationKey.c_str()).toUtf8().data();
|
||||
|
||||
if (translated == translationKey)
|
||||
{
|
||||
return AZStd::string();
|
||||
}
|
||||
|
||||
return translated;
|
||||
}
|
||||
|
||||
// Use the StackedString to index the translation keys as a Json Pointer
|
||||
static AZ::StackedString GetAzEventHandlerRootPointer(AZStd::string_view eventName)
|
||||
{
|
||||
AZ::StackedString path(AZ::StackedString::Format::JsonPointer);
|
||||
path.Push(eventName);
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-1
@@ -243,7 +243,16 @@ namespace ScriptCanvasEditor
|
||||
|
||||
AZStd::string DataTypePaletteModel::FindTypeNameForTypeId(const AZ::TypeId& typeId) const
|
||||
{
|
||||
return TranslationHelper::GetSafeTypeName(ScriptCanvas::Data::FromAZType(typeId));
|
||||
GraphCanvas::TranslationKey key;
|
||||
key << "BehaviorType" << typeId.ToString<AZStd::string>() << "details";
|
||||
|
||||
GraphCanvas::TranslationRequests::Details details;
|
||||
|
||||
details.m_name = TranslationHelper::GetSafeTypeName(ScriptCanvas::Data::FromAZType(typeId));
|
||||
|
||||
GraphCanvas::TranslationRequestBus::BroadcastResult(details, &GraphCanvas::TranslationRequests::GetDetails, key, details);
|
||||
|
||||
return details.m_name;
|
||||
}
|
||||
|
||||
void DataTypePaletteModel::TogglePendingPinChange(const AZ::Uuid& azVarType)
|
||||
|
||||
@@ -26,12 +26,18 @@
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/UserSettings/UserSettings.h>
|
||||
#include <AzCore/std/containers/map.h>
|
||||
|
||||
#include <AzFramework/StringFunc/StringFunc.h>
|
||||
#include <AzFramework/Gem/GemInfo.h>
|
||||
|
||||
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
|
||||
#include <AzToolsFramework/AssetBrowser/Entries/ProductAssetBrowserEntry.h>
|
||||
#include <AzToolsFramework/AssetBrowser/Entries/SourceAssetBrowserEntry.h>
|
||||
#include <AzToolsFramework/AssetEditor/AssetEditorUtils.h>
|
||||
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
|
||||
|
||||
#include <AzQtComponents/Utilities/DesktopUtilities.h>
|
||||
|
||||
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
|
||||
#include <Editor/Components/IconComponent.h>
|
||||
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
|
||||
@@ -50,9 +56,11 @@
|
||||
#include <Editor/View/Widgets/NodePalette/VariableNodePaletteTreeItemTypes.h>
|
||||
#include <Editor/View/Widgets/ScriptCanvasNodePaletteDockWidget.h>
|
||||
#include <Editor/View/Widgets/ui_ScriptCanvasNodePaletteToolbar.h>
|
||||
|
||||
#include <GraphCanvas/Widgets/NodePalette/NodePaletteTreeView.h>
|
||||
#include <GraphCanvas/Widgets/NodePalette/NodePaletteWidget.h>
|
||||
#include <GraphCanvas/Widgets/NodePalette/TreeItems/NodePaletteTreeItem.h>
|
||||
|
||||
#include <ScriptCanvas/Asset/RuntimeAsset.h>
|
||||
#include <ScriptCanvas/Core/Attributes.h>
|
||||
#include <ScriptCanvas/Core/SubgraphInterfaceUtility.h>
|
||||
@@ -63,7 +71,6 @@
|
||||
#include <ScriptCanvas/Libraries/Libraries.h>
|
||||
#include <ScriptCanvas/Utils/NodeUtils.h>
|
||||
#include <ScriptEvents/ScriptEventsAsset.h>
|
||||
#include "AzQtComponents/Utilities/DesktopUtilities.h"
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
|
||||
@@ -182,7 +182,7 @@ namespace ScriptCanvas
|
||||
|
||||
static AZ::Uuid GetAZType(const Data::Type& = {}) { return azrtti_typeid<CRCType>(); }
|
||||
static Data::Type GetSCType(const AZ::TypeId& = AZ::TypeId::CreateNull()) { return Data::Type::CRC(); }
|
||||
static AZStd::string GetName(const Data::Type& = {}) { return "CRC"; }
|
||||
static AZStd::string GetName(const Data::Type& = {}) { return "Tag"; }
|
||||
static Type GetDefault(const Data::Type& = {}) { return CRCType(); }
|
||||
static bool IsDefault(const Type& value, const Data::Type& = {}) { return value == GetDefault(); }
|
||||
};
|
||||
@@ -198,7 +198,7 @@ namespace ScriptCanvas
|
||||
|
||||
static AZ::Uuid GetAZType(const Data::Type& = {}) { return azrtti_typeid<EntityIDType>(); }
|
||||
static Data::Type GetSCType(const AZ::TypeId& = AZ::TypeId::CreateNull()) { return Data::Type::EntityID(); }
|
||||
static AZStd::string GetName(const Data::Type& = {}) { return "EntityID"; }
|
||||
static AZStd::string GetName(const Data::Type& = {}) { return "EntityId"; }
|
||||
static Type GetDefault(const Data::Type& = {}) { return GraphOwnerId; }
|
||||
static bool IsDefault(const Type& value, const Data::Type& = {}) { return value == GetDefault(); }
|
||||
};
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <AzFramework/StringFunc/StringFunc.h>
|
||||
#include <AzQtComponents/Utilities/DesktopUtilities.h>
|
||||
#include <Source/Translation/TranslationSerializer.h>
|
||||
#include "Data/DataRegistry.h"
|
||||
|
||||
namespace ScriptCanvasEditorTools
|
||||
{
|
||||
@@ -832,6 +833,33 @@ namespace ScriptCanvasEditorTools
|
||||
SaveJSONData(fileName, translationRoot);
|
||||
}
|
||||
|
||||
void TranslationGeneration::TranslateDataTypes()
|
||||
{
|
||||
TranslationFormat translationRoot;
|
||||
|
||||
auto dataRegistry = ScriptCanvas::GetDataRegistry();
|
||||
|
||||
for (auto& typePair : dataRegistry->m_creatableTypes)
|
||||
{
|
||||
if (ScriptCanvas::Data::IsContainerType(typePair.first))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
const AZStd::string typeIDStr = typePair.first.GetAZType().ToString<AZStd::string>();
|
||||
AZStd::string typeName = ScriptCanvas::Data::GetName(typePair.first);
|
||||
|
||||
Entry entry;
|
||||
entry.m_key = typeIDStr;
|
||||
entry.m_context = "BehaviorType";
|
||||
entry.m_details.m_name = typeName;
|
||||
|
||||
translationRoot.m_entries.emplace_back(entry);
|
||||
}
|
||||
|
||||
SaveJSONData("Types/BehaviorTypes", translationRoot);
|
||||
}
|
||||
|
||||
void TranslationGeneration::TranslateMethod(AZ::BehaviorMethod* behaviorMethod, Method& methodEntry)
|
||||
{
|
||||
// Arguments (Input Slots)
|
||||
|
||||
@@ -131,6 +131,9 @@ namespace ScriptCanvasEditorTools
|
||||
//! Generates the translation data for the specified property in the BehaviorContext
|
||||
void TranslateBehaviorProperty(const AZ::BehaviorProperty* behaviorProperty, const AZStd::string& className, const AZStd::string& context, Entry* entry = nullptr);
|
||||
|
||||
//! Generates a type map from reflected types that are suitable for BehaviorContext objects used by ScriptCanvas
|
||||
void TranslateDataTypes();
|
||||
|
||||
private:
|
||||
|
||||
//! Utility to populate a BehaviorMethod's translation data
|
||||
|
||||
Reference in New Issue
Block a user