!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / Elements / ScriptClassBase.h
blob7f92a741a930b190bb5c91a981d1fcbdd4c5c211
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"
8 #include "Script/ScriptUserDocumentation.h"
10 namespace Schematyc2
12 class CScriptClassBase : public CScriptElementBase<IScriptClassBase>
14 public:
16 // #SchematycTODO : Create two separate constructors: one default (before loading) and one for when element is created in editor.
17 CScriptClassBase(IScriptFile& file, const SGUID& guid = SGUID(), const SGUID& scopeGUID = SGUID(), const SGUID& refGUID = SGUID());
19 // IScriptElement
20 virtual EAccessor GetAccessor() const override;
21 virtual SGUID GetGUID() const override;
22 virtual SGUID GetScopeGUID() const override;
23 virtual bool SetName(const char* szName) override;
24 virtual const char* GetName() const override;
25 virtual void EnumerateDependencies(const ScriptDependancyEnumerator& enumerator) const override;
26 virtual void Refresh(const SScriptRefreshParams& params) override;
27 virtual void Serialize(Serialization::IArchive& archive) override;
28 virtual void RemapGUIDs(IGUIDRemapper& guidRemapper) override;
29 // ~IScriptElement
31 // IScriptClass
32 virtual SGUID GetRefGUID() const override;
33 // ~IScriptClass
35 private:
37 void RefreshProperties(const IScriptFile& baseSchemaFile, const IScriptClass& baseClass);
38 void Validate(Serialization::IArchive& archive);
40 SGUID m_guid;
41 SGUID m_scopeGUID;
42 string m_name;
43 SScriptUserDocumentation m_userDocumentation;
44 SGUID m_refGUID;
47 DECLARE_SHARED_POINTERS(CScriptClassBase)