Merging from development
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
@@ -8,16 +8,17 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/std/smart_ptr/enable_shared_from_this.h>
|
||||
#include <AzCore/Asset/AssetCommon.h>
|
||||
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasAssetBus.h>
|
||||
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
|
||||
|
||||
#include <ScriptCanvas/Asset/AssetDescription.h>
|
||||
|
||||
namespace ScriptCanvas
|
||||
{
|
||||
class ScriptCanvasAssetBase
|
||||
: public AZ::Data::AssetData
|
||||
, public AZStd::enable_shared_from_this<ScriptCanvasAssetBase>
|
||||
, ScriptCanvas::ScriptCanvasAssetBusRequestBus::Handler
|
||||
{
|
||||
|
||||
|
||||
@@ -6,15 +6,18 @@
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <AzCore/Component/ComponentApplicationBus.h>
|
||||
#include <AzCore/Interface/Interface.h>
|
||||
#include <AzCore/RTTI/AttributeReader.h>
|
||||
#include <AzCore/RTTI/ReflectContext.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/StringFunc/StringFunc.h>
|
||||
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
|
||||
|
||||
#include "Core.h"
|
||||
#include "Attributes.h"
|
||||
#include "Core.h"
|
||||
#include <Core/Graph.h>
|
||||
|
||||
namespace ScriptCanvas
|
||||
{
|
||||
@@ -182,5 +185,156 @@ namespace ScriptCanvas
|
||||
|
||||
serializeContext->RegisterType(typeId, AZStd::move(classData), EventPlaceholderAnyCreator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
SourceHandle::SourceHandle()
|
||||
: m_id(AZ::Uuid::CreateNull())
|
||||
{}
|
||||
|
||||
SourceHandle::SourceHandle(const SourceHandle& data, const AZ::Uuid& id, const AZ::IO::Path& path)
|
||||
: m_data(data.m_data)
|
||||
, m_id(id)
|
||||
, m_path(path)
|
||||
{
|
||||
m_path.MakePreferred();
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
SourceHandle::SourceHandle(ScriptCanvas::DataPtr graph, const AZ::Uuid& id, const AZ::IO::Path& path)
|
||||
: m_data(graph)
|
||||
, m_id(id)
|
||||
, m_path(path)
|
||||
{
|
||||
m_path.MakePreferred();
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
SourceHandle::SourceHandle(const SourceHandle& data, const AZ::IO::Path& path)
|
||||
: m_data(data.m_data)
|
||||
, m_id(AZ::Uuid::CreateNull())
|
||||
, m_path(path)
|
||||
{
|
||||
m_path.MakePreferred();
|
||||
}
|
||||
|
||||
SourceHandle::SourceHandle(ScriptCanvas::DataPtr graph, const AZ::IO::Path& path)
|
||||
: m_data(graph)
|
||||
, m_id(AZ::Uuid::CreateNull())
|
||||
, m_path(path)
|
||||
{
|
||||
m_path.MakePreferred();
|
||||
}
|
||||
|
||||
bool SourceHandle::AnyEquals(const SourceHandle& other) const
|
||||
{
|
||||
return m_data && m_data == other.m_data
|
||||
|| !m_id.IsNull() && m_id == other.m_id
|
||||
|| !m_path.empty() && m_path == other.m_path;
|
||||
}
|
||||
|
||||
void SourceHandle::Clear()
|
||||
{
|
||||
m_data = nullptr;
|
||||
m_id = AZ::Uuid::CreateNull();
|
||||
m_path.clear();
|
||||
}
|
||||
|
||||
// return a SourceHandle with only the Id and Path, but without a pointer to the data
|
||||
SourceHandle SourceHandle::Describe() const
|
||||
{
|
||||
return SourceHandle(nullptr, m_id, m_path);
|
||||
}
|
||||
|
||||
GraphPtrConst SourceHandle::Get() const
|
||||
{
|
||||
return m_data ? m_data->GetEditorGraph() : nullptr;
|
||||
}
|
||||
|
||||
const AZ::Uuid& SourceHandle::Id() const
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
bool SourceHandle::IsDescriptionValid() const
|
||||
{
|
||||
return !m_id.IsNull() && !m_path.empty();
|
||||
}
|
||||
|
||||
bool SourceHandle::IsGraphValid() const
|
||||
{
|
||||
return m_data != nullptr;
|
||||
}
|
||||
|
||||
GraphPtr SourceHandle::Mod() const
|
||||
{
|
||||
return m_data ? m_data->ModEditorGraph() : nullptr;
|
||||
}
|
||||
|
||||
bool SourceHandle::operator==(const SourceHandle& other) const
|
||||
{
|
||||
return m_data.get() == other.m_data.get()
|
||||
&& m_id == other.m_id
|
||||
&& m_path == other.m_path;
|
||||
}
|
||||
|
||||
bool SourceHandle::operator!=(const SourceHandle& other) const
|
||||
{
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
const AZ::IO::Path& SourceHandle::Path() const
|
||||
{
|
||||
return m_path;
|
||||
}
|
||||
|
||||
bool SourceHandle::PathEquals(const SourceHandle& other) const
|
||||
{
|
||||
return m_path == other.m_path;
|
||||
}
|
||||
|
||||
void SourceHandle::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<SourceHandle>()
|
||||
->Version(0)
|
||||
->Field("id", &SourceHandle::m_id)
|
||||
->Field("path", &SourceHandle::m_path)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
AZStd::string SourceHandle::ToString() const
|
||||
{
|
||||
return AZStd::string::format
|
||||
( "%s, %s, %s"
|
||||
, IsGraphValid() ? "O" : "X"
|
||||
, m_path.empty() ? m_path.c_str() : "<no name>"
|
||||
, m_id.IsNull() ? "<null id>" : m_id.ToString<AZStd::string>().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
namespace ScriptCanvas
|
||||
{
|
||||
const Graph* ScriptCanvasData::GetGraph() const
|
||||
{
|
||||
return AZ::EntityUtils::FindFirstDerivedComponent<ScriptCanvas::Graph>(m_scriptCanvasEntity.get());
|
||||
}
|
||||
|
||||
const ScriptCanvasEditor::Graph* ScriptCanvasData::GetEditorGraph() const
|
||||
{
|
||||
return reinterpret_cast<const ScriptCanvasEditor::Graph*>(GetGraph());
|
||||
}
|
||||
|
||||
Graph* ScriptCanvasData::ModGraph()
|
||||
{
|
||||
return AZ::EntityUtils::FindFirstDerivedComponent<ScriptCanvas::Graph>(m_scriptCanvasEntity.get());
|
||||
}
|
||||
|
||||
ScriptCanvasEditor::Graph* ScriptCanvasData::ModEditorGraph()
|
||||
{
|
||||
return reinterpret_cast<ScriptCanvasEditor::Graph*>(ModGraph());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,18 +9,19 @@
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Component/EntityUtils.h>
|
||||
#include <AzCore/Component/NamedEntityId.h>
|
||||
#include <AzCore/IO/Path/Path.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/Math/Uuid.h>
|
||||
#include <AzCore/Memory/Memory.h>
|
||||
#include <AzCore/Memory/SystemAllocator.h>
|
||||
#include <AzCore/RTTI/RTTI.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/RTTI/RTTI.h>
|
||||
#include <AzCore/RTTI/ReflectContext.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/std/any.h>
|
||||
#include <AzCore/std/hash.h>
|
||||
#include <AzCore/Component/EntityUtils.h>
|
||||
#include <AzCore/Component/NamedEntityId.h>
|
||||
|
||||
#include <Core/NamedId.h>
|
||||
#include <ScriptCanvas/Grammar/PrimitivesDeclarations.h>
|
||||
|
||||
@@ -61,6 +62,10 @@ namespace ScriptCanvas
|
||||
|
||||
class Node;
|
||||
class Edge;
|
||||
class Graph;
|
||||
|
||||
using GraphPtr = Graph*;
|
||||
using GraphPtrConst = const Graph*;
|
||||
|
||||
using ID = AZ::EntityId;
|
||||
|
||||
@@ -297,6 +302,105 @@ namespace ScriptCanvas
|
||||
void ReflectEventTypeOnDemand(const AZ::TypeId& typeId, AZStd::string_view name, AZ::IRttiHelper* rttiHelper = nullptr);
|
||||
}
|
||||
|
||||
namespace ScriptCanvas
|
||||
{
|
||||
class ScriptCanvasData;
|
||||
|
||||
using DataPtr = AZStd::intrusive_ptr<ScriptCanvasData>;
|
||||
using DataPtrConst = AZStd::intrusive_ptr<const ScriptCanvasData>;
|
||||
}
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
class Graph;
|
||||
|
||||
using GraphPtr = Graph*;
|
||||
using GraphPtrConst = const Graph*;
|
||||
|
||||
class SourceHandle
|
||||
{
|
||||
public:
|
||||
AZ_TYPE_INFO(SourceHandle, "{65855A98-AE2F-427F-BFC8-69D45265E312}");
|
||||
AZ_CLASS_ALLOCATOR(SourceHandle, AZ::SystemAllocator, 0);
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
SourceHandle();
|
||||
|
||||
SourceHandle(const SourceHandle& data, const AZ::Uuid& id, const AZ::IO::Path& path);
|
||||
|
||||
SourceHandle(ScriptCanvas::DataPtr graph, const AZ::Uuid& id, const AZ::IO::Path& path);
|
||||
|
||||
SourceHandle(const SourceHandle& data, const AZ::IO::Path& path);
|
||||
|
||||
SourceHandle(ScriptCanvas::DataPtr graph, const AZ::IO::Path& path);
|
||||
|
||||
bool AnyEquals(const SourceHandle& other) const;
|
||||
|
||||
void Clear();
|
||||
|
||||
// return a SourceHandle with only the Id and Path, but without a pointer to the data
|
||||
SourceHandle Describe() const;
|
||||
|
||||
GraphPtrConst Get() const;
|
||||
|
||||
const AZ::Uuid& Id() const;
|
||||
|
||||
bool IsDescriptionValid() const;
|
||||
|
||||
bool IsGraphValid() const;
|
||||
|
||||
GraphPtr Mod() const;
|
||||
|
||||
bool operator==(const SourceHandle& other) const;
|
||||
|
||||
bool operator!=(const SourceHandle& other) const;
|
||||
|
||||
const AZ::IO::Path& Path() const;
|
||||
|
||||
bool PathEquals(const SourceHandle& other) const;
|
||||
|
||||
AZStd::string ToString() const;
|
||||
|
||||
private:
|
||||
ScriptCanvas::DataPtr m_data;
|
||||
AZ::Uuid m_id = AZ::Uuid::CreateNull();
|
||||
AZ::IO::Path m_path;
|
||||
};
|
||||
}
|
||||
|
||||
namespace ScriptCanvas
|
||||
{
|
||||
class ScriptCanvasData
|
||||
: public AZStd::intrusive_refcount<AZStd::atomic_uint, AZStd::intrusive_default_delete>
|
||||
{
|
||||
public:
|
||||
|
||||
AZ_RTTI(ScriptCanvasData, "{1072E894-0C67-4091-8B64-F7DB324AD13C}");
|
||||
AZ_CLASS_ALLOCATOR(ScriptCanvasData, AZ::SystemAllocator, 0);
|
||||
ScriptCanvasData() = default;
|
||||
virtual ~ScriptCanvasData() = default;
|
||||
ScriptCanvasData(ScriptCanvasData&& other);
|
||||
ScriptCanvasData& operator=(ScriptCanvasData&& other);
|
||||
|
||||
static void Reflect(AZ::ReflectContext* reflectContext);
|
||||
|
||||
AZ::Entity* GetScriptCanvasEntity() const { return m_scriptCanvasEntity.get(); }
|
||||
|
||||
const Graph* GetGraph() const;
|
||||
|
||||
const ScriptCanvasEditor::Graph* GetEditorGraph() const;
|
||||
|
||||
Graph* ModGraph();
|
||||
|
||||
ScriptCanvasEditor::Graph* ModEditorGraph();
|
||||
|
||||
AZStd::unique_ptr<AZ::Entity> m_scriptCanvasEntity;
|
||||
private:
|
||||
ScriptCanvasData(const ScriptCanvasData&) = delete;
|
||||
};
|
||||
}
|
||||
|
||||
namespace AZStd
|
||||
{
|
||||
template<>
|
||||
@@ -304,11 +408,28 @@ namespace AZStd
|
||||
{
|
||||
using argument_type = ScriptCanvas::SlotId;
|
||||
using result_type = AZStd::size_t;
|
||||
AZ_FORCE_INLINE size_t operator()(const argument_type& ref) const
|
||||
|
||||
inline size_t operator()(const argument_type& ref) const
|
||||
{
|
||||
return AZStd::hash<AZ::Uuid>()(ref.m_id);
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct hash<ScriptCanvasEditor::SourceHandle>
|
||||
{
|
||||
using argument_type = ScriptCanvasEditor::SourceHandle;
|
||||
using result_type = AZStd::size_t;
|
||||
|
||||
inline size_t operator()(const argument_type& handle) const
|
||||
{
|
||||
size_t h = 0;
|
||||
hash_combine(h, handle.Id());
|
||||
hash_combine(h, handle.Path());
|
||||
hash_combine(h, handle.Get());
|
||||
return h;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#define SCRIPT_CANVAS_INFINITE_LOOP_DETECTION_COUNT (2000000)
|
||||
|
||||
@@ -14,14 +14,12 @@
|
||||
#include <AzCore/std/containers/stack.h>
|
||||
#include <AzCore/std/containers/unordered_map.h>
|
||||
#include <AzCore/std/parallel/mutex.h>
|
||||
|
||||
#include <ScriptCanvas/Core/GraphBus.h>
|
||||
#include <ScriptCanvas/Core/GraphData.h>
|
||||
#include <ScriptCanvas/Debugger/Bus.h>
|
||||
#include <ScriptCanvas/Execution/ErrorBus.h>
|
||||
#include <ScriptCanvas/Execution/ExecutionContext.h>
|
||||
#include <ScriptCanvas/Debugger/StatusBus.h>
|
||||
|
||||
#include <ScriptCanvas/Debugger/ValidationEvents/ValidationEvent.h>
|
||||
|
||||
namespace ScriptCanvas
|
||||
@@ -189,8 +187,6 @@ namespace ScriptCanvas
|
||||
|
||||
bool IsGraphObserved() const override;
|
||||
void SetIsGraphObserved(bool isObserved) override;
|
||||
|
||||
AZ::Data::AssetType GetAssetType() const override;
|
||||
////
|
||||
|
||||
const AZStd::unordered_map<AZ::EntityId, Node* >& GetNodeMapping() const { return m_nodeMapping; }
|
||||
@@ -200,7 +196,7 @@ namespace ScriptCanvas
|
||||
|
||||
GraphData m_graphData;
|
||||
AZ::Data::AssetType m_assetType;
|
||||
|
||||
|
||||
private:
|
||||
ScriptCanvasId m_scriptCanvasId;
|
||||
ExecutionMode m_executionMode = ExecutionMode::Interpreted;
|
||||
@@ -209,7 +205,7 @@ namespace ScriptCanvas
|
||||
GraphVariableManagerRequests* m_variableRequests = nullptr;
|
||||
|
||||
// Keeps a mapping of the Node EntityId -> NodeComponent.
|
||||
// Saves looking up the NodeComponent everytime we need the Node.
|
||||
// Saves looking up the NodeComponent every time we need the Node.
|
||||
AZStd::unordered_map<AZ::EntityId, Node* > m_nodeMapping;
|
||||
|
||||
bool m_isObserved;
|
||||
|
||||
@@ -147,9 +147,6 @@ namespace ScriptCanvas
|
||||
//! returns a pair of <variable datum pointer, variable name> with the supplied id
|
||||
//! The variable datum pointer is non-null if the variable has been found
|
||||
virtual GraphVariable* FindVariableById(const VariableId& variableId) = 0;
|
||||
|
||||
virtual AZ::Data::AssetType GetAssetType() const = 0;
|
||||
|
||||
};
|
||||
using GraphRequestBus = AZ::EBus<GraphRequests>;
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ namespace ScriptCanvas
|
||||
->Attribute(AZ::ScriptCanvasAttributes::VariableCreationForbidden, AZ::AttributeIsValid::IfPresent)
|
||||
->Attribute(AZ::Script::Attributes::UseClassIndexAllowNil, AZ::AttributeIsValid::IfPresent)
|
||||
->Constructor<ExecutionStateWeakPtr>()
|
||||
->Attribute(AZ::Script::Attributes::DefaultConstructorOverrideIndex, 0)
|
||||
->Method("Deactivate", &Nodeable::Deactivate)
|
||||
->Method("InitializeExecutionState", &Nodeable::InitializeExecutionState)
|
||||
->Method("InitializeExecutionOuts", &Nodeable::InitializeExecutionOuts)
|
||||
|
||||
+2
-2
@@ -68,7 +68,7 @@ namespace ExecutionInterpretedAPICpp
|
||||
{
|
||||
if (lua_isstring(lua, -1))
|
||||
{
|
||||
AZ::ScriptContext::FromNativeContext(lua)->Error(AZ::ScriptContext::ErrorType::Error, true, "%s", lua_tostring(lua, -1));
|
||||
AZ::ScriptContext::FromNativeContext(lua)->Error(AZ::ScriptContext::ErrorType::Error, true, lua_tostring(lua, -1));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -401,7 +401,7 @@ namespace ScriptCanvas
|
||||
// \note: the the object is being constructed, and is assumed to never leave or re-enter Lua again
|
||||
AZ_Assert(lua_isuserdata(lua, -2) && !lua_islightuserdata(lua, -2), "Error in compiled lua file, 1st argument to OverrideNodeableMetatable is not userdata (Nodeable)");
|
||||
AZ_Assert(lua_istable(lua, -1), "Error in compiled lua file, 2nd argument to OverrideNodeableMetatable is not a Lua table");
|
||||
|
||||
|
||||
[[maybe_unused]] auto userData = reinterpret_cast<AZ::LuaUserData*>(lua_touserdata(lua, -2));
|
||||
AZ_Assert(userData && userData->magicData == AZ_CRC_CE("AZLuaUserData"), "this isn't user data");
|
||||
// Lua: LuaUserData::nodeable, class_mt
|
||||
|
||||
+2
@@ -143,6 +143,8 @@ namespace ScriptCanvas
|
||||
AZ_Assert(m_luaRegistryIndex == LUA_NOREF, "ExecutionStateInterpreted already in the Lua registry and risks double deletion");
|
||||
// Lua: instance
|
||||
m_luaRegistryIndex = luaL_ref(m_luaState, LUA_REGISTRYINDEX);
|
||||
AZ_Assert(m_luaRegistryIndex != LUA_REFNIL, "ExecutionStateInterpreted was nil when trying to gain a reference");
|
||||
AZ_Assert(m_luaRegistryIndex != LUA_NOREF, "ExecutionStateInterpreted failed to gain a reference");
|
||||
}
|
||||
|
||||
void ExecutionStateInterpreted::Reflect(AZ::ReflectContext* reflectContext)
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@ namespace ScriptCanvas
|
||||
lua_pushvalue(lua, -2);
|
||||
// Lua: instance, graph_VM.k_OnGraphStartFunctionName, instance
|
||||
const int result = Execution::InterpretedSafeCall(lua, 1, 0);
|
||||
// Lua: instance ?
|
||||
// Lua: instance, ?
|
||||
if (result == LUA_OK)
|
||||
{
|
||||
// Lua: instance
|
||||
|
||||
@@ -152,19 +152,19 @@ namespace ScriptCanvas
|
||||
{
|
||||
if (azrtti_istypeof<Nodes::String::Format>(execution->GetId().m_node))
|
||||
{
|
||||
return MetaDataPtr(aznew FormatStringMetaData());
|
||||
return AZStd::make_shared<FormatStringMetaData>();
|
||||
}
|
||||
else if (azrtti_istypeof<Nodes::String::Print>(execution->GetId().m_node))
|
||||
{
|
||||
return MetaDataPtr(aznew PrintMetaData());
|
||||
return AZStd::make_shared<PrintMetaData>();
|
||||
}
|
||||
else if (azrtti_istypeof<Nodes::Math::MathExpression>(execution->GetId().m_node))
|
||||
{
|
||||
return MetaDataPtr(aznew MathExpressionMetaData());
|
||||
return AZStd::make_shared<MathExpressionMetaData>();
|
||||
}
|
||||
else if (execution->GetSymbol() == Symbol::FunctionCall)
|
||||
{
|
||||
return MetaDataPtr(aznew FunctionCallDefaultMetaData());
|
||||
return AZStd::make_shared<FunctionCallDefaultMetaData>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -335,6 +335,11 @@ namespace ScriptCanvas
|
||||
return &m_datum;
|
||||
}
|
||||
|
||||
Datum& GraphVariable::ModDatum()
|
||||
{
|
||||
return m_datum;
|
||||
}
|
||||
|
||||
void GraphVariable::ConfigureDatumView(ModifiableDatumView& datumView)
|
||||
{
|
||||
datumView.ConfigureView((*this));
|
||||
@@ -493,14 +498,6 @@ namespace ScriptCanvas
|
||||
return m_sortPriority;
|
||||
}
|
||||
|
||||
bool GraphVariable::IsInFunction() const
|
||||
{
|
||||
AZ::Data::AssetType assetType = AZ::Data::AssetType::CreateNull();
|
||||
ScriptCanvas::GraphRequestBus::EventResult(assetType, m_scriptCanvasId, &ScriptCanvas::GraphRequests::GetAssetType);
|
||||
|
||||
return assetType == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>();
|
||||
}
|
||||
|
||||
AZ::u32 GraphVariable::OnInitialValueSourceChanged()
|
||||
{
|
||||
VariableNotificationBus::Event(GetGraphScopedId(), &VariableNotifications::OnVariableInitialValueSourceChanged);
|
||||
|
||||
@@ -127,6 +127,8 @@ namespace ScriptCanvas
|
||||
|
||||
const Datum* GetDatum() const;
|
||||
|
||||
Datum& ModDatum();
|
||||
|
||||
bool IsComponentProperty() const;
|
||||
|
||||
void ConfigureDatumView(ModifiableDatumView& accessController);
|
||||
@@ -194,9 +196,7 @@ namespace ScriptCanvas
|
||||
choices.emplace_back(AZStd::make_pair(static_cast<unsigned char>(VariableFlags::Scope::Function), s_ScopeNames[1]));
|
||||
return choices;
|
||||
}
|
||||
|
||||
bool IsInFunction() const;
|
||||
|
||||
|
||||
void OnScopeTypedChanged();
|
||||
AZ::u32 OnInitialValueSourceChanged();
|
||||
void OnSortPriorityChanged();
|
||||
|
||||
Reference in New Issue
Block a user