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

76 lines
2.4 KiB
C

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2001-2004.
// -------------------------------------------------------------------------
// File name: IDataBaseItem.h
// Version: v1.00
// Created: 3/5/2004 by Timur.
// Compilers: Visual Studio.NET 2003
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __IDataBaseItem_h__
#define __IDataBaseItem_h__
#pragma once
struct IDataBaseLibrary;
//////////////////////////////////////////////////////////////////////////
/** Base class for all items contained in BaseLibraray.
*/
struct IDataBaseItem
{
struct SerializeContext
{
XmlNodeRef node;
bool bLoading;
bool bCopyPaste;
bool bIgnoreChilds;
bool bUniqName;
SerializeContext() : node(0),bLoading(false),bCopyPaste(false),bIgnoreChilds(false),bUniqName(false) {};
SerializeContext( XmlNodeRef _node,bool bLoad ) : node(_node),bLoading(bLoad),bCopyPaste(false),bIgnoreChilds(false),bUniqName(false) {};
SerializeContext( const SerializeContext &ctx ) : node(ctx.node),bLoading(ctx.bLoading),
bCopyPaste(ctx.bCopyPaste),bIgnoreChilds(ctx.bIgnoreChilds),bUniqName(ctx.bUniqName) {};
};
//! Return Library this item are contained in.
//! Item can only be at one library.
virtual IDataBaseLibrary* GetLibrary() const = 0;
//! Change item name.
virtual void SetName( const CString &name ) = 0;
//! Get item name.
virtual const CString& GetName() const = 0;
//! Get full item name, including name of library.
//! Name formed by adding dot after name of library
//! eg. library Pickup and item PickupRL form full item name: "Pickups.PickupRL".
virtual CString GetFullName() const = 0;
//! Get only nameof group from prototype.
virtual CString GetGroupName() = 0;
//! Get short name of prototype without group.
virtual CString GetShortName() = 0;
//! Serialize library item to archive.
virtual void Serialize( SerializeContext &ctx ) = 0;
//! Generate new unique id for this item.
virtual void GenerateId() = 0;
//! Returns GUID of this material.
virtual REFGUID GetGUID() const = 0;
//! Validate item for errors.
virtual void Validate() {};
//! Gathers resources by this item.
virtual void GatherUsedResources( CUsedResources &resources ) {};
};
#endif // __IDataBaseItem_h__