1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
4 #include "Script/ScriptPropertyGraph.h"
6 #include <CrySchematyc2/IFramework.h>
8 #include "DomainContext.h"
9 #include "Deprecated/DocGraphNodes/DocGraphNodes.h"
10 #include "Script/GraphNodes/ScriptGraphBeginNode.h"
14 CScriptPropertyGraph::CScriptPropertyGraph(IScriptElement
& element
)
15 : CScriptGraphBase(element
)
18 void CScriptPropertyGraph::Refresh_New(const SScriptRefreshParams
& params
)
20 if((params
.reason
== EScriptRefreshReason::EditorAdd
) || ((params
.reason
== EScriptRefreshReason::EditorFixUp
) && !BeginNodeExists()))
22 AddNode_New(std::make_shared
<CScriptGraphBeginNode
>(gEnv
->pSchematyc2
->CreateGUID()));
25 CScriptGraphBase::Refresh_New(params
);
28 void CScriptPropertyGraph::Serialize_New(Serialization::IArchive
& archive
)
30 CScriptGraphBase::Serialize_New(archive
);
33 EScriptGraphType
CScriptPropertyGraph::GetType() const
35 return EScriptGraphType::Property
;
38 bool CScriptPropertyGraph::BeginNodeExists() const
40 bool beginNodeExists
= false;
41 auto visitNode
= [&beginNodeExists
] (const IScriptGraphNode
& node
) -> EVisitStatus
43 if(node
.GetTypeGUID() == CScriptGraphBeginNode::s_typeGUID
)
45 beginNodeExists
= true;
46 return EVisitStatus::Stop
;
48 return EVisitStatus::Continue
;
50 CScriptGraphBase::VisitNodes(ScriptGraphNodeConstVisitor::FromLambdaFunction(visitNode
));
51 return beginNodeExists
;