!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / ScriptPropertyGraph.cpp
blob3dce938b59b747c02d382d5fce29904e16b0cf77
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "StdAfx.h"
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"
12 namespace Schematyc2
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;