!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / ScriptExtensionMap.cpp
blobeaaa4f572a3323fc41069975e525664cfa53ecfd
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #include "StdAfx.h"
4 #include "Script/ScriptExtensionMap.h"
6 #include <CrySchematyc2/Services/ILog.h>
8 SERIALIZATION_ENUM_BEGIN_NESTED(Schematyc2, EScriptExtensionId, "Schematyc Script Extension Id")
9 SERIALIZATION_ENUM(Schematyc2::EScriptExtensionId::Graph, "Graph", "Graph")
10 SERIALIZATION_ENUM_END()
12 namespace Schematyc2
14 void CScriptExtensionMap::AddExtension(const IScriptExtensionPtr& pExtension)
16 if(pExtension)
18 m_extensions.push_back(pExtension);
22 IScriptExtension* CScriptExtensionMap::QueryExtension(EScriptExtensionId id)
24 for(Extensions::value_type& pExtension : m_extensions)
26 if(pExtension->GetId_New() == id)
28 return pExtension.get();
31 return nullptr;
34 const IScriptExtension* CScriptExtensionMap::QueryExtension(EScriptExtensionId id) const
36 for(const Extensions::value_type& pExtension : m_extensions)
38 if(pExtension->GetId_New() == id)
40 return pExtension.get();
43 return nullptr;
46 void CScriptExtensionMap::Refresh(const SScriptRefreshParams& params)
48 for(Extensions::value_type& pExtension : m_extensions)
50 pExtension->Refresh_New(params);
54 void CScriptExtensionMap::Serialize(Serialization::IArchive& archive)
56 class CExtensionWrapper
58 public:
60 inline CExtensionWrapper(IScriptExtension& extension)
61 : m_extension(extension)
64 void Serialize(Serialization::IArchive& archive)
66 m_extension.Serialize_New(archive);
69 private:
71 IScriptExtension& m_extension;
74 const Serialization::EnumDescription& enumDescription = Serialization::getEnumDescription<EScriptExtensionId>();
75 for(Extensions::value_type& pExtension : m_extensions)
77 const char* szName = enumDescription.name(pExtension->GetId_New());
78 SCHEMATYC2_SYSTEM_ASSERT(szName && szName[0]);
79 //archive(*pExtension, szName);
80 archive(CExtensionWrapper(*pExtension), szName);
84 void CScriptExtensionMap::RemapGUIDs(IGUIDRemapper& guidRemapper)
86 for(Extensions::value_type& pExtension : m_extensions)
88 pExtension->RemapGUIDs_New(guidRemapper);