Files
FC1/Editor/Particles/ParticleManager.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

64 lines
1.8 KiB
C++

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: particlemanager.h
// Version: v1.00
// Created: 17/6/2003 by Timur.
// Compilers: Visual Studio.NET
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __particlemanager_h__
#define __particlemanager_h__
#pragma once
#include "BaseLibraryManager.h"
class CParticleItem;
class CParticleLibrary;
struct SExportParticleEffect;
/** Manages Particle libraries and systems.
*/
class CRYEDIT_API CParticleManager : public CBaseLibraryManager
{
public:
CParticleManager();
~CParticleManager();
// Clear all prototypes and material libraries.
void ClearAll();
virtual void DeleteItem( CBaseLibraryItem* pItem );
//////////////////////////////////////////////////////////////////////////
// Materials.
//////////////////////////////////////////////////////////////////////////
//! Loads a new material from a xml node.
void PasteToParticleItem( CParticleItem* pItem,XmlNodeRef &node,bool bWithChilds );
//! Serialize manager.
virtual void Serialize( XmlNodeRef &node,bool bLoading );
//! Export particle systems to game.
void Export( XmlNodeRef &node );
protected:
void AddExportItem( std::vector<SExportParticleEffect> &effects,CParticleItem *pItem,int parent );
virtual CBaseLibraryItem* MakeNewItem();
virtual CBaseLibrary* MakeNewLibrary();
//! Root node where this library will be saved.
virtual CString GetRootNodeName();
//! Path to libraries in this manager.
virtual CString GetLibsPath();
CString m_libsPath;
};
#endif // __particlemanager_h__