!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / Elements / ScriptAbstractInterfaceImplementation.h
blob4d4592177b7c66ae9d048505a2f72b8ccb002f41
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 #include <CrySchematyc2/Script/IScriptFile.h>
7 #include "Script/ScriptElementBase.h"
9 namespace Schematyc2
11 struct IAbstractInterface;
13 class CScriptAbstractInterfaceImplementation : public CScriptElementBase<IScriptAbstractInterfaceImplementation>
15 public:
17 // #SchematycTODO : Create two separate constructors: one default (before loading) and one for when element is created in editor.
18 CScriptAbstractInterfaceImplementation(IScriptFile& file, const SGUID& guid = SGUID(), const SGUID& scopeGUID = SGUID(), EDomain domain = EDomain::Unknown, const SGUID& refGUID = SGUID());
20 // IScriptElement
21 virtual EAccessor GetAccessor() const override;
22 virtual SGUID GetGUID() const override;
23 virtual SGUID GetScopeGUID() const override;
24 virtual bool SetName(const char* szName) override;
25 virtual const char* GetName() const override;
26 virtual void EnumerateDependencies(const ScriptDependancyEnumerator& enumerator) const override;
27 virtual void Refresh(const SScriptRefreshParams& params) override;
28 virtual void Serialize(Serialization::IArchive& archive) override;
29 virtual void RemapGUIDs(IGUIDRemapper& guidRemapper) override;
30 // ~IScriptElement
32 // IScriptAbstractInterfaceImplementation
33 virtual EDomain GetDomain() const override;
34 virtual SGUID GetRefGUID() const override;
35 // ~IScriptAbstractInterfaceImplementation
37 private:
39 void RefreshEnvAbstractrInterfaceFunctions(const IAbstractInterface& abstractInterface);
40 void RefreshScriptAbstractrInterfaceFunctions(const IScriptFile& abstractrInterfaceFile);
41 void RefreshScriptAbstractrInterfaceTasks(const IScriptFile& abstractrInterfaceFile);
42 void RefreshScriptAbstractrInterfaceTaskPropertiess(const IScriptFile& abstractrInterfaceFile, const SGUID& taskGUID);
43 void Validate(Serialization::IArchive& archive);
45 private:
47 SGUID m_guid;
48 SGUID m_scopeGUID;
49 string m_name;
50 EDomain m_domain;
51 SGUID m_refGUID;
54 DECLARE_SHARED_POINTERS(CScriptAbstractInterfaceImplementation)