Files
o3de/Gems/ScriptCanvasTesting/Code/Source/Nodes/BehaviorContextObjectTestNode.h
T
Luis Sempé 9e2a3226fd Script Canvas, replace the text replacement system to a JSON file based one (#5228)
It is now possible to right click on nodes on the node palette to navigate to the file that holds the text data for any given node, this way it is easy to update and improve the naming of titles, subtitles, categories, tool tips and slots.
2021-11-11 11:53:51 -08:00

83 lines
3.1 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <ScriptCanvas/Core/Attributes.h>
#include <AzCore/RTTI/BehaviorContext.h>
#include <AzCore/Serialization/SerializeContext.h>
namespace ScriptCanvasTestingNodes
{
//! This object is used to test the use of BehaviorContext classes
class BehaviorContextObjectTest
{
public:
AZ_RTTI(BehaviorContextObjectTest, "{FF687BD7-42AA-44C4-B3AB-79353E8C6CCF}");
AZ_CLASS_ALLOCATOR(BehaviorContextObjectTest, AZ::SystemAllocator, 0);
static void Reflect(AZ::ReflectContext* context)
{
AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context);
if (serializeContext)
{
serializeContext->Class<BehaviorContextObjectTest>()
->Version(0)
->Field("String", &BehaviorContextObjectTest::m_string)
->Field("Name", &BehaviorContextObjectTest::m_name)
;
if (AZ::EditContext* editContext = serializeContext->GetEditContext())
{
editContext->Class<BehaviorContextObjectTest>("Behavior Context Object Test", "An Object that lives within Behavior Context exclusively for testing")
->ClassElement(AZ::Edit::ClassElements::EditorData, "")
->Attribute(AZ::Edit::Attributes::Category, "Tests/Behavior Context")
->Attribute(AZ::Edit::Attributes::CategoryStyle, ".method")
->Attribute(ScriptCanvas::Attributes::Node::TitlePaletteOverride, "TestingNodeTitlePalette")
->DataElement(AZ::Edit::UIHandlers::Default, &BehaviorContextObjectTest::m_string, "String", "")
;
}
}
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->Class<BehaviorContextObjectTest>()
->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::ExcludeFlags::All)
->Attribute(AZ::Script::Attributes::Category, "Tests/Behavior Context")
->Method("SetString", &BehaviorContextObjectTest::SetString)
->Method("GetString", &BehaviorContextObjectTest::GetString)
->Property("Name", BehaviorValueProperty(&BehaviorContextObjectTest::m_name))
->Constant("Always24", BehaviorConstant(24))
;
}
}
BehaviorContextObjectTest()
{
}
virtual ~BehaviorContextObjectTest() {}
void SetString(AZStd::string string)
{
m_string = string;
}
AZStd::string GetString() const
{
return m_string;
}
private:
AZStd::string m_name;
AZStd::string m_string;
};
}